This talk my 2009 updates on the progress of doing 10Gbit/s routing on standard hardware running Linux. The results are good, BUT to achieve these results, a lot of tuning is required of hardware queues, MSI interrupts and SMP affinity, together with some (now) submitted patches. I\'ll explain the concept of network hardware queues and why interrupt and SMP tuning is essential. I\'ll present results from different hardware both 10GbE netcards and CPUs (current CPUs under test is AMD phenom and Core i7). Many future challenges still exists, especially in the area of more easy tuning. A high knowledge level about the Linux kernel is required to follow all the details.
CC-4005, Performance analysis of 3D Finite Difference computational stencils ...
LinuxCon2009: 10Gbit/s Bi-Directional Routing on standard hardware running Linux
1. by Jesper Dangaard Brouer <hawk@comx.dk> Master of Computer Science Linux Kernel Developer ComX Networks A/S LinuxCon 2009 d.23/9-2009 ComX Networks A/S
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
Notes de l'éditeur
Txt: what happened with the hardware to achieve this?
More details: http://download.intel.com/design/intarch/papers/321071.pdf
Motherboards: Core i7: Asus P6T6 Revolution AMD: Gigabyte MA790GP-DS4H
Patriot Memory (PC2-9600/1200Mhz 2.3v) DDR2 1066 Mhz CAS 5-5-5-15 Patriot Viper Extreme performance Low Latency DDR3 1066 Mhz CAS 7-7-7-20 DDR3 1333 Mhz CAS 8-8-8-24 DDR3 1600 Mhz CAS 8-8-8-24 X.M.P setting
SMC product: SMC10GPCIe-XFP
Forward: Memory penalty high, as the entire packet is moved between CPUs. Oprofiling showed high usage in skb_free, when the TX done interrupt free'ed packets on another CPU Server: Getting request in and staying on the same CPU for the respond is related to caching of the socket info Client Utilizing the TX to RX is hard, as a client thus needs to control which incomming RX queue he wants the respons on
Patriot Part number: PVT36G1600LLK
Kernel on router: 2.6.31-rc2-net-next-NOpreempt jdb@firesoul:~/git/kernel/net-next-2.6-NOpreempt$ git describe v2.6.31-rc1-932-g8e321c4