Pagina 1 di 1

Kernel 2.6.34: strano errore (che non capisco)

Inviato: lun 17 mag 2010, 21:02
da robbybby
Ho appena finito di compilare il 2.6.34, usando il solito .config, aggiornato con il solitissimo make oldconfig.
Tutto bene, il sistema parte, però, durante il boot, ho questo errore, con tanto di trace:

Codice: Seleziona tutto

ACPI: Power Button [PWRF]
HDA Intel 0000:80:01.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
hda_intel: msi for device 1849:0888 set to 0
------------[ cut here ]------------
WARNING: at drivers/pci/pci.c:105 pci_ioremap_bar+0x52/0x60()
Hardware name: ALiveSATA2-GLAN
Modules linked in: snd_hda_intel(+) snd_hda_codec i2c_viapro button snd_usb_audio(+) snd_pcm snd_page_alloc snd_hwdep snd_usb_lib snd_rawmidi evdev
Pid: 1412, comm: modprobe Not tainted 2.6.34 #1
Call Trace:
 [<c1171c32>] ? pci_ioremap_bar+0x52/0x60
 [<c1171c32>] ? pci_ioremap_bar+0x52/0x60
 [<c102d17f>] ? warn_slowpath_common+0x7f/0xb0
 [<c1171c32>] ? pci_ioremap_bar+0x52/0x60
 [<c102d1c3>] ? warn_slowpath_null+0x13/0x20
 [<c1171c32>] ? pci_ioremap_bar+0x52/0x60
 [<f82ed200>] ? azx_probe+0x240/0xaea [snd_hda_intel]
 [<c10d86c1>] ? sysfs_find_dirent+0x21/0x30
 [<c10d8f53>] ? sysfs_addrm_finish+0x13/0xb0
 [<c10d89d0>] ? sysfs_new_dirent+0x50/0xf0
 [<c10d9680>] ? sysfs_do_create_link+0xa0/0x110
 [<c11727fb>] ? local_pci_probe+0xb/0x10
 [<c1172a00>] ? pci_device_probe+0x60/0x80
 [<c11dcee1>] ? driver_probe_device+0x71/0x150
 [<c1172870>] ? pci_match_device+0x10/0xa0
 [<c11dd130>] ? __driver_attach+0x0/0x80
 [<c11dd1a2>] ? __driver_attach+0x72/0x80
 [<c11dc3f2>] ? bus_for_each_dev+0x42/0x60
 [<c1172830>] ? pci_device_shutdown+0x0/0x30
 [<c11dcd86>] ? driver_attach+0x16/0x20
 [<c11dd130>] ? __driver_attach+0x0/0x80
 [<c11dcba5>] ? bus_add_driver+0x185/0x230
 [<c1172830>] ? pci_device_shutdown+0x0/0x30
 [<c1172940>] ? pci_device_remove+0x0/0x40
 [<c11dd358>] ? driver_register+0x58/0x120
 [<c1172c4d>] ? __pci_register_driver+0x3d/0xa0
 [<f82f2000>] ? alsa_card_azx_init+0x0/0x14 [snd_hda_intel]
 [<c100103e>] ? do_one_initcall+0x2e/0x190
 [<c1054ebe>] ? sys_init_module+0xae/0x210
 [<c1091761>] ? sys_read+0x41/0x70
 [<c1380b1d>] ? syscall_call+0x7/0xb
---[ end trace 93b8272637c2468d ]---
hda-intel: ioremap error
HDA Intel 0000:80:01.0: PCI INT A disabled
2:3:1: cannot set freq 16000 to ep 0x86
Ho quasi tutto statico, tranne la scheda audio (per poter passare alcuni parametri indispensabili) epoco altro.
L'errore sembrerebbe dovuto, appunto, a un modulo audio: snd_hda_intel.
Ho letto bene?
Ma cosa succede?
Sarebbe da inviare l'errore, con tanto di trace, agli sviluppatori?
Help me!

PS: sono tornato al kernel 2.6.33.4.

Re: Kernel 2.6.34: strano errore (che non capisco)

