3 ms·
Has anyone found a way to enable receive side scaling on Raspberry Pi 4? I'm working on a project recently and the main bottleneck I'm seeing is that all eth0
by NathanKP 5y ago
Has anyone found a way to enable receive side scaling on Raspberry Pi 4?
I'm working on a project recently and the main bottleneck I'm seeing is that all eth0 interrupts go to a single core, and that core gets swamped with interrupts until it can't handle them anymore and ksoftirqd maxes out at 100% usage on a single core.
This seriously hurts the throughput. I know with RSS I would be able to distribute the eth0 hardware interrupts into 4 queues, with each queue being balanced by irqbalance onto it's own core.
However, in all my searching it appears that the Raspberry Pi hardware/driver is not capable of receive side scaling, and can only put eth0 interrupts into a single queue.
I would love to be told otherwise, if anyone else has found a workaround for this.
- LinuXY 5y agoThe NanoPi R4S has a RTL8169 controller with MSI-X capabilities. Post irqbalance setup I verified it's properly distributing IRQs. I'm using mine as a transparent bridge and network monitor. https://news.ycombinator.com/item?id=27236081 https://news.ycombinator.com/item?id=27236081 Capabilities: [b0] MSI-X: Enable+ Count=4 Masked-
- NathanKP 5y agoInteresting, I'll have to check that device out. I'm using Raspberry Pi 4b and it does not have the right capabilities, ethtool just says the operation is not supported: sudo ethtool -x eth0 Cannot get RX ring count: Operation not supported I might have to add a NanoPi to my collection