Query on USB related debugging

Vignesh Radhakrishnan vignesh1192 at gmail.com
Sun Nov 30 01:35:52 EST 2014


I am guessing may be the particular interrupt is disabled at the GIC level
? I guess best would to do a GIC registers dump and see if the interrupts
are pending at the GIC level something of that sort. But best would be to
check from GIC perspective.

Also see if there is any low power mode that is attained by the particular
h/w blocks. Generally during these modes some drivers choose to disable
interrupts. Worthwile including dynamic debug on those code pieces as well.

Thanks and regards,
Vignesh Radhakrishnan

On Thu, Nov 27, 2014 at 2:26 PM, Victor Ascroft <victorascroft at gmail.com>
wrote:

> 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.
>
>
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>



-- 
http://vigneshradhakrishnan.blogspot.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20141130/e20d3def/attachment-0001.html 


More information about the Kernelnewbies mailing list