Inviato: lun 17 mag 2010, 21:28
da phobos3576
Già dal 2.6.33, abilitando MSI ( http://it.wikipedia.org/wiki/Message_Si ... Interrupts ) si permette la gestione di alcune periferiche attraverso appunto i Message Signaled Interrupts; anche nel mio caso, la scheda audio HDA nVidia viene gestita in quel modo (sono ancora sul 2.6.33).

Controlla con cat /proc/interrupts se è tutto a posto; dovresti trovare qualcosa del genere:

Codice: Seleziona tutto

XX:       ......     ......   PCI-MSI-edge      hda_intel
Se col 2.6.33 funzionava tutto, mentre con il 2.6.34 si presenta questo problema, potrebbero aver introdotto qualche novità su MSI; al limite, potrebbe anche trattarsi effettivamente di un bug del nuovo kernel.

Anche sul forum nVidia Linux hanno postato un problema simile al tuo:

http://www.nvnews.net/vbulletin/showthread.php?t=151032

Re: Kernel 2.6.34: strano errore (che non capisco)

Inviato: lun 17 mag 2010, 22:13
da robbybby
MSI è disabilitato:

Codice: Seleziona tutto

pci 0000:00:00.0: MSI quirk detected; MSI disabled
Ho provato anche a disabilitarlo nel lilo.conf, con

Codice: Seleziona tutto

pci=nomsi
ma non cambia niente.
Col kernel 2.6.33.4, in /proc/interrupts ho, infatti:

Codice: Seleziona tutto

xx    yy      zz   IO-APIC-fasteoi   hda_intel
In effetti è strano il messaggio

Codice: Seleziona tutto

hda_intel: msi for device 1849:0888 set to 0
dato che MSI è disabilitato.

Comunque, col 2.6.34, non riesce a rimappare hda_intel, e non lo avvia: infatti non mi compare in /proc/interrupts.
Proverò magari a ricompilare senza inserire proprio il supporto per MSI.

Re: Kernel 2.6.34: strano errore (che non capisco)

Inviato: lun 17 mag 2010, 22:27
da phobos3576
robbybby ha scritto:Proverò magari a ricompilare senza inserire proprio il supporto per MSI.
Il problema potrebbe essere legato proprio al fatto che hai disabilitato MSI, mentre per la scheda audio hai chiesto la gestione via MSI.

In ogni caso, tieni presente che l'uso di MSI è molto vantaggioso in quanto è piuttosto efficiente e rende disponibili molte più IRQ hardware per le altre periferiche (che non supportano MSI).

Re: Kernel 2.6.34: strano errore (che non capisco)

Inviato: lun 17 mag 2010, 22:41
da robbybby
Purtroppo la mia motherboard ha un problema, e il kernel non supporta MSI su di essa. Infatti, se provo ad abilitarlo, ottengo:

Codice: Seleziona tutto

pci 0000:00:00.0: MSI quirk detected; MSI disabled
e gli interrupt sono tutti senza MSI.
Ho visto che sembra che la scheda audio tenti di abilitare MSI, ma MSI non c'è. Ottengo lo stesso identico messaggio anche se compilo il kernel senza MSI.
Come faccio a dire alla scheda audio di caricarsi senza MSI? E poi, se MSI non c'è proprio, nel kernel, perché ottengo comunque

Codice: Seleziona tutto

hda_intel: msi for device 1849:0888 set to 0
??
Boh!

Re: Kernel 2.6.34: strano errore (che non capisco)

Inviato: lun 17 mag 2010, 23:01
da robbybby
Ho disabilitato esplicitamente l'MSI per la scheda video. Non mi compare più il messaggio

Codice: Seleziona tutto

hda_intel: msi for device 1849:0888 set to 0
ma l'errore di remapping c'è ancora, e la scheda audio non funziona.

Re: Kernel 2.6.34: strano errore (che non capisco)

Inviato: lun 17 mag 2010, 23:25
da phobos3576
Sino al 2.6.32, anche abilitando MSI, la scheda audio veniva gestita con IO-APIC; dopo il passaggio al 2.6.33 ho notato il cambiamento che evidentemente potrebbe essere legato al nuovo alsa-driver 1.0.21.
Magari è presente qualche opzione del kernel che permette di abilitare/disabilitare MSI esplicitamente per la scheda audio.

Comunque, dopo mezzanotte aggiorno anche io il kernel così vedo cosa succede; io però in genere compilo quasi tutti i driver come moduli.

Re: Kernel 2.6.34: strano errore (che non capisco)

Inviato: mar 18 mag 2010, 2:51
da phobos3576
Ho appena aggiornato al 2.6.34 e sembra tutto a posto.

Rispetto al 2.6.33 la novità è che la scheda audio HDA Intel è nuovamente gestita via IO-APIC, anziché via MSI; infatti, in /var/log/dmesg trovo il messaggio:

Codice: Seleziona tutto

hda_intel: Disable MSI for Nvidia chipset
(il chipset della motherboard in effetti è nVidia)

http://kerneltrap.org/mailarchive/git-c ... 3/19/30487

Codice: Seleziona tutto

diff --git a/sound/pci/hda/hda_intel.c  b/sound/pci/hda/hda_intel.c
index 9268152..027d3f4 100644 (file)
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -2378,6 +2378,13 @@ static void __devinit check_msi(struct azx *chip)
                       "hda_intel: msi for device %04x:%04x set to %d\n",
                       q->subvendor, q->subdevice, q->value);
                chip->msi = q->value;
+               return;
+       }
+
+       /* NVidia chipsets seem to cause troubles with MSI */
+       if (chip->driver_type == AZX_DRIVER_NVIDIA) {
+               printk(KERN_INFO "hda_intel: Disable MSI for Nvidia chipset\n");
+               chip->msi = 0;
        }
 }