I'm experiencing a very consistent problem with the CPSW on an AM3874 when transmitting udp packets.
PSP 04.01.00.06
The error shows up in syslog as so:
------------[ cut here ]------------
WARNING: at net/sched/sch_generic.c:258 dev_watchdog+0x14c/0x234()
NETDEV WATCHDOG: eth0 (cpsw): transmit queue 0 timed out
Modules linked in: ipv6
Backtrace:
[<c003bb70>] (dump_backtrace+0x0/0x110) from [<c02cabc4>] (dump_stack+0x18/0x1c)
r7:c03bbe20 r6:c0251b54 r5:c039103b r4:00000102
[<c02cabac>] (dump_stack+0x0/0x1c) from [<c005e0c8>] (warn_slowpath_common+0x54/
0x6c)
[<c005e074>] (warn_slowpath_common+0x0/0x6c) from [<c005e184>] (warn_slowpath_fm
t+0x38/0x40)
r9:c041588c r8:c0415c8c r7:c03ba000 r6:c04265ac r5:00000000
r4:cf814000
[<c005e14c>] (warn_slowpath_fmt+0x0/0x40) from [<c0251b54>] (dev_watchdog+0x14c/
0x234)
r3:cf814000 r2:c0391053
[<c0251a08>] (dev_watchdog+0x0/0x234) from [<c00689b4>] (run_timer_softirq+0x148
/0x1e4)
r6:c0251a08 r5:00000100 r4:c0414e80
[<c006886c>] (run_timer_softirq+0x0/0x1e4) from [<c0063254>] (__do_softirq+0x80/
0x108)
[<c00631d4>] (__do_softirq+0x0/0x108) from [<c0063324>] (irq_exit+0x48/0x94)
[<c00632dc>] (irq_exit+0x0/0x94) from [<c002d080>] (asm_do_IRQ+0x80/0xa0)
[<c002d000>] (asm_do_IRQ+0x0/0xa0) from [<c02ccc34>] (__irq_svc+0x34/0xa0)
Exception stack(0xc03bbf50 to 0xc03bbf98)
bf40: 81400181 40000013 c03bbf98 81400081
bf60: c03ba000 c03f3c40 c0029e34 c03be06c 80000000 413fc082 0000001f c03bbfa4
bf80: c03bbf98 c03bbf98 c0038f2c c0038f30 20000013 ffffffff
r5:fa200000 r4:ffffffff
[<c0038ee4>] (default_idle+0x0/0x54) from [<c00394d4>] (cpu_idle+0x50/0x90)
[<c0039484>] (cpu_idle+0x0/0x90) from [<c02c2068>] (rest_init+0x60/0x78)
r5:c03f3c40 r4:c0417ea8
[<c02c2008>] (rest_init+0x0/0x78) from [<c0008c6c>] (start_kernel+0x258/0x2ac)
[<c0008a14>] (start_kernel+0x0/0x2ac) from [<80008044>] (0x80008044)
r5:c03f3d5c r4:10c53c7d
---[ end trace d8282103f1c61381 ]---
To elaborate my root filesystem is NFS mounted and heavy ICMP traffic from another host to this board works well for hours on end. So far the problem only manifests itself after transmitting in the vicinity of a 1 GB of udp traffic. Once this trace shows up the system still responds to mdio events and will show the link coming and going as the cable is plugged/unplugged but I cannot get the device to reset and start sending again.
Anybody seen an issue like this before I start digging into the cpsw driver?
Best Regards,
-Ryan