[PATCH net-next v11 0/7] r8169: add RSS support for RTL8127
javen <[email protected]>
| Newsgroups | gmane.linux.network,gmane.linux.kernel |
|---|---|
| Message-ID | <[email protected]> |
From: Javen Xu <[email protected]> This patch series adds RSS (Receive Side Scaling) support for the r8169 ethernet driver, specifically for RTL8127 (RTL_GIGA_MAC_VER_80). RSS enables packet distribution across multiple receive queues, which can significantly improve network throughput on multi-core systems by allowing parallel processing of incoming packets. Key features: - Multi-queue RX support (up to 8 queues) - MSI-X interrupt with vector mapping - Dynamic queue configuration via ethtool (-L) - RSS hash computation for flow classification Experiments: Platform: AMD Ryzen Embedded R2514 with Radeon Graphics(4 Cores/8 Threads) Arch: x86_64 Test command: Server: iperf3 -s Client: iperf3 -c 192.168.2.1 -P 20 -t 3600 Monitor: mpstat -P ALL 1 Before this patch (Without RSS): Throughput: Unstable, fluctuating between 3.76 Gbits/sec and 8.2 Gbits/sec. CPU Usage: A single CPU core is fully occupied with softirq reaching up to 96%. After this patch (With RSS enabled): Throughput: Stable at 9.42 Gbits/sec. CPU Usage: The traffic load is evenly distributed across multiple CPU cores. The maximum softirq on a single core dropped to 63%. Other Experiments: Link: https://lore.kernel.org/netdev/[email protected]/ Javen Xu (7): r8169: add support for multi irqs r8169: refactor RX path to prepare for multi-queue r8169: add support for new interrupt mapping r8169: enable new interrupt mapping r8169: add support and enable rss r8169: move struct ethtool_ops r8169: add get_channel support for ethtool drivers/net/ethernet/realtek/r8169_main.c | 1076 ++++++++++++++++++--- 1 file changed, 929 insertions(+), 147 deletions(-) -- 2.43.0