Re: Callback not called on bulk out transfer with usbfs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jun 15, 2012 at 7:55 AM, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote:
> On Thu, 14 Jun 2012, Austin Schuh wrote:
>
>> > Here's something to try.  In ehci-hcd.c:ehci_iaa_watchdog(), change the
>> > ehci_vdbg() function call to ehci_warn(), leaving the arguments the
>> > same.  This will log a message for each of the lost IAA interrupts, so
>> > we'll be able to see a little bit of what's happening.
>>
>> Here's your dump.  For completeness, I had ehci->need_io_watchdog = 1
>> enabled, on the desktop machine, kernel 2.6.38.8.
>> All the other entries look very similar to one of these two.  I can
>> give you more of them if you would like.
>>
> Those are the important entries.
>
>> cat /var/log/syslog | IAA
>>
>> Jun 14 13:35:10 aschuh kernel: [  407.168318] ehci_hcd 0000:00:1a.7:
>> IAA watchdog: status c028 cmd 10031
>> Jun 14 13:41:36 aschuh kernel: [  792.939975] ehci_hcd 0000:00:1a.7:
>> IAA watchdog: status 8028 cmd 10021
>> Jun 14 13:41:54 aschuh kernel: [  810.747858] ehci_hcd 0000:00:1a.7:
>> IAA watchdog: status c028 cmd 10031
>> Jun 14 13:45:40 aschuh kernel: [ 1036.705444] ehci_hcd 0000:00:1a.7:
>> IAA watchdog: status c028 cmd 10031
>> Jun 14 13:45:47 aschuh kernel: [ 1042.827822] ehci_hcd 0000:00:1a.7:
>> IAA watchdog: status c028 cmd 10031
>> Jun 14 13:52:09 aschuh kernel: [ 1424.787116] ehci_hcd 0000:00:1a.7:
>> IAA watchdog: status 8028 cmd 10021
>> Jun 14 13:56:10 aschuh kernel: [ 1665.323853] ehci_hcd 0000:00:1a.7:
>> IAA watchdog: status c028 cmd 10031
>> Jun 14 13:57:38 aschuh kernel: [ 1753.762315] ehci_hcd 0000:00:1a.7:
>> IAA watchdog: status 8028 cmd 10021
>> Jun 14 14:01:23 aschuh kernel: [ 1977.839189] ehci_hcd 0000:00:1a.7:
>> IAA watchdog: status c028 cmd 10031
>> Jun 14 14:04:01 aschuh kernel: [ 2135.979125] ehci_hcd 0000:00:1a.7:
>> IAA watchdog: status c028 cmd 10031
>> Jun 14 14:09:31 aschuh kernel: [ 2465.372666] ehci_hcd 0000:00:1a.7:
>> IAA watchdog: status 8028 cmd 10021
>> Jun 14 14:18:32 aschuh kernel: [ 3005.369987] ehci_hcd 0000:00:1a.7:
>> IAA watchdog: status e028 cmd 10031
>
> Those indicate that IRQs are getting lost.  I have no idea why, except
> that it probably isn't a problem in the USB hardware.  Maybe something
> is wrong with interrupt-handling hardware.  On the other hand, a
> hardware problem is unlikely to affect multiple different computer
> systems.
>
> To confirm the diagnosis, apply the patch below along with your change
> to the iaa_watchdog routine.  It'll generate a lot of output; only the
> entries that are close to the IAA watchdog messages will matter.
>
> Alan Stern
>
> Index: v/drivers/usb/host/ehci-hcd.c
> ===================================================================
> --- v.orig/drivers/usb/host/ehci-hcd.c
> +++ v/drivers/usb/host/ehci-hcd.c
> @@ -851,6 +851,8 @@ static irqreturn_t ehci_irq (struct usb_
>        spin_lock (&ehci->lock);
>
>        status = ehci_readl(ehci, &ehci->regs->status);
> +       ehci_info(ehci, "IRQ: status %x cmd %x\n", status,
> +                       ehci_readl(ehci, &ehci->regs->command));
>
>        /* e.g. cardbus physical eject */
>        if (status == ~(u32) 0) {
>

Here's another dump.  Same machine, same kernel.a

[  328.346687] ehci_hcd 0000:00:1a.7: IRQ: status 8009 cmd 10021
[  328.346771] ehci_hcd 0000:00:1a.7: IAA watchdog: status 8028 cmd 10021
[  328.346780] ehci_hcd 0000:00:1a.7: IRQ: status 8008 cmd 10021

[ 1007.149450] ehci_hcd 0000:00:1a.7: IRQ: status c009 cmd 10031
[ 1007.149493] ehci_hcd 0000:00:1a.7: IAA watchdog: status c028 cmd 10031
[ 1007.149821] ehci_hcd 0000:00:1a.7: IRQ: status c009 cmd 10031

[ 1150.328479] ehci_hcd 0000:00:1a.7: IRQ: status 8009 cmd 10021
[ 1150.328551] ehci_hcd 0000:00:1a.7: IAA watchdog: status 8028 cmd 10021
[ 1150.329227] ehci_hcd 0000:00:1a.7: IRQ: status 8009 cmd 10021
[ 1150.329309] ehci_hcd 0000:00:1a.7: IRQ: status 8028 cmd 10021

[ 1216.624651] ehci_hcd 0000:00:1a.7: IRQ: status c009 cmd 10031
[ 1216.624716] ehci_hcd 0000:00:1a.7: IAA watchdog: status c028 cmd 10031
[ 1216.634720] ehci_hcd 0000:00:1a.7: IRQ: status c028 cmd 10031

[ 1294.496102] ehci_hcd 0000:00:1a.7: IRQ: status c009 cmd 10031
[ 1294.496211] ehci_hcd 0000:00:1a.7: IAA watchdog: status c028 cmd 10031
[ 1294.496515] ehci_hcd 0000:00:1a.7: IRQ: status c009 cmd 10031

[ 1356.078251] ehci_hcd 0000:00:1a.7: IRQ: status c009 cmd 10031
[ 1356.078294] ehci_hcd 0000:00:1a.7: IAA watchdog: status c028 cmd 10031
[ 1356.078556] ehci_hcd 0000:00:1a.7: IRQ: status c009 cmd 10031

Austin Schuh
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux