This paper presents research conducted to determine the most efficient ways to develop networking applications using an Intel multi-core processor-based system and multi-queue capable network interfaces running Linux. Intel analyzes the hardware platform attributes, the software aspects, and provide clear guidelines about performance pitfalls including pointers for improving performance when designing network applications to run at speeds of 10 Gb/s using Linux.
Interesting paper, a few comments,
In section, Identifying the Bottlenecks, as far as I know, the /proc/sys/net/core/netdev_max_backlog parameter only affects drivers not using NAPI, i.e. interrupt driven drivers which use netif_rx() to move packets from rx ring into a backlog queue in the kernel. Hence not important to 1Git/10Gbit drirvers.
The weight registered by the ixgbe driver using the function netif_napi_add() is 64, this is passed to the poll function registered by the driver as the budget parameter. Changing this parameter may make a different to the amount of packets read off the rings.
Also modifying the netdev_budget in /proc/sys/net/core/netdev_budget may make a difference to the amount of work that is done in the net_rx_action softirq.
Regards
Jonathan
Intel researches, develops, and manufactures architecture and silicon technologies and standards-based hardware and software for computing. The company also forms and supports industry standards.
1 comment
write a commentjlynch Posted Jan 28, 2011
Interesting paper, a few comments, In section, Identifying the Bottlenecks, as far as I know, the /proc/sys/net/core/netdev_max_backlog parameter only affects drivers not using NAPI, i.e. interrupt driven drivers which use netif_rx() to move packets from rx ring into a backlog queue in the kernel. Hence not important to 1Git/10Gbit drirvers. The weight registered by the ixgbe driver using the function netif_napi_add() is 64, this is passed to the poll function registered by the driver as the budget parameter. Changing this parameter may make a different to the amount of packets read off the rings. Also modifying the netdev_budget in /proc/sys/net/core/netdev_budget may make a difference to the amount of work that is done in the net_rx_action softirq. Regards Jonathan
reply