News for hackers. Stuff that matters.
Re:Setting up a Raspberry Pi with 2 Network Interfaces as a ... by NathanKP on Friday May 21, 2021 @01:23PM (#27237018)
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.

Re:Setting up a Raspberry Pi with 2 Network Interfaces as a ... by LinuXY on Friday May 21, 2021 @02:09PM (#27237680)
The 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

        Capabilities: [b0] MSI-X: Enable+ Count=4 Masked-
Re:Setting up a Raspberry Pi with 2 Network Interfaces as a ... by NathanKP on Friday May 21, 2021 @02:42PM (#27238143)
Interesting, 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