linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* RE: ucc_geth: transmit queue timeout at half-duplex mode
  2010-12-10 13:52 ucc_geth: transmit queue timeout at half-duplex mode Schmitz, Andreas
@ 2010-11-24 11:05 ` Li Yang-R58472
  0 siblings, 0 replies; 2+ messages in thread
From: Li Yang-R58472 @ 2010-11-24 11:05 UTC (permalink / raw)
  To: Schmitz, Andreas; +Cc: netdev, linuxppc-dev

>Subject: ucc_geth: transmit queue timeout at half-duplex mode
>
>Hi all,
>on my MPC8321E with linux-2.6.36 I get this netdev watchdog warning
>"NETDEV WATCHDOG: eth0 (of:ucc_geth): transmit queue 0 timed out" if =
the
>link mode is half-duplex.
>The warning is caused, because all Tx BDs are full and packet =
transmission
>is stopped with netif_stop_queue() in ucc_geth_start_xmit().
>
>You can reproduce the bug in the following way:
>- Connect to a switch, that supports only 10baseT, or set the mode
>manually with "mii-diag -F 10baseT".
>- Open a telnet session to the target. Generate higher traffic with
>executing maybe "cat /proc/interrupts" many times.
>- After some tries the ethernet connection will be down, then again =
after
>approx. 30s seconds the netdev watchdog will dump the warning.
>
>It is unclear to me why the TxBDs get full. Due to missing "Tx buffer
>sent" interrupts, it seems that the QE stops the transmission.
>
>I found some issue in the errata: "QE_ENET20: UEC may stop transmitting
>after late collision". But UCCE[TXE] is never set in this case.
>
>Thank you for your help in advance and best regards,

I believe your problem is related to an errata for 8321:
High Tx Virtual FIFO threshold size can cause UCC to halt.

Reducing the UTFTT might fix the problem.

If you are interested, I can sent you the detailed errata off the =
thread.

- Leo

^ permalink raw reply	[flat|nested] 2+ messages in thread

* ucc_geth: transmit queue timeout at half-duplex mode
@ 2010-12-10 13:52 Schmitz, Andreas
  2010-11-24 11:05 ` Li Yang-R58472
  0 siblings, 1 reply; 2+ messages in thread
From: Schmitz, Andreas @ 2010-12-10 13:52 UTC (permalink / raw)
  To: leoli; +Cc: netdev, linuxppc-dev


