Page suivante - Page précédente - Table des matières

3. Questions spécifiques à l'architecture x86

3.1 Pourquoi cela ne marche-t-il pas avec ma machine ?

  1. Puis-je utiliser le mode SMP avec un CPU Cyrix/AMD/non-Intel ?

    Réponse courte: non.

    Réponse longue Intel révendique la propriété sur les plan APIC SMP, et tant qu'une compagnie ne prend pas de licence d'Intel pour cela, ils ne peuvent pas l'utiliser. Aucune compagnie ne l'a fait pour l'instant. Cela peut évidement changer dans le futur. A titre anecdotique, Cyrix et AMD adhèrent au standard non-propriétaire OpenPIC SMP mais actuellement il n'existe pas de carte mère l'utilisant.

  2. Pourquoi mon vieux Compaq ne fonctionne-t-il pas ?

    Mettez le en mode compatibilité MP1.1/1.4.

    Vérifiez "Configure Hardware" -> "View / Edit details" -> "Advanced mode" (F7 je pense) pour les options de configuration "APIC mode" et cochez "full Table mode". Il s'agit d'une recommandation officielle de Compaq (Daniel Roesen).

    Adrian Portelli :

    1. Pressez F10 quand le serveur démarre afin d'entrer dans l'utilitaire de configuration système (System Configuration Utility)
    2. Pressez Entrée pour effacer l'écran de démarrage
    3. Pressez immédiatement CTRL+A
    4. Un message apparaîtra vous informant que vous êtes maintenant en "Advanced Mode"
    5. Sélectionnez ensuite "Configure Hardware" -> "View / Edit details"
    6. Vous verrez alors les réglages avancés (mélangés avec les réglages ordinaires)
    7. Descendez jusqu'au "APIC Mode" et sélectionnez alors "Fully Mapped"
    8. Sauvegardez les changements et redémarrez

  3. Pourquoi mon ALR ne fonctionne-t-il pas ?

    De Robert Hyatt: ALR Revolution quad-6 semble à peu près sûre, alors que quelques machines Revolution quad plus vieilles sans processeurs P6 ne semble pas "fiables"...

  4. Pourquoi ma machine SMP est-elle si lente ? ou Pourquoi un processeur montre-t-il une valeur bogomips basse et pas l'autre ?

    De Alan Cox: si un de vos processeurs rapporte une valeur bogomips très basse, son cache n'est pas activé. Votre vendeur vous à probablement fournis un BIOS bogué. Obtenez un patch pour contourner cela ou mieux retournez la à votre vendeur et achetez une carte mère chez un fournisseur compétent.

    Un noyau 2.0 (> 2.0.36) contient un patch MTRR qui devrait résoudre ce problème (sélectionnez l'option "handle buggy SMP BIOSes with bad MTRR setup" dans le menu "General setup").

    Je pense que les BIOS SMP bogués sont pris en charge automatiquement dans les derniers noyaux 2.2.

  5. J'ai entendu dire que des machines IBM avaient des problèmes

    Certaines machines IBM possèdent le bloc BIOS MP1.4 dans l'EBDA. C'est autorisé mais pas supporté en dessous des noyaux 2.2.

    Il y a une vieille machine IBM SMP basée sur des 486SLC. Linux/SMP requiert un support FPU matériel.

  6. Les spécification MP 1.4 présentent-elles un quelconque avantage vis-à-vis des spécifications 1.1 ?

    Non (selon Alan :) ), 1.4 est juste une spécification plus stricte de 1.1.

  7. Pourquoi l'horloge dérive-t-elle si rapidement quand la machine fonctionne en mode SMP ?

    Il s'agit d'un problème connu avec la gestion des IRQ et les blocages noyau longs dans la série 2.0 des noyaux. Pensez à mettre à jour votre système vers un 2.2 plus récent.

    De Jakob Oestergaard: ou pensez à utiliser xntpd. Cela devrait garder votre horloge à l'heure. Je pense avoir entendu qu'activer RTC dans le noyau corrigeait aussi le problème de dérive de l'horloge. Ça a marché pour moi, mais j'ignore si cela est général ou si j'ai juste été chanceux !

    Certaines corrections du noyau dans les derniers 2.2.x devraient résoudre ce problème.

  8. Pourquoi mes processeurs sont-ils numérotés 0 et 2 au lieu de 0 et 1 (ou autre numérotation bizarre) ?

    Le numéro du processeur est fixé par le fabricant de la carte mère et ne veut absolument rien dire. Ignorez le.

  9. Mon système quadruple Xeon plante dès qu'il a décompressé le noyau

    (Doug Ledford) Essayez de recompiler LILO avec le support LARGE_EBDA et faites attention à bien toujours utiliser bzImage quand vous compilez le noyau. Cela semble avoir résolu le problème de plantage au démarrage ici sur une carte mère Intel multi-Xeon. Notez cependant que cela semble aussi affecter LILO en ceci que l'option root= ne fonctionne plus. Faites donc bien attention d'avoir appliqué 'rdev' à votre noyau au moment où vous lancerez LILO afin d'être sur que votre noyau charge correctement le système de fichier racine au démarrage.

    (Robert M. Hyatt) Avec 3 processeurs, avez-vous un terminateur dans le 4ème emplacement ?

  10. Durant le démarrage la machine plante en signalant un problème IOAPIC

    Essayez l'option de démarrage "noapic" (John Aldrich) et/ou "reboot=bios" (Terry Shull).

  11. Mon système se bloque lors de trafic NFS intense

    Essayez le dernier noyau 2.2.x et le patch knfsd. Cela est en cours d'investigation. (Wade Hampton)

  12. Mon système bloque sans message oops

    Si vous utilisez les noyaux 2.2.11 ou 2.2.12, récupérez le dernier noyau. Par exemple 2.2.13 possède de nombreuses corrections SMP. Plusieurs personnes ont rapporté ces noyaux comme instables pour le SMP. Ces mêmes noyaux peuvent avoir des problèmes NFS qui provoqueraient des blocages. Aussi, utilisez une console série pour capturer vos messages oops. (Wade Hampton)

    Si le problème persiste (et que les suggestions sur cette liste n'ont pas aidé davantage), vous devriez alors essayer les derniers noyaux 2.3. Ils ont un code SMP/APIC plus bavard (et plus robuste) et un code de prévention contre les blocages durs qui produit des oops plus significatifs au lieu de planter en silence (Ingo Molnar).

    (Osamu Aoki) Vous DEVEZ aussi désactiver toutes les fonctionnalités du BIOS liées à l'économie d'énergie. Exemple d'une bonne configuration (Dual Celeron 466 Abit BP6) :


     POWER MANAGEMENT SETUP.
     ACPI:              Disabled
     POWER MANAGEMENT:  Disabled
     PM CONTROL by APM: No
    

    Si les fonctions d'économie d'énergie sont activées, des plantages aléatoires peuvent se produire

  13. Déboguer des blocages

    (item par Wade Hampton)

    Un bon moyen de déboguer les blocages consiste à se procurer le patch ikd de Andrea Arcangeli: ftp://ftp.suse.com/pub/people/andrea/kernel-patches

    Il y a plusieurs options de débogage. N'utilisez PAS l'option de blocage logicielle ! Pour des machines SMP récentes, activez l'option kernel debugging et ensuite l'option NMI oopser. Afin de vérifier que le NMI oopser fonctionne, après avoir démarré avec votre nouveau noyau, exécutez un /cat /proc/interrupts et vérifiez que vous obtenez des NMI. Quand la machine se bloque, vous devriez obtenir un oops.

    Vous pouvez aussi essayer l'option %eip. Elle autorise le noyau à écrire sur la console l'adresse %eip à chaque fois qu'une fonction du noyau est appelée. Quand la machine se bloque, écrivez sur un papier la première colonne ordonnée selon la seconde colonne et cherchez ensuite les adresses dans le fichier System.map. Ca ne marche qu'en mode console.

    Notez que l'utilisation d'une console série facilite grandement le débogage des blocages noyau, qu'ils soient SMP ou non !

  14. Messages "APIC error interrupt on CPU#n, should never happen" dans les logs

    Un message comme:


    APIC error interrupt on CPU#0, should never happen.
    ... APIC ESR0: 00000002
    ... APIC ESR1: 00000000
    

    indique la réception d'une erreur de calcul de code d'intégrité. Linux ne peut en être responsable car la partie calcul des messages APIC est complètement matérielle. Il peut s'agir d'un problème matériel marginal. Tant que vous ne percevez pas d'instabilité, ils ne sont pas problématiques. Les messages APIC sont renvoyés jusqu'à ce qu'il soient délivrés (Ingo Molnar).

3.2 Causes possibles de plantages

Dans cette section vous trouverez quelques information sur les causes possibles de plantage sur une machine SMP (merci à Jakob Østergaard pour cette partie). Autant que je sache (David), les problèmes évoqués ici sont spécifiques aux plate-formes Intel.

  • Problèmes de refroidissement

    De Ralf Bächle: (concernant la taille des boîtiers et les ventilateurs) il est important que l'air circule. Bien sûr, ce n'est pas possible quand toutes sortes d'obstacles, tels des câbles, l'en empêchent dans des boîtiers par trop exigus. D'un autre côté, j'ai vu des boîtiers surdimensionnés provoquer de gros problèmes. Il existe des boîtiers au format tour sur le marché qui s'avèrent actuellement pire à rafraîchir que des boîtiers au format bureau. En bref, la meilleure chose à faire est de penser à l'aérodynamique dans le boîtier. Des boîtiers supplémentaires pour les périphériques dégageant de la chaleur sont également utiles.

    Bien sûr vous pouvez toujours aller chez Radio Shack (ou similaire) et acheter un ventilateur. Vous pouvez utiliser lm_sensor pour surveiller la température des processeurs PII et PIII. Cela peut vous aider à déterminer si la chaleur est un problème ou non (Wade Hampton).

  • Mauvaise barrette de mémoire

    N'achetez pas de la RAM bon marché et ne mélangez pas des barrettes différente sur une même carte mère.

    Les cartes mères Tyan sont tout particulièrement connues pour leur susceptibilité sur la vitesse de la RAM (voir le paragraphe ci-dessous sur Tyan pour une solution éventuelle).

    Il y a eu des rapports sur des mémoire RAM PC 100 à 10ns vendues avec des cartes mères dont le processeur avait vraiment besoin de RAM à 8ns (Wade Hampton).

  • Mauvaise combinaison de processeurs de fréquences différentes

    Vérifiez /proc/cpuinfo pour voir si vos processeurs fonctionnent à la même cadence.

  • Si votre système est instable, SURTOUT ne l'overclockez pas !

    D'ailleurs, même s'il est stable, ne le surcadencez pas.

    De Ralf Bächle: le surcadencement pose des problèmes très subtils. J'ai un bel exemple: une de mes vieilles machines surcadencées commet des erreurs de calcul pour quelques pixels d'une fractale de 640 X 400. Le problème est seulement visible quand on les compare en utilisant des outils. Le mieux est donc de ne jamais, never, nuncas, niemals surcadencer.

  • Noyaux 2.0.x et Ethernet rapide (de Robert G. Brown)

    Les noyaux 2.0.x sur des systèmes Ethernet rapide et hautes performances ont des problèmes significatifs (et connus) avec les conditions de course/inter-blocage (race/deadlock) dans la prise en charge des interruptions réseau.

    La solution consiste à obtenir la dernière version des pilotes 100BT en cours de développement à CESDIS Linux Ethernet device drivers site (ceux qui sont au point définissent SMPCHECK).

  • Un bogue dans le chipset 440FX (de Emil Briggs)

    Si votre système utilise le chipset 440FX alors les problèmes de blocage sont peut-être dûs à une erreur (documentée) du chipset. En voici la référence:

    Intel 440FX PCIset 82441FX (PMC) et 82442FX (DBX) Specification Update. pg. 13

    http://www.intel.com/design/pcisets/specupdt/297654.htm

    Le problème peut se résoudre avec un contournement par le BIOS (ou un patch du noyau). David Wragg a écrit un patch qui est inclus dans le patch MTRR de Richard Gooch's. Pour plus d'informations ainsi qu'un descriptif de solution, voyez ici:

    http://nemo.physics.ncsu.edu/~briggs/vfix.html

  • NE PAS lancer emm386.exe avant de démarrer Linux SMP

    De Mark Duguid, Règle implicite #1 avec une carte mère W6LI. ;)

  • Si la machine redémarre/gèle au bout d'un moment, il peut y avoir deux bonne raisons liées à la mémoire et au BIOS (Jakob Østergaard)
    • Si le BIOS est muni de réglages comme "memory hole at 16M" et/ou "OS/2 memory> 64MB", essayez de les désactiver tous les deux. Linux ne réagit pas toujours très bien à ces deux options.
    • Si vous avez plus de 64 MB de mémoire dans votre machine, et que vous spécifiez manuellement le chiffre exact dans la configuration de LILO, vous devriez spécifier 1 MB de moins que ce vous avez réellement dans votre machine. Si vous avez 128 MB, votre ligne dans votre lilo.conf ressemble à: append="mem=127M"
  • Soyez avertis des problèmes concernant les IRQ

    Parfois, certaines cartes ne sont pas reconnues ou peuvent déclencher des conflits d'IRQ. Essayez de mettre les cartes sur des slots différents et si possible de les assigner à des IRQ différentes.

    Contribution de hASCII : enlever la ligne "append="hisax=9,2,3" dans lilo.conf autorisant à utiliser un noyau de la série 2.1.xx avec le support ISDN + Hisax activé. Les noyaux de la série 2.0.xx ne posent pas ce genre de problème.

    Essayez aussi de configurer les option de configuration du BIOS comme "MP 1.4 mode" ou "route PCI interrupts through IOAPIC" ou "OS Type" configuré ni pour DOS ni pour Novell (Ingo Molnar).

  • Utilisation simultanée du lecteur de disquettes de la sortie son

    Si vous bloquez alors que vous essayez d'accéder au lecteur de disquettes (par exemple pendant que du son est joué) vous devriez peut-être éditer le fichier drivers/pci/quirks.c et positionner /int isa_dma_bridge_buggy = 1;. Le problème se manifeste avec mon Dell WS400 dual PII/300, 2.2.x, SMP (Wade Hampton).

3.3 Informations spécifiques aux cartes mères

Notez que des informations plus précises peuvent être trouvées avec la liste des Cartes mère supposées fonctionner sous Linux SMP

Cartes mères avec des problèmes connus

  • Aucune pour l'instant

3.4 Machine SMP Linux à bas prix (machine double Celeron)

(Stéphane Écolivet)

Les machines SMP Linux les moins chères avec des processeurs disponibles de nos jours sont les systèmes double Celeron. Un tel système n'est pas officiellement possible selon Intel. On a intérêt à vérifier qu'il s'agit bien de Celerons de seconde génération, ceux avec 128 Kb de cache L2.

Est-il possible de faire fonctionner une machine double Celeron ?

Réponse officielle d'Intel : non, le Celeron ne peut pas fonctionner en mode SMP.

Réponse pratique : c'est possible, mais cela demande une modification matérielle pour les processeurs Slot 1. La manipulation est décrite par Tomohiro Kawada sur sa page Dual Celeron System. Naturellement, de telles modifications annulent la garantie... Certaines versions du processeur Celeron sont aussi disponibles au format Socket 370. Dans ce cas, l'altération peut-être faite sur l'adaptateur Socket 370 à Slot 1 qui peut même être vendu pré-cablé pour une utilisation SMP (Andy Poling, Hans - Erik Skyttberg, James Beard).

Il existe aussi une carte mère (ABIT BP6) autorisant l'insertion de deux Celerons dans le format Socket 370 (Martijn Kruithof, Ryan McCue), l'ABIT Computer BP6 vérifiée, testée et supportée sous linux avec deux ppga socket 370 (Andre Hedrick).

Comment Linux se comporte-t-il sur les systèmes double Celeron ?

Bien, merci.

Les processeurs Celeron sont réputés pour être facilement surcadençable.Qu'en est-il des systèmes doubles Celeron ?

Cela peut marcher. Néanmoins, surcadencer un tel système n'est pas aussi facile que pour un monoprocesseur. Ce n'est franchement pas une bonne idée pour un système de production. Pour une utilisation personnelle, des systèmes double Celeron 300 A fonctionnant parfaitement à 450 MHz ont été signalés (de nombreuses personnes).

Et un système quadruple Celeron ?

C'est impossible. Les processeurs Celerons possèdent à peu près les mêmes fonctionnalités qu'un Pentium II basique. Si vous voulez plus de deux processeur dans votre système, vous devriez regarder du côté des machines à base de Pentium Pro, Pentium II Xeon ou Pentium III (?).

Pourquoi ne pas mélanger Celeron et Pentium II ?

Un système utilisant un Celeron "ré-autorisé" et un Pentium II à la même cadence peut théoriquement fonctionner.

Alexandre Charbey à fabriqué un tel système:

  • Carte mère Asus P2B-D, proc 1: Celeron 366, proc 2: Pentium II 400@266
  • Les fréquences de bus 66Mhz et 75Mhz furent fonctionnelles
  • Le processeur le plus rapide (dans ce cas le Celeron) doit être placé sur le deuxième slot. Inverser les processeurs (le plus rapide en premier) conduit rapidement à un échec.


Page suivante - Page précédente - Table des matières