On Wed, Jul 31, 2013 at 10:07 PM, Alan Stern <st...@rowland.harvard.edu> wrote:
> On Wed, 31 Jul 2013, James Stone wrote:
>
>> On Wed, Jul 31, 2013 at 4:48 PM, Alan Stern <st...@rowland.harvard.edu> 
>> wrote:
>> > On Tue, 30 Jul 2013, Alan Stern wrote:
>> >
>> >> I can try to ameliorate the situation.  Although the 7-ms delay will
>> >> inevitably cause an underrun, it doesn't have to cause errors the way
>> >> it does now.  I'll write a patch to handle this.  It may take a few
>> >> days.
>> >
>> > James, see what happens with this patch.  It will print a warning
>> > message in the system log every time it detects an underrun, but it
>> > won't cause an URB submission failure any more.
>> >
>>
>> OK - I will try it, however, it seems a bit like papering over the
>> cracks without really understanding what's causing the error..
>
> It seems likely that the error is caused by an SMI taking too much
> time.  At least, we seem to have ruled out everything else.  Besides,
> this change has to be made eventually in any case -- underruns can
> occur at any time, in principle, and they shouldn't cause the audio
> driver to fail.

Yep - that makes sense. But has there been a change in SMI timings
with the new kernel? I don't think this bug happened with earlier
kernels. Oh, by the way, should I be adding anything to #1191603
seeing as this (non-realtime) bug seems to be the same one everyone
else is complaining about?

>
> By the way, can you post the contents of /proc/interrupts?  I'd like to
> see if the IRQ line in question is shared.
>
           CPU0       CPU1       CPU2       CPU3
  0:         43          0          0          0   IO-APIC-edge      timer
  1:          0          6        125       8193   IO-APIC-edge      i8042
  4:          1          0          0          3   IO-APIC-edge
  7:          1          0          0          0   IO-APIC-edge
  8:          0          0          0          1   IO-APIC-edge      rtc0
  9:          0          0          0          0   IO-APIC-fasteoi   acpi
 12:          6         41       1399     132585   IO-APIC-edge      i8042
 14:          0          0          0          0   IO-APIC-edge      pata_atiixp
 15:          0          0          0          0   IO-APIC-edge      pata_atiixp
 17:    5261388          0          1        104   IO-APIC-fasteoi
ehci_hcd:usb1, ehci_hcd:usb2, ehci_hcd:usb3
 18:          0         52      26049        408   IO-APIC-fasteoi
ohci_hcd:usb4, ohci_hcd:usb5, ohci_hcd:usb6, ohci_hcd:usb7
 19:        285          1       2468     115973   IO-APIC-fasteoi   ahci
 20:          0     179690          3        625   IO-APIC-fasteoi
0000:01:05.0
 40:          0          0          0          0   PCI-MSI-edge      PCIe PME
 41:          0          0          0          0   PCI-MSI-edge      PCIe PME
 42:          1          5        136      13765   PCI-MSI-edge      radeon
 43:          0          0          0          0   PCI-MSI-edge      eth0
NMI:        249        250        250        251   Non-maskable interrupts
LOC:    1429195    1559233    1373952    1109102   Local timer interrupts
SPU:          0          0          0          0   Spurious interrupts
PMI:        249        250        250        251   Performance
monitoring interrupts
IWI:      10666       9404      10633      11032   IRQ work interrupts
RTR:          0          0          0          0   APIC ICR read retries
RES:    1101840    1115189    1141309    1180596   Rescheduling interrupts
CAL:        652        919        780        959   Function call interrupts
TLB:      33102      20339      28625      26571   TLB shootdowns
TRM:          0          0          0          0   Thermal event interrupts
THR:          0          0          0          0   Threshold APIC interrupts
MCE:          0          0          0          0   Machine check exceptions
MCP:         19         19         19         19   Machine check polls
ERR:          1
MIS:          0


>> I just managed to induce another cannot submit URB bug, and there is
>> definitely nothing written to trace around the time of this bug, with
>> the settings:
>>
>> echo 0 > options/function-trace
>> echo irqsoff > current_tracer
>> echo 1 > tracing_on
>> echo 0 > tracing_max_latency
>
> You may need to do "echo 0 >tracing_on" before looking at the file.
> I'm not sure.
>

I don't think that's necessary - it seems to update the file without this.

> But the tracer certainly should contain _something_, because interrupts
> are constantly being disabled and enabled during normal system
> operation.  Even if nothing went wrong, there would still be a nonzero
> latency.

Yes - there was something - from recollection it was some firefox
process with a latency of 2000us, but what I meant is that nothing new
seemed to be written at the time the bug happened.

The file now has:
     cc1-21060   2d.h.    0us!: local_clock <-perf_event_update_userpage
     cc1-21060   2dN.. 3803us+: trace_hardirqs_on_thunk <-retint_careful
     cc1-21060   2dN.. 3806us+: trace_hardirqs_on_caller <-retint_careful
     cc1-21060   2dN.. 3812us : <stack trace>
 => trace_hardirqs_on_thunk

but this is with kernel build going on..

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

Reply via email to