I've trying investigate or find info what exactly doing Packet Steering ,i've installed htop,
when i chekd'ON Packet Steering, gigabit connection uses 2 cores 20 and 30%, ~50% summary
when i chekd'OFF Packet Steering, gigabit connection uses 2 cores 25 and 12%, ~40% summary
Is this function share load or each core have full load?
Receive/Transmit Packet Steering is software based. It's functions (if the nic has more queues than the system's cpus e.g. ethtool -x eth0) is to help spread the network load across all processors. YMMV but my experience is that manually pinning an interrupt to a core & rps is very beneficial.
According to specification above, all of your NIC's supports hardware-accelerated network processing called RSS (Receive-Side Scaling).
Receive-Side Scaling (RSS), also known as multi-queue receive, distributes network receive processing across several hardware-based receive queues, allowing inbound network traffic to be processed by multiple CPUs. RSS can be used to relieve bottlenecks in receive interrupt processing caused by overloading a single CPU, and to reduce network latency.
Intel I210-AT NIC's supports up to 4 hardware-based queues.
To utilize RSS you can try to use Ethernet drivers from the following package repository:
After some hardcore studying and research, my system with a j1900 is set to this simplified config:
RSS is better than irq affinity or RPS, when the driver supports it.
Disable irqbalance or packet steering.
# rss defaults are not good.
interfaces='eth0 eth1 eth2 eth3'
for interface in $interfaces
do
ethtool -X "$interface" equal 2;
ethtool -N "$interface" rx-flow-hash udp4 sdfn # udp4 uses only the addresses by default
done
I don't have a x86 system myself, but I'm wondering if your network driver supports RSS?
Did you have to install a special driver version with RSS support included? https://github.com/csrutil/OpenWrt-NIC-Drivers
Or maybe OpenWRT supports RSS on Intel NIC "out of the box" now?
i've also tryed to install custom RSS driver from link provided, but it was not work great for me, to fix your error, first delete kmod-igb already installed in your system, 100% will work)), with this custom driver i had some strange cpu behaviour even my x86 router was working great..
i'm not sure how works that driver and why you have 1 less queue, but as i mentioned, i also had strange behaviour.. but with i210
but we can create a git-issue and ask developer))
This is interesting stuff. I stumbled on that RSS github driver collection back in 2022 while I was searching for some related topics on QOS. I thought hardware acceleration works great in theory...but in real world its a big bag of unknown.
Went to openwrt forums, nobody has created a topic of this until now....
Pretty cool to see you guys test if RSS hardware acceleration has some benefits -- most notably, if it improves CAKE qos. Will watch this thread with great interest.
When configuring RSS, Red Hat recommends limiting the number of queues to one per physical CPU core. Hyper-threads are often represented as separate cores in analysis tools, but configuring queues for all cores including logical cores such as hyper-threads has not proven beneficial to network performance.
note that on processors with hyperthreading (HT), each hyperthread is represented asa separate CPU. For interrupt handling, HT has shown no benefit in initial tests, so limit the number of queues to the number of CPU cores in the system.
This means that only 2 of the 4 available queues should be used when configuring RSS for I210-AT on a 2-Core CPU.