ucc_geth: transmit queue timeout at half-duplex mode

Li Yang-R58472 r58472 at freescale.com
Wed Nov 24 22:05:06 EST 2010


>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




More information about the Linuxppc-dev mailing list