kernelnewbies.kernelnewbies.org archive mirror
 help / color / mirror / Atom feed
From: victorascroft@gmail.com (Victor Ascroft)
To: kernelnewbies@lists.kernelnewbies.org
Subject: Query on USB related debugging
Date: Thu, 27 Nov 2014 14:26:44 +0530	[thread overview]
Message-ID: <5476E74C.4030901@gmail.com> (raw)

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.

             reply	other threads:[~2014-11-27  8:56 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-27  8:56 Victor Ascroft [this message]
2014-11-30  6:35 ` Query on USB related debugging Vignesh Radhakrishnan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5476E74C.4030901@gmail.com \
    --to=victorascroft@gmail.com \
    --cc=kernelnewbies@lists.kernelnewbies.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).