<div dir="ltr"><div>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.<br><br></div><div>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.<br></div><div><br></div>Thanks and regards,<br>Vignesh Radhakrishnan<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Nov 27, 2014 at 2:26 PM, Victor Ascroft <span dir="ltr">&lt;<a href="mailto:victorascroft@gmail.com" target="_blank">victorascroft@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,<br>
<br>
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&#39;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&#39;t hang.<br>
<br>
root:~# cat /proc/interrupts<br>
           CPU0<br>
 27:      15122       GIC  27  gt<br>
107:        162       GIC 107  40034000.usb<br>
<br>
The above number of interrupts does not increase at some point, showing that irq&#39;s are not serviced any more.<br>
<br>
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.<br>
<br>
I enabled prints for the whole USB driver section, with dynamic debug, but, this doesn&#39;t help much or at least I am not able to make out much from it. Below is the relevant dmesg log.<br>
<br>
[    1.175253] using random self ethernet address<br>
[    1.182722] using random host ethernet address<br>
[    1.205327] using random self ethernet address<br>
[    1.212857] using random host ethernet address<br>
[    1.220419] g_ether gadget: adding config #2 &#39;RNDIS&#39;/808055c8<br>
[    1.220467] g_ether gadget: adding &#39;rndis&#39;/8ea48300 to config &#39;RNDIS&#39;/808055c8<br>
[    1.220545] g_ether gadget: RNDIS: dual speed IN/ep1in OUT/ep1out NOTIFY/ep2in<br>
[    1.220566] g_ether gadget: cfg 2/808055c8 speeds: high full<br>
[    1.220583] g_ether gadget:   interface 0 = rndis/8ea48300<br>
[    1.220599] g_ether gadget:   interface 1 = rndis/8ea48300<br>
[    1.220617] g_ether gadget: adding config #1 &#39;CDC Ethernet (ECM)&#39;/8080551c<br>
[    1.220646] g_ether gadget: adding &#39;cdc_ethernet&#39;/8ea483c0 to config &#39;CDC Ethernet (ECM)&#39;/8080551c<br>
[    1.220701] g_ether gadget: CDC Ethernet: dual speed IN/ep1in OUT/ep1out NOTIFY/ep2in<br>
[    1.220721] g_ether gadget: cfg 1/8080551c speeds: high full<br>
[    1.220737] g_ether gadget:   interface 0 = cdc_ethernet/8ea483c0<br>
[    1.220753] g_ether gadget:   interface 1 = cdc_ethernet/8ea483c0<br>
[    1.220778] g_ether gadget: Ethernet Gadget, version: Memorial Day 2008<br>
[    1.230557] g_ether gadget: g_ether ready<br>
[    1.682860] g_ether gadget: high-speed config #1: CDC Ethernet (ECM)<br>
[    1.692933] g_ether gadget: init ecm<br>
[    1.692957] g_ether gadget: notify connect false<br>
[    1.702757] g_ether gadget: activate ecm<br>
[    1.702798] g_ether gadget: ecm_close<br>
[    1.710720] g_ether gadget: packet filter 0e<br>
[    1.710734] g_ether gadget: ecm req21.43 v000e i0000 l0<br>
[    1.786925] g_ether gadget: packet filter 0e<br>
[    1.786946] g_ether gadget: ecm req21.43 v000e i0000 l0<br>
[    1.789824] g_ether gadget: packet filter 0e<br>
[    1.789843] g_ether gadget: ecm req21.43 v000e i0000 l0<br>
[    1.790733] g_ether gadget: setup complete --&gt; -108, 0/0<br>
[    1.790750] g_ether gadget: packet filter 0e<br>
[    1.790768] g_ether gadget: ecm req21.43 v000e i0000 l0<br>
[    1.806118] g_ether gadget: notify connect false<br>
[    1.838131] g_ether gadget: notify speed 425984000<br>
[    6.277081] g_ether gadget: packet filter 0e<br>
[    6.277103] g_ether gadget: ecm req21.43 v000e i0000 l0<br>
[  294.926900] [472] usb_f_ecm:ecm_open:665: g_ether gadget: ecm_open<br>
[  294.926930] [472] usb_f_ecm:ecm_do_notify:405: g_ether gadget: notify connect true<br>
[  294.945515] &lt;intr&gt; usb_f_ecm:ecm_do_notify:420: g_ether gadget: notify speed 425984000<br>
[  294.948877] &lt;intr&gt; usb_f_ecm:ecm_setup:490: g_ether gadget: packet filter 0e<br>
[  294.948904] &lt;intr&gt; usb_f_ecm:ecm_setup:519: g_ether gadget: ecm req21.43 v000e i0000 l0<br>
[  295.009820] &lt;intr&gt; usb_f_ecm:ecm_setup:490: g_ether gadget: packet filter 0e<br>
[  295.009846] &lt;intr&gt; usb_f_ecm:ecm_setup:519: g_ether gadget: ecm req21.43 v000e i0000 l0<br>
[  324.637471] &lt;intr&gt; usb_f_ecm:ecm_setup:490: g_ether gadget: packet filter 0e<br>
[  324.637500] &lt;intr&gt; usb_f_ecm:ecm_setup:519: g_ether gadget: ecm req21.43 v000e i0000 l0<br>
<br>
Any pointers would be useful. Thanks!<br>
<br>
--Regards.<br>
<br>
<br>
_______________________________________________<br>
Kernelnewbies mailing list<br>
<a href="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.org</a><br>
<a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" target="_blank">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br>
</blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature"><a href="http://vigneshradhakrishnan.blogspot.com/" target="_blank">http://vigneshradhakrishnan.blogspot.com/</a><br></div>
</div>