Bug 13816 - [dg45id] using irq 18 will cause "irq 16: nobody cared"
Summary: [dg45id] using irq 18 will cause "irq 16: nobody cared"
Status: CLOSED OBSOLETE
Alias: None
Product: Platform Specific/Hardware
Classification: Unclassified
Component: x86-64 (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: platform_x86_64@kernel-bugs.osdl.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-07-23 07:31 UTC by Oleksij Rempel (fishor)
Modified: 2012-06-13 14:13 UTC (History)
2 users (show)

See Also:
Kernel Version: 2.6.30- 2.6.31-rc4
Subsystem:
Regression: No
Bisected commit-id:


Attachments
dmesg (122.65 KB, text/plain)
2009-07-23 07:44 UTC, Oleksij Rempel (fishor)
Details
lsusb (34.37 KB, text/plain)
2009-07-23 07:45 UTC, Oleksij Rempel (fishor)
Details
lspci (28.64 KB, text/plain)
2009-07-23 07:47 UTC, Oleksij Rempel (fishor)
Details

Description Oleksij Rempel (fishor) 2009-07-23 07:31:33 UTC
If use any usb connector located on irq 18 for usb soundcard it will cause "irq 16: nobody cared", so every thing connected (usb mouse, keyboard ) to irq 16 will be broken. If i connect devices with less traffic (like mouse or keyboard) to irq 18, and usb soundcard to irq 16 or 21 ... every thing will be fine. irqpoll do not do any difference.

            / irq16|uhci-3 (mouse, keyboard)
irq18|ehci-1- irq21|uhci-4 (sound work fine normal)
            \ irq18|uhci-5 (sound will brake uhci-3)

            / irq23|uhci-6 (not used)
irq23|ehci-2- irq19|uhci-7 (not used)
            \ irq18|uhci-8 (not used)


=========================================================================
[  315.056793] irq 16: nobody cared (try booting with the "irqpoll" option)
[  315.056799] Pid: 0, comm: swapper Not tainted 2.6.31-rc3-00216-gea11951-dirty #98
[  315.056802] Call Trace:
[  315.056804]  <IRQ>  [<ffffffff8109d666>] __report_bad_irq+0x26/0xa0
[  315.056814]  [<ffffffff8109d86c>] note_interrupt+0x18c/0x1d0
[  315.056819]  [<ffffffff8106a373>] ? sched_clock_tick+0x73/0xb0
[  315.056823]  [<ffffffff8109deb5>] handle_fasteoi_irq+0xb5/0xe0
[  315.056827]  [<ffffffff8100dffd>] handle_irq+0x1d/0x30
[  315.056830]  [<ffffffff8100d527>] do_IRQ+0x67/0xe0
[  315.056834]  [<ffffffff8100c013>] ret_from_intr+0x0/0xa
[  315.056837]  <EOI>  [<ffffffff812822e1>] ? acpi_idle_enter_bm+0x256/0x288
[  315.056844]  [<ffffffff812822de>] ? acpi_idle_enter_bm+0x253/0x288
[  315.056849]  [<ffffffff813a480b>] ? cpuidle_idle_call+0x9b/0xf0
[  315.056853]  [<ffffffff8100a59c>] ? cpu_idle+0xac/0x100
[  315.056858]  [<ffffffff81496825>] ? rest_init+0x65/0x70
[  315.056862]  [<ffffffff8172ed35>] ? start_kernel+0x3ba/0x3c5
[  315.056866]  [<ffffffff8172e315>] ? x86_64_start_reservations+0x125/0x129
[  315.056870]  [<ffffffff8172e3fd>] ? x86_64_start_kernel+0xe4/0xeb
[  315.056872] handlers:
[  315.056874] [<ffffffff8134bdb0>] (usb_hcd_irq+0x0/0x70)
[  315.056878] Disabling IRQ #16
==================================================================


cat /proc/interrupts 
           CPU0       CPU1       
  0:     193087     197372   IO-APIC-edge      timer
  1:          1          1   IO-APIC-edge      i8042
  8:          1          0   IO-APIC-edge      rtc0
  9:          0          0   IO-APIC-fasteoi   acpi
 12:          2          2   IO-APIC-edge      i8042
 16:     104204      95797   IO-APIC-fasteoi   uhci_hcd:usb1
 18:     183175     186261   IO-APIC-fasteoi   uhci_hcd:usb3, uhci_hcd:usb6, ehci_hcd:usb7
 19:          0          0   IO-APIC-fasteoi   ata_piix, uhci_hcd:usb5
 21:      15978      18213   IO-APIC-fasteoi   uhci_hcd:usb2
 23:          0          0   IO-APIC-fasteoi   uhci_hcd:usb4, ehci_hcd:usb8
 24:      16592      16908   PCI-MSI-edge      i915
 25:      46695      46109   PCI-MSI-edge      ahci
 26:       4024       4084   PCI-MSI-edge      eth0
 27:      47331      46566   PCI-MSI-edge      HDA Intel
NMI:          0          0   Non-maskable interrupts
LOC:     255352     264704   Local timer interrupts
SPU:          0          0   Spurious interrupts
CNT:          0          0   Performance counter interrupts
PND:          0          0   Performance pending work
RES:     115360     106519   Rescheduling interrupts
CAL:         88        175   Function call interrupts
TLB:       1571       1806   TLB shootdowns
TRM:          0          0   Thermal event interrupts
THR:          0          0   Threshold APIC interrupts
MCE:          0          0   Machine check exceptions
MCP:          9          9   Machine check polls
ERR:          0
MIS:          0
Comment 1 Oleksij Rempel (fishor) 2009-07-23 07:44:04 UTC
Created attachment 22465 [details]
dmesg
Comment 2 Oleksij Rempel (fishor) 2009-07-23 07:45:37 UTC
Created attachment 22466 [details]
lsusb
Comment 3 Oleksij Rempel (fishor) 2009-07-23 07:47:04 UTC
Created attachment 22467 [details]
lspci
Comment 4 Oleksij Rempel (fishor) 2009-07-23 08:16:56 UTC
I did smole script to test haw interrupts are used:

$for i in $(seq 1 1000); do cat /proc/interrupts >> test; sleep 10s; done
$grep usb[3,4,5] test

there is no connections on usb3. on usb4 are keyboard an mouse. on usb5 is the soundcard.

======================================================================
-------after boot. there is too match interrupts on 16, 
-------there is nothing connected.
 16:       4276       4520   IO-APIC-fasteoi   uhci_hcd:usb3
 18:       2732       2598   IO-APIC-fasteoi   ehci_hcd:usb1, uhci_hcd:usb5, uhci_hcd:usb8
 21:        856        816   IO-APIC-fasteoi   uhci_hcd:usb4

-------here i begin to play to usb sound card on usb5.
 16:      12162      10987   IO-APIC-fasteoi   uhci_hcd:usb3
 18:       8070       7134   IO-APIC-fasteoi   ehci_hcd:usb1, uhci_hcd:usb5, uhci_hcd:usb8
 21:        887        875   IO-APIC-fasteoi   uhci_hcd:usb4

 16:      20097      17784   IO-APIC-fasteoi   uhci_hcd:usb3
 18:      13539      11674   IO-APIC-fasteoi   ehci_hcd:usb1, uhci_hcd:usb5, uhci_hcd:usb8
 21:       1003        958   IO-APIC-fasteoi   uhci_hcd:usb4

------- count of interrupts on irq 16 is almost double of irq18
 16:      28083      24881   IO-APIC-fasteoi   uhci_hcd:usb3
 18:      19091      16130   IO-APIC-fasteoi   ehci_hcd:usb1, uhci_hcd:usb5, uhci_hcd:usb8
 21:       1005        968   IO-APIC-fasteoi   uhci_hcd:usb4

......
......

 16:      94758      81082   IO-APIC-fasteoi   uhci_hcd:usb3
 18:      61430      53863   IO-APIC-fasteoi   ehci_hcd:usb1, uhci_hcd:usb5, uhci_hcd:usb8
 21:       1389       1539   IO-APIC-fasteoi   uhci_hcd:usb4

 16:     103141      87919   IO-APIC-fasteoi   uhci_hcd:usb3
 18:      66678      58625   IO-APIC-fasteoi   ehci_hcd:usb1, uhci_hcd:usb5, uhci_hcd:usb8
 21:       1389       1539   IO-APIC-fasteoi   uhci_hcd:usb4

------- irq 16: nobody cared, Disabling IRQ #16.
 16:     107840      92161   IO-APIC-fasteoi   uhci_hcd:usb3
 18:      71854      63458   IO-APIC-fasteoi   ehci_hcd:usb1, uhci_hcd:usb5, uhci_hcd:usb8
 21:       1389       1539   IO-APIC-fasteoi   uhci_hcd:usb4

 16:     107840      92161   IO-APIC-fasteoi   uhci_hcd:usb3
 18:      76498      68823   IO-APIC-fasteoi   ehci_hcd:usb1, uhci_hcd:usb5, uhci_hcd:usb8
 21:       1389       1539   IO-APIC-fasteoi   uhci_hcd:usb4
Comment 5 Oleksij Rempel (fishor) 2009-07-24 19:07:05 UTC
One day more and i lerned some 1/8 byte more. This is not about sound card low and hi speed usb devices. Normally i attach hi speed device for example to uhci_hcd:usb3 it will route connection to ehci_hcd:usb1 and all interrupts will got to IRQ 18 (on this pc)..  if i attach low speed device  to uhci_hcd:usb3 it no need to route some where, so it will use IRQ 16...
i hope i understand it correctly.

the bug is: if i attach low speed device to uhci_hcd:usb5 it will sort of broadcast connection to uhci_hcd:usb5 and uhci_hcd:usb3. And use both IRQs, 16 and 18.

I can reproduce it with any low speed device attached on "ehci_hcd:usb1, uhci_hcd:usb5"

Note You need to log in before you can comment on or make changes to this bug.