Query on USB related debugging
Victor Ascroft
victorascroft at gmail.com
Thu Nov 27 03:56:44 EST 2014
Hello,
I have an embedded device with a Freescale ARM Cortex A5 processor, running the 3.18-rc5 kernel. I have a problem where using the Ethernet over USB client stops functioning after a while. If I set the IP of the usb0 interface and try to ping the device from the host or vice versa, it works fine up to that point. Running iperf, establishes a connection to the host, but, doesn't complete even one cycle. Checking /proc/interrupts shows that after a while, probably a few seconds, it freezes. No more interrupts are serviced it seems. I put in a few debug prints in udc_irq to check, if things go right superficially at least, udc_irq seems to exit cleanly and of course my device doesn't hang.
root:~# cat /proc/interrupts
CPU0
27: 15122 GIC 27 gt
107: 162 GIC 107 40034000.usb
The above number of interrupts does not increase at some point, showing that irq's are not serviced any more.
My main query is how can I go about and start debugging this issue? What process, tools or methods I can use to debug and solve this problem. I have done some debugging before in the kernel/u-boot, but, the problems have always been which lead to crashes. So, the origin of it was at least clear, if not the source/cause of it. In this scenario, I am at a loss in which direction to start digging.
I enabled prints for the whole USB driver section, with dynamic debug, but, this doesn't help much or at least I am not able to make out much from it. Below is the relevant dmesg log.
[ 1.175253] using random self ethernet address
[ 1.182722] using random host ethernet address
[ 1.205327] using random self ethernet address
[ 1.212857] using random host ethernet address
[ 1.220419] g_ether gadget: adding config #2 'RNDIS'/808055c8
[ 1.220467] g_ether gadget: adding 'rndis'/8ea48300 to config 'RNDIS'/808055c8
[ 1.220545] g_ether gadget: RNDIS: dual speed IN/ep1in OUT/ep1out NOTIFY/ep2in
[ 1.220566] g_ether gadget: cfg 2/808055c8 speeds: high full
[ 1.220583] g_ether gadget: interface 0 = rndis/8ea48300
[ 1.220599] g_ether gadget: interface 1 = rndis/8ea48300
[ 1.220617] g_ether gadget: adding config #1 'CDC Ethernet (ECM)'/8080551c
[ 1.220646] g_ether gadget: adding 'cdc_ethernet'/8ea483c0 to config 'CDC Ethernet (ECM)'/8080551c
[ 1.220701] g_ether gadget: CDC Ethernet: dual speed IN/ep1in OUT/ep1out NOTIFY/ep2in
[ 1.220721] g_ether gadget: cfg 1/8080551c speeds: high full
[ 1.220737] g_ether gadget: interface 0 = cdc_ethernet/8ea483c0
[ 1.220753] g_ether gadget: interface 1 = cdc_ethernet/8ea483c0
[ 1.220778] g_ether gadget: Ethernet Gadget, version: Memorial Day 2008
[ 1.230557] g_ether gadget: g_ether ready
[ 1.682860] g_ether gadget: high-speed config #1: CDC Ethernet (ECM)
[ 1.692933] g_ether gadget: init ecm
[ 1.692957] g_ether gadget: notify connect false
[ 1.702757] g_ether gadget: activate ecm
[ 1.702798] g_ether gadget: ecm_close
[ 1.710720] g_ether gadget: packet filter 0e
[ 1.710734] g_ether gadget: ecm req21.43 v000e i0000 l0
[ 1.786925] g_ether gadget: packet filter 0e
[ 1.786946] g_ether gadget: ecm req21.43 v000e i0000 l0
[ 1.789824] g_ether gadget: packet filter 0e
[ 1.789843] g_ether gadget: ecm req21.43 v000e i0000 l0
[ 1.790733] g_ether gadget: setup complete --> -108, 0/0
[ 1.790750] g_ether gadget: packet filter 0e
[ 1.790768] g_ether gadget: ecm req21.43 v000e i0000 l0
[ 1.806118] g_ether gadget: notify connect false
[ 1.838131] g_ether gadget: notify speed 425984000
[ 6.277081] g_ether gadget: packet filter 0e
[ 6.277103] g_ether gadget: ecm req21.43 v000e i0000 l0
[ 294.926900] [472] usb_f_ecm:ecm_open:665: g_ether gadget: ecm_open
[ 294.926930] [472] usb_f_ecm:ecm_do_notify:405: g_ether gadget: notify connect true
[ 294.945515] <intr> usb_f_ecm:ecm_do_notify:420: g_ether gadget: notify speed 425984000
[ 294.948877] <intr> usb_f_ecm:ecm_setup:490: g_ether gadget: packet filter 0e
[ 294.948904] <intr> usb_f_ecm:ecm_setup:519: g_ether gadget: ecm req21.43 v000e i0000 l0
[ 295.009820] <intr> usb_f_ecm:ecm_setup:490: g_ether gadget: packet filter 0e
[ 295.009846] <intr> usb_f_ecm:ecm_setup:519: g_ether gadget: ecm req21.43 v000e i0000 l0
[ 324.637471] <intr> usb_f_ecm:ecm_setup:490: g_ether gadget: packet filter 0e
[ 324.637500] <intr> usb_f_ecm:ecm_setup:519: g_ether gadget: ecm req21.43 v000e i0000 l0
Any pointers would be useful. Thanks!
--Regards.
More information about the Kernelnewbies
mailing list