Autore Topic: Errore kernel:Disabling IRQ 16 con kernel xen e controller usb nvidia  (Letto 6467 volte)

Offline jerg

  • Full Member
  • ***
  • Post: 99
    • Mostra profilo
    • E-mail
Ciao a tutti, oggi si e' presentato questo errore
Codice: [Seleziona]
kernel:Disabling IRQ #16in uno dei server centos 5.7 2.6.18-238.19.1.el5xen, scavando ho trovato cose'

premetto che il problema e' hardware e nel mio caso riguarda il controller usb NVIDIA della mia scheda madre
Codice: [Seleziona]
USB Controller: nVidia Corporation MCP61 USB Controller (rev a2) (prog-if 20 [EHCI])
nel mio caso fortunatamente non e' una periferica fondamentale e quindi il kernel non e' andato in crash come ho letto in alcuni post

lo stesso errore puo' essere generato da altri hardware sullo stesso canale(IRQ 16)

questo succede se viene riportata un'interruzione e nessuno dei driver registrati dichiara di averla gestita ci troviamo potenzialmente in situazione di errore; se tale evento avviene frequentemente il sistema disabilita l'interruzione impazzita. Il codice deputato a questi controlli è in arch/i386/kernel/irq.c, questo vale per tutti gli IRQ, da qui l'errore Disabling IRQ16.

con lspci ho controllato le periferiche
Codice: [Seleziona]
lspci -vv
---------------------------------------------------------------------------------------
00:02.1 USB Controller: nVidia Corporation MCP61 USB Controller (rev a2) (prog-if 20 [EHCI])
---------------------------------------------------------------------------------------
        Subsystem: ASRock Incorporation 939NF6G-VSTA Board
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0 (750ns min, 250ns max)
---------------------------------------------------------------------------------------
        Interrupt: pin B routed to IRQ 16
---------------------------------------------------------------------------------------
        Region 0: Memory at dfefec00 (32-bit, non-prefetchable) [size=256]
        Capabilities: [44] Debug port: BAR=1 offset=0098
        Capabilities: [80] Power Management version 2
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
        Kernel driver in use: ehci_hcd
        Kernel modules: ehci-hcd

questo e' /var/log/messages
Codice: [Seleziona]
Jul 24 06:07:24 vnode1 kernel: irq 16: nobody cared (try booting with the "irqpoll" option)
Jul 24 06:07:24 vnode1 kernel:
Jul 24 06:07:24 vnode1 kernel: Call Trace:
Jul 24 06:07:24 vnode1 kernel: <IRQ>  [<ffffffff802b5c3c>] __report_bad_irq+0x30/0x7d
Jul 24 06:07:24 vnode1 kernel: [<ffffffff802b5e73>] note_interrupt+0x1ea/0x22b
Jul 24 06:07:24 vnode1 kernel: [<ffffffff802b537b>] __do_IRQ+0xbd/0x103
Jul 24 06:07:24 vnode1 kernel: [<ffffffff80207112>] kmem_cache_free+0x80/0xd3
Jul 24 06:07:24 vnode1 kernel: [<ffffffff8026e6fa>] do_IRQ+0xc6/0xcf
Jul 24 06:07:24 vnode1 kernel: [<ffffffff803b7979>] evtchn_do_upcall+0x147/0x201
Jul 24 06:07:24 vnode1 kernel: [<ffffffff802608d6>] do_hypervisor_callback+0x1e/0x2c
Jul 24 06:07:24 vnode1 kernel: <EOI>  [<ffffffff802063aa>] hypercall_page+0x3aa/0x1000
Jul 24 06:07:24 vnode1 kernel: [<ffffffff802063aa>] hypercall_page+0x3aa/0x1000
Jul 24 06:07:24 vnode1 kernel: [<ffffffff8029be5a>] rcu_pending+0x45/0x50
Jul 24 06:07:24 vnode1 kernel: [<ffffffff8026ff2a>] raw_safe_halt+0x84/0xa8
Jul 24 06:07:24 vnode1 kernel: [<ffffffff8026d4e1>] xen_idle+0x38/0x4a
Jul 24 06:07:24 vnode1 kernel: [<ffffffff8024b144>] cpu_idle+0x97/0xba
Jul 24 06:07:24 vnode1 kernel: [<ffffffff806a6b0f>] start_kernel+0x21f/0x224
Jul 24 06:07:24 vnode1 kernel: [<ffffffff806a61e5>] _sinittext+0x1e5/0x1eb
Jul 24 06:07:24 vnode1 kernel:
Jul 24 06:07:24 vnode1 kernel: handlers:
Jul 24 06:07:24 vnode1 kernel: [<ffffffff803ebac6>] (usb_hcd_irq+0x0/0x55)
---------------------------------------------------------------------------------------
Jul 24 06:07:24 vnode1 kernel: Disabling IRQ #16
---------------------------------------------------------------------------------------

e un occhiata a /proc/interrupts
Codice: [Seleziona]
cat /proc/interrupts
           CPU0              CPU1
  1:          2          0        Phys-irq  i8042
  7:          0          0        Phys-irq  parport0
  8:          0          0        Phys-irq  rtc
  9:          0          0        Phys-irq  acpi
 12:          4          0        Phys-irq  i8042
---------------------------------------------------------------------------------------
16:       2463          0        Phys-irq  ehci_hcd:usb1
---------------------------------------------------------------------------------------
 17:        173          0        Phys-irq  ohci_hcd:usb2, hda_intel
 18:       3375          0        Phys-irq  sata_nv
 19:      12717          0        Phys-irq  sata_nv
 20:         14          0        Phys-irq  peth1
252:       1237          0        Phys-irq  peth0
256:     197865          0     Dynamic-irq  timer0
257:       4441          0     Dynamic-irq  resched0
258:         56          0     Dynamic-irq  callfunc0
259:          0       3975     Dynamic-irq  resched1
260:          0        114     Dynamic-irq  callfunc1
261:          0      13999     Dynamic-irq  timer1
262:       1828          0     Dynamic-irq  xenbus
263:          0          0     Dynamic-irq  console
264:       1924          0     Dynamic-irq  blkif-backend
265:       1484          0     Dynamic-irq  blkif-backend
266:         15          0     Dynamic-irq  vif1.0
267:         64          0     Dynamic-irq  vif2.0
268:          2          0     Dynamic-irq  vif3.0
NMI:          0          0
LOC:          0          0
ERR:          0
MIS:          0

ho risolto disabilitando quell'IRQ per la porta usb specifica nel bios

oppure inserendo il nome del modulo del kernel associato alla periferica nel file /etc/modprobe.d/blacklist, nel mio caso ehci_hcd
Codice: [Seleziona]
echo "blacklist ehci_hcd" >> /etc/modprobe.d/blacklist
spengo tutte le domU e riavvio il sistema,quando pronto controllare /val/log/messages se ricompare l'errore visualizzato all'inizio

saluti a tutti
« Ultima modifica: 24 Luglio 2012, 07:33:22 da jerg »