[-- Attachment #1.1: Type: text/plain, Size: 1227 bytes --]

Hi all,
on my MPC8321E with linux-2.6.36 I get this netdev watchdog warning "NETDEV WATCHDOG: eth0 (of:ucc_geth): transmit queue 0 timed out" if the link mode is half-duplex.
The warning is caused, because all Tx BDs are full and packet transmission is stopped with netif_stop_queue() in ucc_geth_start_xmit().

You can reproduce the bug in the following way:
- Connect to a switch, that supports only 10baseT, or set the mode manually with "mii-diag -F 10baseT".
- Open a telnet session to the target. Generate higher traffic with executing maybe "cat /proc/interrupts" many times.
- After some tries the ethernet connection will be down, then again after approx. 30s seconds the netdev watchdog will dump the warning.

It is unclear to me why the TxBDs get full. Due to missing "Tx buffer sent" interrupts, it seems that the QE stops the transmission.

I found some issue in the errata: "QE_ENET20: UEC may stop transmitting after late collision". But UCCE[TXE] is never set in this case.

Thank you for your help in advance and best regards,

Andreas Schmitz
Software Engineer
_______________________________________
RIEDEL
Communications GmbH & Co. KG
Uellendahler Str. 353
42109 Wuppertal
Germany


[-- Attachment #1.2: Type: text/html, Size: 2213 bytes --]

[-- Attachment #2: ucc_geth_half_duplex_netdev_watchdog.txt --]
[-- Type: text/plain, Size: 13531 bytes --]

PHY: mdio@e0102320:01 - Link is Up - 10/Half
NETDEV WATCHDOG: eth0 (of:ucc_geth): transmit queue 0 timed out
------------[ cut here ]------------
WARNING: at net/sched/sch_generic.c:258
Modules linked in: gpio
NIP: c01887c0 LR: c01887c0 CTR: c012b8d4
REGS: c3ffbe30 TRAP: 0700   Not tainted  (2.6.36)
MSR: 00029032 <EE,ME,CE,IR,DR>  CR: 44022084  XER: 20000000
TASK = c07f6410[0] 'swapper' THREAD: c080e000
GPR00: c01887c0 c3ffbee0 c07f6410 00000046 00001848 ffffffff c012c2b0 2074696d
GPR08: 00001808 c3ffa000 c0817eb8 00000004 00000000 1007d144 03fff000 c07f94e4
GPR16: 00200200 c020dcd4 00000000 00000001 c0837fc0 c08381ec c083826c c08382ec
GPR24: c083836c 00000002 ffffffff 00000000 c3ffa03c c2607fa0 00000000 c2583000
NIP [c01887c0] dev_watchdog+0x198/0x28c
LR [c01887c0] dev_watchdog+0x198/0x28c
Call Trace:
[c3ffbee0] [c01887c0] dev_watchdog+0x198/0x28c (unreliable)
[c3ffbf50] [c003c9b0] run_timer_softirq+0x1b0/0x250
[c3ffbfb0] [c0036d18] __do_softirq+0xa8/0x124
[c3ffbff0] [c000e5dc] call_do_softirq+0x14/0x24
[c080fe70] [c0005e38] do_softirq+0x6c/0x8c
[c080fe90] [c00367b4] irq_exit+0x3c/0x54
[c080fea0] [c0005fec] do_IRQ+0x128/0x144
[c080fec0] [c000f2ac] ret_from_except+0x0/0x14
--- Exception: 501 at cpu_idle+0x94/0xe4
    LR = cpu_idle+0x94/0xe4
[c080ff80] [c00090c4] cpu_idle+0xe0/0xe4 (unreliable)
[c080ffa0] [c0003e50] rest_init+0xa8/0xd8
[c080ffc0] [c023e80c] start_kernel+0x2b8/0x2cc
[c080fff0] [00003438] 0x3438
Instruction dump:
2f800000 40be003c 38810008 7fe3fb78 38a00040 4bfeb799 7fc6f378 7fe4fb78
7c651b78 3c60c022 386316b0 4804f631 <0fe00000> 38000001 3d20c085 9809aa6c
---[ end trace 0cbe1c7362251e03 ]---
UCC2 Fast registers:
Base address: 0xc91c6200
gumr  : addr=0xc91c6200, val=0x0000003c
upsmr : addr=0xc91c6204, val=0x02002000
utodr : addr=0xc91c6208, val=0x0000
udsr  : addr=0xc91c620c, val=0x7e7e
ucce  : addr=0xc91c6210, val=0x00000000
uccm  : addr=0xc91c6214, val=0x5fff00ff
uccs  : addr=0xc91c6218, val=0x00
urfb  : addr=0xc91c6220, val=0x00001780
urfs  : addr=0xc91c6224, val=0x0200
urfet : addr=0xc91c6228, val=0x0100
urfset: addr=0xc91c622a, val=0x0180
utfb  : addr=0xc91c622c, val=0x00001580
utfs  : addr=0xc91c6230, val=0x0200
utfet : addr=0xc91c6234, val=0x0100
utftt : addr=0xc91c6238, val=0x0200
utpt  : addr=0xc91c623c, val=0x0100
urtry : addr=0xc91c6240, val=0x00000000
guemr : addr=0xc91c6290, val=0x13
UCC3 Geth registers:
Base address: 0xc91ca200
maccfg1    : addr - 0xc91ca300, val - 0x0000003f
maccfg2    : addr - 0xc91ca304, val - 0x00007124
ipgifg     : addr - 0xc91ca308, val - 0x40605060
hafdup     : addr - 0xc91ca30c, val - 0x00a1f037
ifctl      : addr - 0xc91ca338, val - 0x01000000
ifstat     : addr - 0xc91ca33c, val - 0x00000008
macstnaddr1: addr - 0xc91ca340, val - 0x4708007c
macstnaddr2: addr - 0xc91ca344, val - 0x19000000
uempr      : addr - 0xc91ca350, val - 0x00000000
utbipar    : addr - 0xc91ca354, val - 0x00000020
uescr      : addr - 0xc91ca358, val - 0x0804
tx64       : addr - 0xc91ca380, val - 0x00000005
tx127      : addr - 0xc91ca384, val - 0x00000046
tx255      : addr - 0xc91ca388, val - 0x00000121
rx64       : addr - 0xc91ca38c, val - 0x00000002
rx127      : addr - 0xc91ca390, val - 0x00000078
rx255      : addr - 0xc91ca394, val - 0x00000139
txok       : addr - 0xc91ca398, val - 0x0001294f
txcf       : addr - 0xc91ca39c, val - 0x0000
tmca       : addr - 0xc91ca3a0, val - 0x00000000
tbca       : addr - 0xc91ca3a4, val - 0x00000002
rxfok      : addr - 0xc91ca3a8, val - 0x000001a8
rxbok      : addr - 0xc91ca3ac, val - 0x0001563d
rbyt       : addr - 0xc91ca3b0, val - 0x0001843b
rmca       : addr - 0xc91ca3b4, val - 0x00000000
rbca       : addr - 0xc91ca3b8, val - 0x00000004
scar       : addr - 0xc91ca3bc, val - 0x00000000
scam       : addr - 0xc91ca3c0, val - 0xfffe0000
Thread data TXs:
Base address: 0xfdefbb00
Thread data TX[0]:
Base address: 0xfdefbb00
0xfdefbb00: 18000000 188000ca 18000000 18800044
0xfdefbb10: 18000000 1880005e 0260e130 18800044
0xfdefbb20: 02000318 202490c5 00181204 0c00800e
0xfdefbb30: 69fdf7fe b6a7fa9f eddffeaf bb7fff77
0xfdefbb40: 800016e0 b2000080 0260e138 02179876
0xfdefbb50: 80001580 b0000080 0260e138 021798f6
0xfdefbb60: 80001608 b0000080
Thread data RX:
Base address: 0xfdefbd00
Thread data RX[0]:
Base address: 0xfdefbd00
0xfdefbd00: 00000000 08c01055 00000000 02003000
0xfdefbd10: 00000000 08c01055 00000000 02003000
0xfdefbd20: 00001f00 00000005
TX global param:
Base address: 0xfdefba00
temoder      : addr - 0xfdefba00, val - 0x0110
sqptr        : addr - 0xfdefba38, val - 0x000019a0
schedulerbasepointer: addr - 0xfdefba3c, val - 0x00000000
txrmonbaseptr: addr - 0xfdefba40, val - 0x00001a80
tstate       : addr - 0xfdefba44, val - 0x30000000
iphoffset[0] : addr - 0xfdefba48, val - 0x00
iphoffset[1] : addr - 0xfdefba49, val - 0x00
iphoffset[2] : addr - 0xfdefba4a, val - 0x00
iphoffset[3] : addr - 0xfdefba4b, val - 0x00
iphoffset[4] : addr - 0xfdefba4c, val - 0x00
iphoffset[5] : addr - 0xfdefba4d, val - 0x00
iphoffset[6] : addr - 0xfdefba4e, val - 0x00
iphoffset[7] : addr - 0xfdefba4f, val - 0x00
vtagtable[0] : addr - 0xfdefba50, val - 0x00000000
vtagtable[1] : addr - 0xfdefba54, val - 0x00000000
vtagtable[2] : addr - 0xfdefba58, val - 0x00000000
vtagtable[3] : addr - 0xfdefba5c, val - 0x00000000
vtagtable[4] : addr - 0xfdefba60, val - 0x00000000
vtagtable[5] : addr - 0xfdefba64, val - 0x00000000
vtagtable[6] : addr - 0xfdefba68, val - 0x00000000
vtagtable[7] : addr - 0xfdefba6c, val - 0x00000000
tqptr        : addr - 0xfdefba70, val - 0x00001b00
RX global param:
Base address: 0xfdefbc00
remoder         : addr - 0xfdefbc00, val - 0x00001000
rqptr           : addr - 0xfdefbc04, val - 0x00001d00
typeorlen       : addr - 0xfdefbc20, val - 0x0c00
rxgstpack       : addr - 0xfdefbc23, val - 0x00
rxrmonbaseptr   : addr - 0xfdefbc24, val - 0x00001e00
intcoalescingptr: addr - 0xfdefbc30, val - 0x00001ac0
rstate          : addr - 0xfdefbc36, val - 0x30
mrblr           : addr - 0xfdefbc46, val - 0x0600
rbdqptr         : addr - 0xfdefbc48, val - 0x00001e60
mflr            : addr - 0xfdefbc4c, val - 0x05ee
minflr          : addr - 0xfdefbc4e, val - 0x0040
maxd1           : addr - 0xfdefbc50, val - 0x05f0
maxd2           : addr - 0xfdefbc52, val - 0x05f0
ecamptr         : addr - 0xfdefbc54, val - 0x00000000
l2qt            : addr - 0xfdefbc58, val - 0x00000000
l3qt[0]         : addr - 0xfdefbc5c, val - 0x00000000
l3qt[1]         : addr - 0xfdefbc60, val - 0x00000000
l3qt[2]         : addr - 0xfdefbc64, val - 0x00000000
l3qt[3]         : addr - 0xfdefbc68, val - 0x00000000
l3qt[4]         : addr - 0xfdefbc6c, val - 0x00000000
l3qt[5]         : addr - 0xfdefbc70, val - 0x00000000
l3qt[6]         : addr - 0xfdefbc74, val - 0x00000000
l3qt[7]         : addr - 0xfdefbc78, val - 0x00000000
vlantype        : addr - 0xfdefbc7c, val - 0x8100
vlantci         : addr - 0xfdefbc7e, val - 0x0000
addressfiltering[0]: addr - 0xfdefbc80, val - 0x00
addressfiltering[1]: addr - 0xfdefbc81, val - 0x00
addressfiltering[2]: addr - 0xfdefbc82, val - 0x00
addressfiltering[3]: addr - 0xfdefbc83, val - 0x00
addressfiltering[4]: addr - 0xfdefbc84, val - 0x00
addressfiltering[5]: addr - 0xfdefbc85, val - 0x00
addressfiltering[6]: addr - 0xfdefbc86, val - 0x00
addressfiltering[7]: addr - 0xfdefbc87, val - 0x00
addressfiltering[8]: addr - 0xfdefbc88, val - 0x00
addressfiltering[9]: addr - 0xfdefbc89, val - 0x00
addressfiltering[10]: addr - 0xfdefbc8a, val - 0x00
addressfiltering[11]: addr - 0xfdefbc8b, val - 0x01
addressfiltering[12]: addr - 0xfdefbc8c, val - 0x00
addressfiltering[13]: addr - 0xfdefbc8d, val - 0x00
addressfiltering[14]: addr - 0xfdefbc8e, val - 0x00
addressfiltering[15]: addr - 0xfdefbc8f, val - 0x00
addressfiltering[16]: addr - 0xfdefbc90, val - 0x00
addressfiltering[17]: addr - 0xfdefbc91, val - 0x00
addressfiltering[18]: addr - 0xfdefbc92, val - 0x01
addressfiltering[19]: addr - 0xfdefbc93, val - 0x00
addressfiltering[20]: addr - 0xfdefbc94, val - 0x00
addressfiltering[21]: addr - 0xfdefbc95, val - 0x5e
addressfiltering[22]: addr - 0xfdefbc96, val - 0x00
addressfiltering[23]: addr - 0xfdefbc97, val - 0x01
addressfiltering[24]: addr - 0xfdefbc98, val - 0x00
addressfiltering[25]: addr - 0xfdefbc99, val - 0x00
addressfiltering[26]: addr - 0xfdefbc9a, val - 0xff
addressfiltering[27]: addr - 0xfdefbc9b, val - 0xff
addressfiltering[28]: addr - 0xfdefbc9c, val - 0xff
addressfiltering[29]: addr - 0xfdefbc9d, val - 0xff
addressfiltering[30]: addr - 0xfdefbc9e, val - 0xff
addressfiltering[31]: addr - 0xfdefbc9f, val - 0xff
addressfiltering[32]: addr - 0xfdefbca0, val - 0x00
addressfiltering[33]: addr - 0xfdefbca1, val - 0x00
addressfiltering[34]: addr - 0xfdefbca2, val - 0xff
addressfiltering[35]: addr - 0xfdefbca3, val - 0xff
addressfiltering[36]: addr - 0xfdefbca4, val - 0xff
addressfiltering[37]: addr - 0xfdefbca5, val - 0xff
addressfiltering[38]: addr - 0xfdefbca6, val - 0xff
addressfiltering[39]: addr - 0xfdefbca7, val - 0xff
addressfiltering[40]: addr - 0xfdefbca8, val - 0x00
addressfiltering[41]: addr - 0xfdefbca9, val - 0x00
addressfiltering[42]: addr - 0xfdefbcaa, val - 0xff
addressfiltering[43]: addr - 0xfdefbcab, val - 0xff
addressfiltering[44]: addr - 0xfdefbcac, val - 0xff
addressfiltering[45]: addr - 0xfdefbcad, val - 0xff
addressfiltering[46]: addr - 0xfdefbcae, val - 0xff
addressfiltering[47]: addr - 0xfdefbcaf, val - 0xff
addressfiltering[48]: addr - 0xfdefbcb0, val - 0x00
addressfiltering[49]: addr - 0xfdefbcb1, val - 0x00
addressfiltering[50]: addr - 0xfdefbcb2, val - 0xff
addressfiltering[51]: addr - 0xfdefbcb3, val - 0xff
addressfiltering[52]: addr - 0xfdefbcb4, val - 0xff
addressfiltering[53]: addr - 0xfdefbcb5, val - 0xff
addressfiltering[54]: addr - 0xfdefbcb6, val - 0xff
addressfiltering[55]: addr - 0xfdefbcb7, val - 0xff
addressfiltering[56]: addr - 0xfdefbcb8, val - 0x81
addressfiltering[57]: addr - 0xfdefbcb9, val - 0x00
addressfiltering[58]: addr - 0xfdefbcba, val - 0x00
addressfiltering[59]: addr - 0xfdefbcbb, val - 0x00
addressfiltering[60]: addr - 0xfdefbcbc, val - 0x00
addressfiltering[61]: addr - 0xfdefbcbd, val - 0x00
addressfiltering[62]: addr - 0xfdefbcbe, val - 0x00
addressfiltering[63]: addr - 0xfdefbcbf, val - 0x00
exfGlobalParam  : addr - 0xfdefbcc0, val - 0x00000000
Send Q memory registers:
Base address: 0xfdefb9a0
SQQD[0]:
Base address: 0xfdefb9a0
0xfdefb9a0: 0260e0c0 000019c0 0260e0c0 0260e128
0xfdefb9b0: b73b3fff 0260e128 0260e0c0 0260e138
0xfdefb9c0: 180000cb 02158076 18000213 02175876
0xfdefb9d0: 18000044 02158076 1800005e 02203876
TX FW statistics pram:
Base address: 0xfdefba80
0xfdefba80: 00000000 00000000 00000000 00000000
0xfdefba90: 00000000 00000033 0000015b 00000000
0xfdefbaa0: 00000015 0000000c 00000002 00000000
RX FW statistics pram:
Base address: 0xfdefbe00
0xfdefbe00: 00000032 00000000 00000000 00000000
0xfdefbe10: 00000000 00000001 00000000 00000000
0xfdefbe20: 00000000 00000000 00000000 00000000
0xfdefbe30: 00000000 0000000c 00000013 00000007
0xfdefbe40: 00000000 00000000 00000000 00000000
0xfdefbe50: 00000000 00000000 00000000
RX IRQ coalescing tables:
Base address: 0xfdefbac0
RX IRQ coalescing table entry[0]:
Base address: 0xfdefbac0
interruptcoalescingmaxvalue: addr - 0xfdefbac0, val - 0x00000001
interruptcoalescingcounter : addr - 0xfdefbac4, val - 0x00000001
RX BD QS tables:
Base address: 0xfdefbe60
RX BD QS table[0]:
Base address: 0xfdefbe60
bdbaseptr        : addr - 0xfdefbe60, val - 0x00001e70
bdptr            : addr - 0xfdefbe64, val - 0x00001e70
externalbdbaseptr: addr - 0xfdefbe68, val - 0x0260e180
externalbdptr    : addr - 0xfdefbe6c, val - 0x0260e1c0
ucode RX Prefetched BDs:
Base address: 0xfdefbe70
0xfdefbe70: 90000000 0215b040 90000000 02157040
0xfdefbe80: 90000000 0220d040 90000000 02179040
Init enet param shadow:
Base address: 0xc209ccc0
0xc209ccc0: 0630ff00 04000000 11001c03 04000003
0xc209ccd0: 05001f03 00000000 00000000 00000000
0xc209cce0: 00000000 00000000 00000000 00000000
0xc209ccf0: 00000000 00000000 00001a03 0c001ec3
0xc209cd00: 00000000 00000000 00000000 00000000
0xc209cd10: 00000000 00000000 00000000 00
Init enet entry 0:
Base address: 0xfdefbec0
0xfdefbec0: 40001a00 86001b70 80000000 0000000c
0xfdefbed0: a4e3ff7f e27eff3f df196bd9 33fffc2f
0xfdefbee0: 10904802 00000020 06001b60 06001b60
0xfdefbef0: 67bdf7ed 1aebfcba 35fbeddb ff799df6
Init enet entry 1:
Base address: 0xfdefbf00
0xfdefbf00: 00001c00 00000000 80201000 30000001
0xfdefbf10: 8ebffdbf df001ec0 020031fe 08c01055
0xfdefbf20: 1cc00056 0215b840 05f00000 00001e60
0xfdefbf30: 021588c0 00bf2d7e 00000000 ebc77fc7
0xfdefbf40: 00060402 00016482 ca1c80c6 9810e8c3
0xfdefbf50: a7e195b7 0260e1b8 00000005 00000005
0xfdefbf60: 00001000 81000000 8f040182 30069982
0xfdefbf70: affc77bf f1e3eeff 00000580 00000056
TX BDs[0]
0xc260e0c0: 980001b4 02083876 980001b4 0215a076
0xc260e0d0: 980001b4 02159076 98000042 0216a25e
0xc260e0e0: 9800004e 02079452 9800004e 0216aa52
0xc260e0f0: 980001b4 02158076 9800004e 0216ac52
0xc260e100: 9800004e 0216a052 980001b4 0260c076
0xc260e110: 9800004e 02625e52 980001b4 02161876
0xc260e120: 9800004e 02625052 980001b4 02161076
0xc260e130: 98000044 02175876 b80001b4 02179876
RX BDs[0]
0xc260e180: 90000000 02154840 90000000 0220d840
0xc260e190: 90000000 02158840 90000000 02154040
0xc260e1a0: 90000000 02159840 90000000 02175040
0xc260e1b0: 90000000 02203840 90000000 0215b840
0xc260e1c0: 90000000 0215b040 90000000 02157040
0xc260e1d0: 90000000 0220d040 90000000 02179040
0xc260e1e0: 90000000 02083040 90000000 0215a840
0xc260e1f0: 90000000 02157840 b0000000 0260c840
PHY: mdio@e0102320:01 - Link is Up - 10/Half

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2010-12-10 13:52 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-12-10 13:52 ucc_geth: transmit queue timeout at half-duplex mode Schmitz, Andreas
2010-11-24 11:05 ` Li Yang-R58472

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).