Optimization of Linksys WRT54G/WRT54GS DD-WRT ethernet driver - Broadcom BCM4712

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux