[haiku-bugs] Re: [Haiku] #12060: Turning off/on screen causes severe USB stall problems

  • From: "mmlr" <trac@xxxxxxxxxxxx>
  • Date: Tue, 12 May 2015 09:44:25 -0000

#12060: Turning off/on screen causes severe USB stall problems
---------------------------+----------------------------
Reporter: jessicah | Owner: mmlr
Type: bug | Status: new
Priority: normal | Milestone: Unscheduled
Component: Drivers/USB | Version: R1/Development
Resolution: | Keywords:
Blocked By: | Blocking:
Has a Patch: 0 | Platform: All
---------------------------+----------------------------

Comment (by mmlr):

If it's not even connected to the USB then the it can't really be a USB
issue. The USB driver is most likely a victim of an interrupt sharing
issue. Looking at your log there's a lot of contention on interrupt line
0x0b (11):

{{{
device 0162: Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller
interrupt_line 0b, interrupt_pin 01, min_grant 00, max_latency 00

device 1e31: 7 Series/C210 Series Chipset Family USB xHCI Host Controller
interrupt_line 0b, interrupt_pin 01, min_grant 00, max_latency 00

device 1e3a: 7 Series/C210 Series Chipset Family MEI Controller #1
interrupt_line 0b, interrupt_pin 01, min_grant 00, max_latency 00

device 1e2d: 7 Series/C210 Series Chipset Family USB Enhanced Host
Controller #2
interrupt_line 0b, interrupt_pin 01, min_grant 00, max_latency 00

device 1e10: 7 Series/C210 Series Chipset Family PCI Express Root Port 1
interrupt_line 0b, interrupt_pin 01

device 1e22: 7 Series/C210 Series Chipset Family SMBus Controller
interrupt_line 0b, interrupt_pin 03, min_grant 00, max_latency 00
}}}

Unfortunately the only 3 drivers using MSIs (ahci, ipro1000 and hda)
actually have devices on unshared interrupts anyway. This means they don't
alleviate the situation at all. The EHCI controllers do not advertise MSI
capabilities, so MSIs aren't used for them.

Obviously the vesa driven graphics controller is the prime suspect here.
It does share an interrupt with one of the EHCI controllers which can
easily explain the problem. To verify that, please plug your USB devices
to a port handled by the other EHCI controller (i.e. so that it gets an
address of /dev/bus/usb/1/0/x):

{{{
device 1e26: 7 Series/C210 Series Chipset Family USB Enhanced Host
Controller #1
interrupt_line 04, interrupt_pin 01, min_grant 00, max_latency 00
}}}

This one doesn't share its interrupt and should therefore not be affected,
unless the stall is actually an interrupt storm and hangs the whole
system.

--
Ticket URL: <https://dev.haiku-os.org/ticket/12060#comment:3>
Haiku <https://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: