web-dev-qa-db-fra.com

Mauvaises erreurs DMA / do_IRQ lors de la suspension / reprise, avec blocage occasionnel

Chaque fois que je suspends ou reprends mon ordinateur portable (Dell Latitude E6520, acheté cette année), je reçois 2 messages du formulaire affiché sur la console juste avant la mise hors tension/démarrage:

[  407.107610] ehci_hcd 0000:00:1d.0: dma_pool_free buffer-128, f6f18000/36f18000 (bad dma)

À l'occasion, je reçois un message de la forme:

[ 3753.979066] do_IRQ: 0.177 No irq handler for vector (irq -1)

À l'occasion, ma machine se bloque avec le bouton de verrouillage majuscule clignotant lors de la suspension, après quoi je dois procéder à un arrêt brutal. Cela n'est jamais arrivé avant que les messages ne commencent à apparaître (il y a quelque temps), et je pense que cela ne se produit jamais sans qu'un message do_IRQ n'apparaisse (bien que je ne sois pas sûr de cela). [Il n'y a rien dans le manuel du propriétaire sur un bouton de verrouillage majuscule clignotant; apparemment, le noyau peut être pris de panique si le verrou de défilement clignote également, mais l'ordinateur portable ne possède pas de voyant de verrouillage de défilement et il n'y a pas de message sur la console disant "panique du noyau".]

Ces messages DMA/IRQ incorrects sont-ils sérieux, et que puis-je faire pour les étudier/résoudre les problèmes et le gel?

Edit: J'ai également reçu plusieurs fois les messages d'erreur suivants:

[246943.023908] JBD: I/O error detected when updating journal superblock for sdb1.
[246943.023958] Buffer I/O error on device sdb1, logical block 0
[246943.023996] EXT3-fs (sdb1): I/O error while writing superblock

Edit: Sortie de dmesg à http://Pastebin.com/ra7MTQEj ; contenu de /var/log/kern.log sur http://Pastebin.com/i6jf0Md9

Edit: la sortie de certaines instructions smartctl (-a, -x, --log = erreur, --log = xerror) est disponible à l'adresse http://paste.ubuntu.com/1088488/ .

Edit (31/8/2012): Sortie de dmesg|grep -i ehci disponible sur http://paste.ubuntu.com/1177246/ .

Edit: (3/9/2012): La sortie de lshw est à http://paste.ubuntu.com/1183032

5
Steve Kroon

1. "Bad DMA"

Commençons par les erreurs "bad dma", car ce sont les seules erreurs cohérentes reflétées dans vos journaux.

  • Ceux-ci, ainsi que tous les problèmes de suspension/reprise, sont causés par votre modem 3G interne USB, qui provient de l'adresse MAC d'un Ericsson F3507g.
    • Oui, tu l'as bien lu. Tous les périphériques USB ne doivent pas nécessairement être externes ou connectés à l'un des ports USB visibles. Les ordinateurs portables modernes utiliseront de nombreux périphériques internes, tels que des cartes sans fil/3G, Bluetooth, des webcams, etc. à partir d'un "hub" USB interne.

Remarquez cette séquence témoin, qui se répète chaque fois que des erreurs "bad dma" se produisent:

 [171783.085166] usb 2-1.6: Déconnexion USB, numéro de périphérique 10 
 [171783.086623] ehci_hcd 0000: 00:1d.0: dma_pool_free buffer-128, eafaa000/2afaa000 (mauvais dma) 
 [171783.087046] cdc_ncm 2-1.6: 1.6: usb0: annuler l'inscription 'cdc_ncm' usb-0000: 00:1d.0-1.6, CDC NCM 
 [171783.092382] done. 
 [171783.129959] ehci_hcd 0000: 00: 1d.0: dma_pool_free buffer-128, eb1aa000/2b1aa000 (mauvais dma) 
  • Le module cdc_ncm est impliqué; il s’agit d’un interface USB de bas niveau avec des modems cellulaires haut débit
  • Ce bug indique que les cartes WWAN F3507g ont déjà eu des problèmes similaires avec Ubuntu/Linux et qu’une mise à jour du noyau l’a corrigé.
    • L'erreur ne devrait affecter que les fonctions de suspension/reprise/gel et NE PAS affecter le fonctionnement normal de la carte 3G.
    • Mais je vous recommanderais d’essayer l’un des noyaux de la grappe principale (ou le noyau Quantal 3.5) pour voir s’il fait une différence.
    • L’autre alternative extrême consiste bien entendu à désactiver votre carte 3G dans le BIOS ou, si vous l’utilisez activement, à la remplacer par une autre marque ou un autre modèle.

2. "do_IRQ" et "sdb1"

Il est plus difficile de déboguer ces avertissements isolés sans contexte (ce qui peut être la clé, comme indiqué ci-dessus). Nous devrons donc simplement faire une estimation jusqu'à ce que vous puissiez fournir un kern.log contenant l'une ou l'autre de ces erreurs.

  • "do_IRQ" semble provenir le plus souvent de problèmes de bus PCI-Express, y compris de cartes graphiques, et VIA chipsets sont souvent impliqués.
    • Ce message peut sinon être ignoré en toute sécurité.
  • Étant donné que vos journaux SMART semblent corrects, les erreurs "sdb1" proviennent probablement d’autres problèmes de communication USB avec le lecteur externe.

    • Si vous trouvez d'autres erreurs USB autour de celles-ci, je dirais que c'est une incompatibilité USB occasionnelle et je ne vous inquiétez pas; mais si elles se produisent seules, cela peut indiquer un problème avec le lecteur. Un journal plus complet aiderait :)
  • Encore une fois, je vous conseillerais d'essayer l'un des noyaux Quantal 3.5 et des visualisations si les choses changent, en particulier pour le "do_IRQ".

