sysctl -a | grep rss
sysctl dev.ax | grep rss
dev.ax.0.rss_enabled = 1dev.ax.1.rss_enabled = 1
dmesg | grep vectorsigb0: Using MSI-X interrupts with 5 vectorsigb1: Using MSI-X interrupts with 5 vectorsigb2: Using MSI-X interrupts with 5 vectorsigb3: Using MSI-X interrupts with 5 vectors
net.isr.bindthreads = 1
net.isr.maxthreads = -1
net.inet.rss.enabled = 1
net.inet.rss.bits = X
netstat -Q
opnsense-update -zkr 21.7.1-rss
root@rauter:~ # netstat -QConfiguration:Setting Current LimitThread count 4 4Default queue limit 256 10240Dispatch policy deferred n/aThreads bound to CPUs enabled n/aProtocols:Name Proto QLimit Policy Dispatch Flagsip 1 1000 cpu hybrid C--igmp 2 256 source default ---rtsock 3 256 source default ---arp 4 256 source default ---ether 5 256 cpu direct C--ip6 6 256 cpu hybrid C--ip_direct 9 256 cpu hybrid C--ip6_direct 10 256 cpu hybrid C--Workstreams:WSID CPU Name Len WMark Disp'd HDisp'd QDrops Queued Handled 0 0 ip 0 24 0 6402 0 299134 305536 0 0 igmp 0 0 0 0 0 0 0 0 0 rtsock 0 2 0 0 0 100 100 0 0 arp 0 0 0 0 0 0 0 0 0 ether 0 0 21891 0 0 0 21891 0 0 ip6 0 2 0 3 0 272 275 0 0 ip_direct 0 0 0 0 0 0 0 0 0 ip6_direct 0 0 0 0 0 0 0 1 1 ip 0 10 0 222075 0 123441 345516 1 1 igmp 0 0 0 0 0 0 0 1 1 rtsock 0 0 0 0 0 0 0 1 1 arp 0 1 0 0 0 1 1 1 1 ether 0 0 674658 0 0 0 674658 1 1 ip6 0 4 0 30 0 327 357 1 1 ip_direct 0 0 0 0 0 0 0 1 1 ip6_direct 0 0 0 0 0 0 0 2 2 ip 0 14 0 79091 0 108867 187958 2 2 igmp 0 0 0 0 0 0 0 2 2 rtsock 0 0 0 0 0 0 0 2 2 arp 0 1 0 0 0 105 105 2 2 ether 0 0 420575 0 0 0 420575 2 2 ip6 0 1 0 204 0 36 240 2 2 ip_direct 0 0 0 0 0 0 0 2 2 ip6_direct 0 0 0 0 0 0 0 3 3 ip 1 13 0 5750 0 301312 307061 3 3 igmp 0 0 0 0 0 0 0 3 3 rtsock 0 0 0 0 0 0 0 3 3 arp 0 0 0 0 0 0 0 3 3 ether 0 0 25502 0 0 0 25502 3 3 ip6 0 3 0 7 0 283 290 3 3 ip_direct 0 0 0 0 0 0 0 3 3 ip6_direct 0 0 0 0 0 0 0
root@OPNsense:~ # sysctl -a | grep rsshw.bxe.udp_rss: 0hw.ix.enable_rss: 1root@OPNsense:~ # dmesg | grep vectorsixl0: Using MSI-X interrupts with 5 vectorsixl1: Using MSI-X interrupts with 5 vectorsixl0: Using MSI-X interrupts with 5 vectorsixl1: Using MSI-X interrupts with 5 vectors
It should benefit Sensei in theory, but Sensei needs to support libnetmap API also, which will be added in version 21.7.2.
ixl0: Failed to remove 0/1 filters, error I40E_AQ_RC_ENOENT
root@OPNsense:~ # netstat -QConfiguration:Setting Current LimitThread count 4 4Default queue limit 256 10240Dispatch policy direct n/aThreads bound to CPUs enabled n/aProtocols:Name Proto QLimit Policy Dispatch Flagsip 1 1000 cpu hybrid C--igmp 2 256 source default ---rtsock 3 256 source default ---arp 4 256 source default ---ether 5 256 cpu direct C--ip6 6 256 cpu hybrid C--ip_direct 9 256 cpu hybrid C--ip6_direct 10 256 cpu hybrid C--Workstreams:WSID CPU Name Len WMark Disp'd HDisp'd QDrops Queued Handled 0 0 ip 0 366 0 3456666 0 1796298 5252964 0 0 igmp 0 0 0 0 0 0 0 0 0 rtsock 0 0 0 0 0 0 0 0 0 arp 0 0 1 0 0 0 1 0 0 ether 0 0 7630456 0 0 0 7630456 0 0 ip6 0 2 0 452 0 712 1164 0 0 ip_direct 0 0 0 0 0 0 0 0 0 ip6_direct 0 0 0 0 0 0 0 1 1 ip 0 674 0 5662158 0 233572 5895730 1 1 igmp 0 0 0 0 0 0 0 1 1 rtsock 0 4 0 0 0 212 212 1 1 arp 0 0 3280 0 0 0 3280 1 1 ether 0 0 13568727 0 0 0 13568727 1 1 ip6 0 4 0 1108 0 649 1757 1 1 ip_direct 0 0 0 0 0 0 0 1 1 ip6_direct 0 0 0 0 0 0 0 2 2 ip 0 538 0 3493297 0 2252147 5745444 2 2 igmp 0 0 0 0 0 0 0 2 2 rtsock 0 0 0 0 0 0 0 2 2 arp 0 0 2 0 0 0 2 2 2 ether 0 0 8776535 0 0 0 8776535 2 2 ip6 0 8 0 1538 0 987 2525 2 2 ip_direct 0 0 0 0 0 0 0 2 2 ip6_direct 0 0 0 0 0 0 0 3 3 ip 0 870 0 4571265 0 1898993 6470258 3 3 igmp 0 0 0 0 0 0 0 3 3 rtsock 0 0 0 0 0 0 0 3 3 arp 0 0 943 0 0 0 943 3 3 ether 0 0 10272150 0 0 0 10272150 3 3 ip6 0 4 0 446 0 391 837 3 3 ip_direct 0 0 0 0 0 0 0 3 3 ip6_direct 0 0 0 0 0 0 0sysctl -a | grep rssnet.inet.rss.bucket_mapping: 0:0 1:1 2:2 3:3 4:0 5:1 6:2 7:3net.inet.rss.enabled: 1net.inet.rss.debug: 0net.inet.rss.basecpu: 0net.inet.rss.buckets: 8net.inet.rss.maxcpus: 64net.inet.rss.ncpus: 4net.inet.rss.maxbits: 7net.inet.rss.mask: 7net.inet.rss.bits: 3net.inet.rss.hashalgo: 2hw.bxe.udp_rss: 0hw.ix.enable_rss: 1sysctl -a | grep isrnet.route.netisr_maxqlen: 256net.isr.numthreads: 4net.isr.maxprot: 16net.isr.defaultqlimit: 256net.isr.maxqlimit: 10240net.isr.bindthreads: 1net.isr.maxthreads: 4net.isr.dispatch: direct
sysctl -w net.isr.dispatch=hybridsysctl -a | grep isrnet.route.netisr_maxqlen: 256net.isr.numthreads: 4net.isr.maxprot: 16net.isr.defaultqlimit: 256net.isr.maxqlimit: 10240net.isr.bindthreads: 1net.isr.maxthreads: 4net.isr.dispatch: hybridroot@OPNsense:~ # netstat -QConfiguration:Setting Current LimitThread count 4 4Default queue limit 256 10240Dispatch policy hybrid n/aThreads bound to CPUs enabled n/aProtocols:Name Proto QLimit Policy Dispatch Flagsip 1 1000 cpu hybrid C--igmp 2 256 source default ---rtsock 3 256 source default ---arp 4 256 source default ---ether 5 256 cpu direct C--ip6 6 256 cpu hybrid C--ip_direct 9 256 cpu hybrid C--ip6_direct 10 256 cpu hybrid C--Workstreams:WSID CPU Name Len WMark Disp'd HDisp'd QDrops Queued Handled 0 0 ip 0 455 0 6256523 0 3911206 10167729 0 0 igmp 0 0 0 0 0 0 0 0 0 rtsock 0 0 0 0 0 0 0 0 0 arp 0 1 1 0 0 44 45 0 0 ether 0 0 14655754 0 0 0 14655754 0 0 ip6 0 2 0 575 0 923 1498 0 0 ip_direct 0 0 0 0 0 0 0 0 0 ip6_direct 0 0 0 0 0 0 0 1 1 ip 0 936 0 10885857 0 366966 11252823 1 1 igmp 0 0 0 0 0 0 0 1 1 rtsock 0 4 0 0 0 218 218 1 1 arp 0 1 4332 670 0 42 5044 1 1 ether 0 0 26865660 0 0 0 26865660 1 1 ip6 0 4 0 1306 0 833 2139 1 1 ip_direct 0 0 0 0 0 0 0 1 1 ip6_direct 0 0 0 0 0 0 0 2 2 ip 0 538 0 6589372 0 4728075 11317447 2 2 igmp 0 0 0 0 0 0 0 2 2 rtsock 0 0 0 0 0 0 0 2 2 arp 0 1 2 0 0 6 8 2 2 ether 0 0 16633885 0 0 0 16633885 2 2 ip6 0 8 0 2286 0 1388 3674 2 2 ip_direct 0 0 0 0 0 0 0 2 2 ip6_direct 0 0 0 0 0 0 0 3 3 ip 0 1000 0 8687234 71 4575663 13262897 3 3 igmp 0 0 0 0 0 0 0 3 3 rtsock 0 0 0 0 0 0 0 3 3 arp 0 1 1403 0 0 5 1408 3 3 ether 0 0 20808614 0 0 0 20808614 3 3 ip6 0 4 0 848 0 479 1327 3 3 ip_direct 0 0 0 0 0 0 0 3 3 ip6_direct 0 0 0 0 0 0 0
#lscpuArchitecture: amd64Byte Order: Little EndianTotal CPU(s): 8Thread(s) per core: 1Core(s) per socket: 8Socket(s): 1Vendor: AuthenticAMDCPU family: 23Model: 1Model name: AMD EPYC 3201 8-Core ProcessorStepping: 2L1d cache: 32KL1i cache: 64KL2 cache: 512KL3 cache: 16MFlags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 cflsh mmx fxsr sse sse2 htt sse3 pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 popcnt aes xsave osxsave avx f16c rdrnd syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm lahf_lm cmp_legacy svm extapic cr8_legacy lzcnt sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb pcx_l2i#dmesg | grep vectorigb0: Using MSI-X interrupts with 5 vectorsigb1: Using MSI-X interrupts with 5 vectorsigb2: Using MSI-X interrupts with 5 vectorsigb3: Using MSI-X interrupts with 5 vectorsax0: Using MSI-X interrupts with 12 vectorsax1: Using MSI-X interrupts with 12 vectors# sysctl -a | grep rsshw.bxe.udp_rss: 0hw.ix.enable_rss: 1# sysctl -a | grep isrnet.route.netisr_maxqlen: 256net.isr.numthreads: 1net.isr.maxprot: 16net.isr.defaultqlimit: 256net.isr.maxqlimit: 10240net.isr.bindthreads: 0net.isr.maxthreads: 1net.isr.dispatch: direct
root@VM:~ # netstat -QConfiguration:Setting Current LimitThread count 4 4Default queue limit 256 10240Dispatch policy hybrid n/aThreads bound to CPUs enabled n/aProtocols:Name Proto QLimit Policy Dispatch Flagsip 1 1000 cpu hybrid C--igmp 2 256 source default ---rtsock 3 256 source default ---arp 4 256 source default ---ether 5 256 cpu direct C--ip6 6 256 cpu hybrid C--ip_direct 9 256 cpu hybrid C--ip6_direct 10 256 cpu hybrid C--Workstreams:WSID CPU Name Len WMark Disp'd HDisp'd QDrops Queued Handled 0 0 ip 0 3 0 2478 0 62 2540 0 0 igmp 0 0 0 1 0 0 1 0 0 rtsock 0 0 0 0 0 0 0 0 0 arp 0 1 0 38 0 40 78 0 0 ether 0 0 3703 0 0 0 3703 0 0 ip6 0 0 0 0 0 0 0 0 0 ip_direct 0 0 0 0 0 0 0 0 0 ip6_direct 0 0 0 0 0 0 0 1 1 ip 0 2 0 519 0 73 592 1 1 igmp 0 1 0 0 0 1 1 1 1 rtsock 0 0 0 0 0 0 0 1 1 arp 0 13 0 117 0 1042 1159 1 1 ether 0 0 873 0 0 0 873 1 1 ip6 0 0 0 0 0 0 0 1 1 ip_direct 0 0 0 0 0 0 0 1 1 ip6_direct 0 0 0 0 0 0 0 2 2 ip 0 2 0 527 0 77 604 2 2 igmp 0 1 0 0 0 1 1 2 2 rtsock 0 1 0 0 0 39 39 2 2 arp 0 1 0 7 0 58 65 2 2 ether 0 0 858 0 0 0 858 2 2 ip6 0 1 0 0 0 7 7 2 2 ip_direct 0 0 0 0 0 0 0 2 2 ip6_direct 0 0 0 0 0 0 0 3 3 ip 0 2 0 420 0 59 479 3 3 igmp 0 0 0 0 0 0 0 3 3 rtsock 0 0 0 0 0 0 0 3 3 arp 0 0 0 0 0 0 0 3 3 ether 0 0 739 0 0 0 739 3 3 ip6 0 0 0 0 0 0 0 3 3 ip_direct 0 0 0 0 0 0 0 3 3 ip6_direct 0 0 0 0 0 0 0
C:\iperf-3.1.3-win64>iperf3.exe -p 30718 -c 192.168.1.242Connecting to host 192.168.1.242, port 30718[ 4] local 10.1.1.16 port 63670 connected to 192.168.1.242 port 30718[ ID] Interval Transfer Bandwidth[ 4] 0.00-1.00 sec 83.4 MBytes 699 Mbits/sec[ 4] 1.00-2.00 sec 190 MBytes 1.59 Gbits/sec[ 4] 2.00-3.00 sec 269 MBytes 2.26 Gbits/sec[ 4] 3.00-4.00 sec 262 MBytes 2.20 Gbits/sec[ 4] 4.00-5.00 sec 260 MBytes 2.18 Gbits/sec[ 4] 5.00-6.00 sec 263 MBytes 2.21 Gbits/sec[ 4] 6.00-7.00 sec 214 MBytes 1.79 Gbits/sec[ 4] 7.00-8.00 sec 246 MBytes 2.06 Gbits/sec[ 4] 8.00-9.00 sec 250 MBytes 2.10 Gbits/sec[ 4] 9.00-10.00 sec 208 MBytes 1.74 Gbits/sec- - - - - - - - - - - - - - - - - - - - - - - - -[ ID] Interval Transfer Bandwidth[ 4] 0.00-10.00 sec 2.19 GBytes 1.88 Gbits/sec sender[ 4] 0.00-10.00 sec 2.19 GBytes 1.88 Gbits/sec receiver