[#4739] netperf_tcp_rr through bfin_mac is almost zero with set buffer packets
Submitted By: Mingquan Pan
Open Date
2008-12-22 21:47:32 Close Date
2009-02-10 23:05:05
Priority:
Medium Assignee:
Michael Hennerich
Status:
Closed Fixed In Release:
N/A
Found In Release:
N/A Release:
Category:
N/A Board:
N/A
Processor:
BF537 Silicon Revision:
Is this bug repeatable?:
Yes Resolution:
Duplicate
Uboot version or rev.:
Toolchain version or rev.:
Nov 11
App binary format:
N/A
Summary: netperf_tcp_rr through bfin_mac is almost zero with set buffer packets
Details:
netperf_tcp_rr on bf527 is almost zero with set buffer packets on trunk now.
config:
Ethernet (10 or 100Mbit) (NET_ETHERNET) [Y/n/?] ^M
Generic Media Independent Interface device support (MII) [Y/?] y^M
Blackfin on-chip MAC support (BFIN_MAC) [Y/n/m/?] ^M
Use L1 memory for rx/tx packets (BFIN_MAC_USE_L1) [Y/n/?] N^M
Number of transmit buffer packets (BFIN_TX_DESC_NUM) [10] 100^M
Number of receive buffer packets (BFIN_RX_DESC_NUM) [20] 500^M
RMII PHY Interface (EXPERIMENTAL) (BFIN_MAC_RMII) [Y/n/?] ^M
log:
Loading .text @ 0x00001000 (1196304 bytes)
Loading .rodata @ 0x00125110 (299720 bytes)
Loading .init.rodata @ 0x0016e3d8 (156 bytes)
Loading __ksymtab @ 0x0016e474 (16528 bytes)
Loading __ksymtab_gpl @ 0x00172504 (5752 bytes)
Loading __ksymtab_strings @ 0x00173b7c (50054 bytes)
Loading __init_rodata @ 0x0017ff04 (172 bytes)
Loading __param @ 0x0017ffb0 (640 bytes)
Clearing .bss @ 0x00180230 (66432 bytes)
Loading .data @ 0x001905b0 (72272 bytes)
Loading .init.text @ 0x001a2000 (102020 bytes)
Loading .init.data @ 0x001bae84 (20708 bytes)
Loading .init.setup @ 0x001bff68 (608 bytes)
Loading .initcall.init @ 0x001c01c8 (656 bytes)
Loading .con_initcall.init @ 0x001c0458 (4 bytes)
Loading .init.ramfs @ 0x001c045c (3084968 bytes)
Loading .text_l1 @ 0xffa00000 (5500 bytes)
sh_addr: FFA00000, p_paddr: 004B1704
Loading from: 024A2000 to 004B1704, size: 5500
Loading .data_l1 @ 0xff800000 (192 bytes)
sh_addr: FF800000, p_paddr: 004B2C80
Loading from: 024A4000 to 004B2C80, size: 192
## Starting application at 0x001af490 ...
Linux version 2.6.28-rc2-ADI-2009R1-pre-svn5830 (test@uclinux60-bf527-std) (gcc version 4.1.2 (ADI svn)) #68 Sat Dec 6 13:23:10 CST 2008
console [early_BFuart0] enabled
early printk enabled on early_BFuart0
Board Memory: 64MB
Kernel Managed Memory: 64MB
Memory map:
fixedcode = 0x00000400-0x00000490
text = 0x00001000-0x00125110
rodata = 0x00125110-0x00180230
bss = 0x00180230-0x001905b0
data = 0x001905b0-0x001a2000
stack = 0x001a0000-0x001a2000
init = 0x001a2000-0x004b3000
available = 0x004b3000-0x03eff000
DMA Zone = 0x03f00000-0x04000000
Hardware Trace Active and Enabled
Reset caused by Software reset
Blackfin support (C) 2004-2008 Analog Devices, Inc.
Compiled for ADSP-BF527 Rev 0.0
ERROR: Not running on ADSP-BF527: unknown CPUID 0x27e0 Rev 0.0
Blackfin Linux support by blackfin.uclinux.org/
Processor Speed: 525 MHz core clock and 131 MHz System Clock
NOMPU: setting up cplb tables for global access
Instruction Cache Enabled for CPU0
Data Cache Enabled for CPU0 (write-through)
Built 1 zonelists in Zone order, mobility grouping off. Total pages: 16001
Kernel command line: root=/dev/mtdblock0 rw earlyprintk=serial,uart0,57600 ip=10.100.4.50:10.100.4.174:10.100.4.174:255.255.255.0:bf527-ezkit:eth0:off
Configuring Blackfin Priority Driven Interrupts
PID hash table entries: 256 (order: 8, 1024 bytes)
console handover: boot [early_BFuart0] -> real [ttyBF0]
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory available: 59116k/65536k RAM, (3140k init code, 1168k kernel code, 500k data, 1024k dma, 584k reserved)
Calibrating delay loop... 1044.48 BogoMIPS (lpj=2088960)
Security Framework initialized
Mount-cache hash table entries: 512
Blackfin Scratchpad data SRAM: 4 KB
Blackfin L1 Data A SRAM: 16 KB (15 KB free)
Blackfin L1 Data B SRAM: 16 KB (16 KB free)
Blackfin L1 Instruction SRAM: 48 KB (42 KB free)
PDA for CPU0 reserved at 00181228
net_namespace: 288 bytes
NET: Registered protocol family 16
Blackfin GPIO Controller
Blackfin DMA Controller
stamp_init(): registering device resources
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
musb_hdrc: version 6.0, pio, host, debug=0
musb_hdrc: USB Host mode controller at ffc03800 using PIO, IRQ 59
musb_hdrc musb_hdrc.0: MUSB HDRC host driver
musb_hdrc musb_hdrc.0: new USB bus registered, assigned bus number 1
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
NET: Registered protocol family 1
msgmni has been set to 115
io scheduler noop registered
io scheduler anticipatory registered (default)
io scheduler cfq registered
bfin-t350mcqb: 320x240 24-bit RGB FrameBuffer initializing...
dma_alloc_init: dma_page @ 0x03a00000 - 256 pages at 0x03f00000
bfin-otp: initialized
Serial: Blackfin serial driver
bfin-uart.1: ttyBF0 at MMIO 0xffc02000 (irq = 31) is a BFIN-UART
brd: module loaded
bfin_mac_mdio: probed
bfin_mac: attached PHY driver [Generic PHY] (mii_bus:phy_addr=0:03, irq=-1, mdc_clk=2500000Hz(mdc_div=25)@sclk=131MHz)
bfin_mac bfin_mac.0: Blackfin on-chip Ethernet MAC driver, Version 1.1
m25p80 spi0.1: m25p16 (2048 Kbytes)
Creating 2 MTD partitions on "m25p80":
0x00000000-0x00040000 : "bootloader(spi)"
0x00040000-0x00200000 : "linux kernel(spi)"
bfin-spi bfin-spi.0: Blackfin on-chip SPI Controller Driver, Version 1.0, regs_base@ffc00500, dma channel@7
rtc-bfin rtc-bfin: rtc core: registered rtc-bfin as rtc0
bfin-wdt: initialized: timeout=20 sec (nowayout=0)
hid_tmff: Unknown symbol _input_ff_create_memless
usbcore: registered new interface driver usbhid
usbhid: v2.6:USB HID core driver
TCP cubic registered
NET: Registered protocol family 17
rtc-bfin rtc-bfin: setting system clock to 2004-06-01 03:57:55 UTC (1086062275)
IP-Config: Complete:
device=eth0, addr=10.100.4.50, mask=255.255.255.0, gw=10.100.4.174,
host=bf527-ezkit, domain=, nis-domain=(none),
bootserver=10.100.4.174, rootserver=10.100.4.174, rootpath=
Freeing unused kernel memory: 3140k freed
_____________________________________
a8888b. / Welcome to the uClinux distribution \
d888888b. / _ _ \
8P"YP"Y88 / | | |_| __ __ (TM) |
8|o||o|88 _____/ | | _ ____ _ _ \ \/ / |
8' .88 \ | | | | _ \| | | | \ / |
8`._.' Y8. \ | |__ | | | | | |_| | / \ |
d/ `8b. \ \____||_|_| |_|\____|/_/\_\ |
dP . Y8b. \ For embedded processors including |
d8:' " `::88b \ the Analog Devices Blackfin /
d8" 'Y88b \___________________________________/
:8P ' :888
8a. : _a88P For further information, check out:
._/"Yaa_: .| 88P| - blackfin.uclinux.org/
\ YP" `| 8P `. - docs.blackfin.uclinux.org/
/ \.___.d| .' - www.uclinux.org/
`--..__)8888P`._.' jgs/a:f - www.analog.com/blackfin
Have a lot of fun...
BusyBox v1.13.1 (2008-12-06 11:48:09 CST) built-in shell (msh)
Enter 'help' for a list of built-in commands.
root:/>
************** STEP 3: Start testing.
ifconfig eth0 10.100.4.50
root:/> PHY: 0:03 - Link is Up - 100/Full
test@uclinux60-bf527-std:~/work/cruise/checkouts/uclinux-dist/testsuites/ethernet> sudo ./netserver_x86
root's password:
Starting netserver at port 12865
test@uclinux60-bf527-std:~/work/cruise/checkouts/uclinux-dist/testsuites/ethernet> ps aux| grep netserver_x86 | head -1
root 16086 0.0 0.0 1816 240 ? Ss 13:24 0:00 ./netserver_x86
test@uclinux60-bf527-std:~/work/cruise/checkouts/uclinux-dist/testsuites/ethernet> usb 1-1: new high speed USB device using musb_hdrc and address 2
usb 1-1: configuration #1 chosen from 1 choice
cd /
root:/> chmod 777 netperf_script
root:/> ./netperf_script
root:/> sudo pkill netserver_x86
root's password:
test@uclinux60-bf527-std:~/work/cruise/checkouts/uclinux-dist/testsuites/ethernet> cat netperf_tcp_rr
TCP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.100.4.174 (10.100.4.174) port 0 AF_INET
Local /Remote
Socket Size Request Resp. Elapsed Trans.
Send Recv Size Size Time Rate
bytes Bytes bytes bytes secs. per sec
16384 87380 1 1 600.00 0.00
16384 87380
root:/> cat netperf_tcp_stream
TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.100.4.174 (10.100.4.174) port 0 AF_INET
netperf: receive_response: no response received. errno 110 counter 0
root:/>
Case 1 ...FAIL
while on bf537, with the same config it still has 3585.21 rate per sec.
Follow-ups
--- Sonic Zhang 2008-12-31 01:20:40
Can't replicated on kernel svn 5932.
root:/bin> netperf -H 10.100.4.174 -t TCP_STREAM -l 60
TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.100.4.174
(10.100.4.174) port 0 AF_INET
Recv Send Send
Socket Socket Message Elapsed
Size Size Size Time Throughput
bytes bytes bytes secs. 10^6bits/sec
87380 16384 16384 60.00 59.33
root:/bin> netperf -H 10.100.4.174 -t TCP_RR -l 60
TCP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.100.4.174
(10.100.4.174) port 0T
Local /Remote
Socket Size Request Resp. Elapsed Trans.
Send Recv Size Size Time Rate
bytes Bytes bytes bytes secs. per sec
16384 87380 1 1 60.00 3536.00
16384 87380
--- Mingquan Pan 2009-01-14 22:48:41
It looks still has this problem on svn head kernel on Linux version
2.6.28-ADI-2009R1-pre-svn6015 (test@uclinux60-bf527-std) (gcc version 4.1.2 (ADI
svn)) on board: CPU: ADSP bf527-0.0 (Detected Rev: 0.0).
And from the log with the set TX_DESC and RX_DESC value, it even can't rcp the
script over to the board while ping is through but have packets loss.
test@uclinux60-bf527-std:~/work/cruise/checkouts/uclinux-dist/testsuites/ethernet>
rcp netperf_script root@10.100.4.50:/
test@uclinux60-bf527-std:~/work/cruise/checkouts/uclinux-dist/testsuites/ethernet>
ping 10.100.4.50
PING 10.100.4.50 (10.100.4.50) 56(84) bytes of data.
64 bytes from 10.100.4.50: icmp_seq=2 ttl=64 time=0.201 ms
64 bytes from 10.100.4.50: icmp_seq=3 ttl=64 time=0.183 ms
64 bytes from 10.100.4.50: icmp_seq=7 ttl=64 time=0.197 ms
64 bytes from 10.100.4.50: icmp_seq=8 ttl=64 time=0.216 ms
64 bytes from 10.100.4.50: icmp_seq=9 ttl=64 time=0.199 ms
64 bytes from 10.100.4.50: icmp_seq=10 ttl=64 time=0.261 ms
64 bytes from 10.100.4.50: icmp_seq=11 ttl=64 time=0.192 ms
64 bytes from 10.100.4.50: icmp_seq=22 ttl=64 time=0.148 ms
64 bytes from 10.100.4.50: icmp_seq=24 ttl=64 time=0.135 ms
--- 10.100.4.50 ping statistics ---
26 packets transmitted, 9 received, 65% packet loss, time 25041ms
rtt min/avg/max/mdev = 0.135/0.192/0.261/0.036 ms
The kernel config file is attached.
--- Mingquan Pan 2009-01-16 02:32:16
It is now seen on bf537 stamp board too with Linux version
2.6.28-ADI-2009R1-pre-svn6019 (test@uclinux54-adv7393-ad1981-usb1362) (gcc
version 4.1.2 (ADI svn)).
sh-3.00$ sudo ./netserver_x86
Password:
Starting netserver at port 12865
sh-3.00$ ps aux| grep netserver_x86 | head -1
root 28179 0.0 0.0 1692 436 ? Ss 14:13 0:00
./netserver_x86
sh-3.00$ cd /
root:/> chmod 777 netperf_script
root:/> ./netperf_script
root:/> sudo pkill netserver_x86
Password:
sh-3.00$ cat netperf_tcp_rr
TCP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.100.4.174
(10.100.4.174) port 0 AF_INET
Local /Remote
Socket Size Request Resp. Elapsed Trans.
Send Recv Size Size Time Rate
bytes Bytes bytes bytes secs. per sec
16384 87380 1 1 600.00 0.00
16384 87380
root:/> cat netperf_tcp_stream
TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.100.4.174
(10.100.4.174) port 0 AF_INET
netperf: receive_response: no response received. errno 110 counter 0
root:/>
Case 1 ...FAIL
--- Mingquan Pan 2009-02-03 21:57:43
This is seen under the defauft clocks:
Processor Speed: 500 MHz core clock and 100 MHz System Clock^M.
If the clock is set at:
Processor Speed: 500 MHz core clock and 125 MHz System Clock
then the results is ok.
TCP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.100.4.174
(10.100.4.174) port 0 AF_INET^M
Local /Remote^M
Socket Size Request Resp. Elapsed Trans.^M
Send Recv Size Size Time Rate ^M
bytes Bytes bytes bytes secs. per sec ^M
^M
16384 87380 1 1 600.00 4371.53 ^M
16384 87380 ^M
root:/> cat netperf_tcp_stream^M
TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.100.4.174
(10.100.4.174) port 0 AF_INET^M
Recv Send Send ^M
Socket Socket Message Elapsed ^M
Size Size Size Time Throughput ^M
bytes bytes bytes secs. 10^6bits/sec ^M
^M
87380 16384 16384 600.00 93.77 ^M
--- Sonic Zhang 2009-02-03 22:26:14
So, this bug occurs when sclk=100 and cclk=500, while disappears when sclk=125
cclk=500. And the TX and RX buffer sizes are not the default values. TX buffer
size is set to 100 and RX to 500. This could be a bug in bfin_mac driver.
--- Michael Hennerich 2009-02-04 03:59:41
Grace,
is it also only seen with "set buffer packets" as described in the
earlier bug description? Regardless of SCLK?
-Michael
--- Sonic Zhang 2009-02-04 04:23:31
The latest result shows it only occur in 100/500 with Tx=100 and Rx=500.
--- Sonic Zhang 2009-02-08 21:49:17
duplicated bug of 4836
--- Mingquan Pan 2009-02-10 23:05:05
Yeah, this issue goes awag now and can get better results, like :
Starting Kernel at = 1ad48c
Linux version 2.6.28.3-ADI-2009R1-pre-svn6083 (test@uclinux60-bf527-std) (gcc
version 4.1.2 (ADI svn)) #30 Tue Feb 10 19:06:46 CST 2009
console [early_BFuart0] enabled
early printk enabled on early_BFuart0
Board Memory: 64MB
Kernel Managed Memory: 64MB
Memory map:
fixedcode = 0x00000400-0x00000490
text = 0x00001000-0x001229b0
rodata = 0x001229b0-0x0017e08c
bss = 0x0017e090-0x0018d07c
data = 0x0018d07c-0x001a0000
stack = 0x0019e000-0x001a0000
init = 0x001a0000-0x0077a000
available = 0x0077a000-0x03eff000
DMA Zone = 0x03f00000-0x04000000
Hardware Trace Active and Enabled
Boot Mode: 1
Blackfin support (C) 2004-2009 Analog Devices, Inc.
...
test@uclinux60-bf527-std:~/work/cruise/checkouts/uclinux-dist/testsuites/ethernet>
cat netperf_tcp_rr^M
TCP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.100.4.174
(10.100.4.174) port 0 AF_INET^M
Local /Remote^M
Socket Size Request Resp. Elapsed Trans.^M
Send Recv Size Size Time Rate ^M
bytes Bytes bytes bytes secs. per sec ^M
^M
16384 87380 1 1 600.00 3674.37 ^M
16384 87380 ^M
root:/> cat netperf_tcp_stream^M
TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.100.4.174
(10.100.4.174) port 0 AF_INET^M
netperf: receive_response: no response received. errno 110 counter 0^M
root:/>
Case 1 ...FAIL
Since the error when catting netperf_tcp_stream is tracked in bug [1433]. So
close this.
Files
Changes
Commits
Dependencies
Duplicates
Associations
Tags
File Name File Type File Size Posted By
config.ethernet_in_buffer application/octet-stream 37667 Mingquan Pan
config.ethernet_in_buffer application/octet-stream 38638 Mingquan Pan