3. Essayer le noyau Quantal série 3.5 (ou une version principale)

  • Une fois Ubuntu 12.10 publié, son noyau sera rendu disponible pour 12.04 en tant que "backport" (il en va de même pour 13.04 et 13.10).
  • À l’heure actuelle, vous pouvez obtenir les noyaux "bêta" auprès du PPA de l’équipe Ubuntu-X
  • MAIS Ce PPA contient également un certain nombre de paquets supplémentaires que vous n'avez pas besoin de mettre à jour.
  • J'ai donc mis à disposition le noyau rétroporté dans n autre PPA
  • À installer:

     Sudo apt-add-repository ppa: auanswers/lts-backported-kernels-prerelease 
     Sudo apt-get update 
     Sudo apt-get inst tous les linux-generic-lts-quantal 
    
  • Redémarrez et vous devriez démarrer dans le nouveau noyau (vérifiez avec uname -a). Les cartes graphiques Nvidia/AMD et les cartes sans fil Broadcom peuvent poser problème. Vous pouvez toujours sélectionner votre ancien noyau de la série 3.2 en maintenant enfoncée la touche Maj au démarrage jusqu'à ce que le menu Grub apparaisse, puis en accédant à la section "Versions Linux précédentes".

  • Pour les noyaux encore plus saignants, vous pouvez essayer l’une des versions principales. S'il vous plaît voir cette question et réponse pour plus d'informations:

Devrais-je passer aux noyaux "principaux"?

4
ish

Les erreurs que vous avez ajoutées dans Edit semblent faire référence à un secteur de disque cassé.

Avez-vous essayé de lancer fsck ou badblocks?

Je vous suggère de tout exécuter à partir d'un environnement Live CD comme suit

  1. Démarrez le CD live Ubuntu (ou toute autre distribution)
  2. Rechercher des disques et des partitions avec fdisk

    Sudo fdisk -l
    
  3. Une fois que vous avez identifié l'étiquette de disque correcte (par exemple, /dev/sda1), essayez d'exécuter ces deux commandes. Le paramètre -c de la commande fsck tente d'identifier et d'isoler les blocs défectueux.

    Sudo e2fsck -cv /dev/sda1
    Sudo badblocks -sv /dev/sda
    
2
Andrea Olivato

Pour le problème "no irq for vector", essayez d'ajouter "pci = nomsi" aux options de démarrage du noyau.

1
Colin Ian King