[Click] [PATCH] e1000e-0.4.1.7 NAPI for click polling extension

Joonwoo Park joonwpark81 at gmail.com
Sat Feb 7 01:01:51 EST 2009


Hello,

Theses patches are for click NAPI improvement for polling mechanism.
The main goal of this patch is doing polling with minimal processor
usage with using linux NAPI.
To use NAPI feature for PollDevice element, please use INTERRUPT=1 as argument.
I am also attaching brief performance test result by linux pkggen
module and it seems pretty nice.

Please consider to apply this patch Eddie.

Thanks,
Joonwoo
-------------- next part --------------
* bps performace test result for each packet size
                            64            128               256             512            1024    
------------------------------------------------------------------
bps sent from pktgen
sender          427076224   737290240   907745280   951570432   975175680
------------------------------------------------------------------
bps received from click PollDevice with Counter
e1000            380775200   593107650   757712800   825604600   932841000
e1000e          431798700   762692350   907819000   951636400   975170850
e1000e napi  408209600   757440900   917091400   981357600   1005658000
------------------------------------------------------------------

* percentage e1000e napi cpu usage for each packet size
* 200% max since machine has 2 processor
                            64            128               256             512            1024    
e1000e napi          68              60                35              20               12  

* e1000ep install script
sudo insmod e1000e.ko InterruptThrottleRate=1
sudo ethtool -A eth2 autoneg off tx off rx off

* click running system /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Pentium(R) Dual  CPU  E2200  @ 2.20GHz
stepping        : 13
cpu MHz         : 2199.999
cache size      : 1024 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall lm constant_tsc arch_perfmon pebs bts rep_good pni monitor ds_cpl est tm2 ssse3 cx16 xtpr lahf_lm
bogomips        : 4405.51
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Pentium(R) Dual  CPU  E2200  @ 2.20GHz
stepping        : 13
cpu MHz         : 2199.999
cache size      : 1024 KB
physical id     : 0
siblings        : 2
core id         : 1
cpu cores       : 2
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall lm constant_tsc arch_perfmon pebs bts rep_good pni monitor ds_cpl est tm2 ssse3 cx16 xtpr lahf_lm
bogomips        : 4400.02
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

      

* lspci result
00:00.0 Host bridge: nVidia Corporation Unknown device 07c3 (rev a2)
00:00.1 RAM memory: nVidia Corporation nForce 630i memory controller (rev a2)
00:01.0 RAM memory: nVidia Corporation nForce 630i memory controller (rev a1)
00:01.1 RAM memory: nVidia Corporation nForce 630i memory controller (rev a1)
00:01.2 RAM memory: nVidia Corporation nForce 630i memory controller (rev a1)
00:01.3 RAM memory: nVidia Corporation nForce 630i memory controller (rev a1)
00:01.4 RAM memory: nVidia Corporation nForce 630i memory controller (rev a1)
00:01.5 RAM memory: nVidia Corporation nForce 630i memory controller (rev a1)
00:01.6 RAM memory: nVidia Corporation nForce 630i memory controller (rev a1)
00:02.0 RAM memory: nVidia Corporation nForce 630i memory controller (rev a1)
00:03.0 ISA bridge: nVidia Corporation MCP73 LPC Bridge (rev a2)
00:03.1 SMBus: nVidia Corporation MCP73 SMBus (rev a1)
00:03.2 RAM memory: nVidia Corporation MCP73 Memory Controller (rev a1)
00:03.4 RAM memory: nVidia Corporation MCP73 Memory Controller (rev a1)
00:04.0 USB Controller: nVidia Corporation GeForce 7100/nForce 630i (rev a1)
00:04.1 USB Controller: nVidia Corporation GeForce 7100/nForce 630i (rev a1)
00:08.0 IDE interface: nVidia Corporation MCP73 IDE (rev a1)
00:09.0 Audio device: nVidia Corporation MCP73 High Definition Audio (rev a1)
00:0a.0 PCI bridge: nVidia Corporation MCP73 PCI Express bridge (rev a1)
00:0b.0 PCI bridge: nVidia Corporation MCP73 PCI Express bridge (rev a1)
00:0c.0 PCI bridge: nVidia Corporation MCP73 PCI Express bridge (rev a1)
00:0d.0 PCI bridge: nVidia Corporation MCP73 PCI Express bridge (rev a1)
00:0e.0 SATA controller: nVidia Corporation Unknown device 0584 (rev a2)
00:0f.0 Ethernet controller: nVidia Corporation MCP73 Ethernet (rev a2)
00:10.0 VGA compatible controller: nVidia Corporation GeForce 7050/nForce 610i (rev a2)
01:04.0 Ethernet controller: Intel Corporation 82541PI Gigabit Ethernet Controller (rev 05)
03:00.0 Ethernet controller: Intel Corporation 82572EI Gigabit Ethernet Controller (Copper) (rev 06)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: click-1.6.0-napi.patch
Type: application/octet-stream
Size: 6809 bytes
Desc: not available
Url : http://amsterdam.lcs.mit.edu/pipermail/click/attachments/20090206/f94582c4/attachment.obj 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: linux-2.6.24.5-click-polling.patch
Type: application/octet-stream
Size: 910 bytes
Desc: not available
Url : http://amsterdam.lcs.mit.edu/pipermail/click/attachments/20090206/f94582c4/attachment-0001.obj 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: e1000e-0.4.1.7-click-polling-napi.patch
Type: application/octet-stream
Size: 4057 bytes
Desc: not available
Url : http://amsterdam.lcs.mit.edu/pipermail/click/attachments/20090206/f94582c4/attachment-0002.obj 


More information about the click mailing list