Hello!
The ethernet driver performance especially on TX is very limited and
takes 100% system resources. For details see below.
Source can be found at:
http://svn.dd-wrt.com:8000/dd-wrt/browser/src/linux/brcm/linux.v24_2/drivers/net/et
Especially the following files are relevant:
http://svn.dd-wrt.com:8000/dd-wrt/browser/src/linux/brcm/linux.v24_2/drivers/net/et/etc.c
http://svn.dd-wrt.com:8000/dd-wrt/browser/src/linux/brcm/linux.v24_2/drivers/net/et/et_linux.c
http://svn.dd-wrt.com:8000/dd-wrt/browser/src/linux/brcm/linux.v24_2/drivers/net/et/Makefile
http://svn.dd-wrt.com:8000/dd-wrt/browser/src/include.v24/hnddma.h
http://svn.dd-wrt.com:8000/dd-wrt/browser/src/shared/hnddma.c
I think the problem comes from:
http://svn.dd-wrt.com:8000/dd-wrt/browser/src/linux/brcm/linux.v24_2/drivers/net/et/et_linux.c#L422
/*
* Yeah, queueing the packets on a tx queue instead of throwing them
* directly into the descriptor ring in the case of dma is kinda lame,
* but this results in a unified transmit path for both dma and pio
* and localizes/simplifies the netif_*_queue semantics, too.
*/
Can someone help me to improve the driver performance especially on TX?
Thnx.
Ciao,
Gerhard
================================================================================================
root@linksys2 [~] 1 # uname -a
Linux linksys2 2.4.36 #2579 Thu Dec 25 02:08:03 CET 2008 mips unknown
root@linksys2 [~] 1 # clear;cat /proc/interrupts; epi_ttcp -r -s -v -u ;cat /proc/interrupts
CPU0
3: 115 MIPS serial
4: 3055300 MIPS eth1
5: 266960 MIPS eth0
7: 15632004 MIPS timer
ERR: 0
ttcp-r: buflen=8192, nbuf=2048, align=16384/0, port=5010
ttcp-r: start time Sat Jan 3 10:29:20 2009
ttcp-r: File-Descriptor 0x3 Opened
sockbufsize=109568,
# udp receiver #
ttcp-r: 164446208 bytes in 51.731583 real seconds = 3.032 MB/sec +++
ttcp-r: 164446208 bytes in 13.210000 cpu seconds = 11.872 MB/cpu sec
ttcp-r: 20077 I/O calls, 2.577 msec(real)/call, 0.658 msec(cpu)/call
ttcp-r: 0.370000user 12.840000sys 0:51real 25.5% 0i+0d 0maxrss 0+0pf
0+0csw
ttcp-r: packets 20074 data, 2 start, 1 end
ttcp-r: 1.98242% (406/20480) packet loss
ttcp-r: File-Descriptor fd 0x3 Closed
ttcp done.
CPU0
3: 115 MIPS serial
4: 3056629 MIPS eth1
5: 383451 MIPS eth0
7: 15638472 MIPS timer
ERR: 0
================================================================================================
root@linksys4 [~] 1 # uname -a
Linux linksys4 2.4.36 #2579 Thu Dec 25 02:08:03 CET 2008 mips unknown
root@linksys4 [~] 1 # clear;cat /proc/interrupts;epi_ttcp -t -s -v -u -n 20480 192.168.32.142;cat /proc/interrupts
CPU0
3: 185 MIPS serial
4: 6208450 MIPS eth1
5: 2150034 MIPS eth0
7: 15632679 MIPS timer
ERR: 0
ttcp-t: buflen=8192, nbuf=20480, align=16384/0, port=5010
ttcp-t: start time Sat Jan 3 10:29:31 2009
ttcp-t: File-Descriptor 0x3 Opened
sockbufsize=109568,
# udp sender -> 192.168.32.142 #
ttcp-t: 167772160 bytes in 51.729196 real seconds = 3.093 MB/sec +++
ttcp-t: 167772160 bytes in 50.640000 cpu seconds = 3.160 MB/cpu sec
ttcp-t: 20486 I/O calls, 2.525 msec(real)/call, 2.472 msec(cpu)/call
ttcp-t: 0.370000user 50.270000sys 0:51real 97.9% 0i+0d 0maxrss 0+0pf
0+0csw
ttcp-t: File-Descriptor fd 0x3 Closed
ttcp done.
CPU0
3: 185 MIPS serial
4: 6209914 MIPS eth1
5: 2191272 MIPS eth0
7: 15637881 MIPS timer
ERR: 0
================================================================================================
--
http://www.wiesinger.com/
--
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html