このページは大阪弁化フィルタによって翻訳生成されたんですわ。

翻訳前ページへ


Ce HOWTO reprend et enrichit first draft 馗rit par Chris Pirih.

Toutes les informations contenues dans ce HOWTO sont fournies "tel que".

Oui. Les processus et les threads du noyau sont r駱artis entre les processeurs. Ceux de l'espace utilisateur ne le sont pas.

  • Quelles sont les architectures SMP support馥s ?

    De Ralf B臘hle :

    MIPS, m68k et ARM ne g鑽ent pas le SMP; les deux derniers ne le supporteront probablement jamais.

    Ceci 騁ant, je ferai un hack pour MIPS-SMP d鑚 que j'aurais une machine SMP...

  • Alan Cox le confirme : d駸activez APM pour les machines SMP en 2.1.x. En gros le comportement APM est ind馭ini en pr駸ence de syst鑪es SMP et tout peut arriver. Toujours sur plate-forme Intel, activez "MTRR (Memory Type Range Register) support". Certains BIOS sont d馭ectueux et n'activent pas la m駑oire cache du second processeur. Le support MTRR contient le code pour y rem馘ier.

    Vous devez reconstruire votre noyau et vos modules quand vous passez en SMP make bzImage # ou ce que vous voulez # copiez l'image du noyau manuellement puis RELANCER LILO # ou make lilo make modules make modules_install


  • Comment compile-t-on un noyau Linux non-SMP ?

    Vous devez absolument recompiler votre noyau et ses modules pour activer ou d駸activer le mode SMP. N'oubliez pas de faire make modules, make modules_install et de relancer lilo. Voyez les notes plus haut sur les probl鑪es de configuration possibles.

  • Savoir si 軋 marche

     cat /proc/cpuinfo 
    

    Sortie typique (bi-PentiumII):


    processor       : 0
    cpu             : 686
    model           : 3
    vendor_id       : GenuineIntel
    [...]
    bogomips        : 267.06
     
    processor       : 1
    cpu             : 686
    model           : 3
    vendor_id       : GenuineIntel
    [...]
    bogomips        : 267.06
    

  • Statut de la migration du noyau vers un verrouillage fin et le multithreading ?

    Les noyaux 2.3 (futur 2.4) poss鐡ent vraiment des verrous noyaux fins. Dans la s駻ie des noyaux 2.3 l'usage des gros blocages noyau a tout simplement disparu. Tous les sous-syst鑪es majeurs du noyau Linux sont compl鑼ement cod駸 avec des threads : r駸eau, VFS, VM, ES, block/pages de cache, ordonnancement, interruptions, signaux, etc... (Ingo Molnar)

  • Linux SMP supporte-t-il les affinit駸 processeur ?

    PSET - Processor Sets for the Linux kernel:
    Ce projet a pour but d'offrir une version compatible au niveau beaucoup de processus simultan駑ent et que l'utilisation processeur est tr鑚 forte, alors vous 黎es susceptible d'am駘iorer les performances de votre syst鑪e. Les disques dur SCSI peuvent 黎re tr鑚 efficaces en utilisation avec plusieurs processeurs. Ils peuvent g駻er plusieurs commandes simultan駑ent sans immobiliser le processeur (C. Polisher).

  • Obtient-on les m麥es performances avec un biprocesseur 300 MHz qu'avec un processeur 600 MHz ?

    Tout d駱end de l'application, mais g駭駻alement non. Le SMP implique pratiques :

    Character based:

    http://www.cs.inf.ethz.ch/~rauch/procps.html

    Graphique:

    xosview-1.5.1 supporte le SMP, les noyaux sup駻ieurs au 2.1.85 (inclus) et l'entr馥 cpuX dans le fichier /proc/stat.

    Page d'accueil officielle pour xosview : http://lore.ece.utexas.edu/~bgrayson/xosview.html

    Vous ici trouverez une version patch馥 par Kumsup Lee pour les noyaux 2.2.p : http://www-isia.cma.fr/~forissie/smp_kernel_patch/

    N饌nmoins, vous ne pouvez pas contr?er l'ordonnancement de fa輟n pr馗ise avec xosview car ce dernier le perturbe (H. Peter Anvin).

  • Comment autoriser plus d'un processus lors de la compilation du noyau ?

    Dans la s駻ie des 2.0, le r駸ultat de la commande time est faux. La somme utilisateur+syst鑪e est juste *mais* 'l'騁endue' entre le temps utilisateur et le temps syst鑪e est faux.

    Cette section a pour but de signaler ce qui fonctionne et ce qui ne fonctionne pas quand il s'agit de programmer des logiciels avec des threads pour Linux SMP.

    M騁hodes de parall駘isation

    1. threads POSIX (POSIX Threads)
    2. PVM / MPI Message Passing Libraries
    3. fork() -- Processus multiples

    Comme ni fork() ni les processus PVM/MPI ne partagent g駭駻alement la m駑oire, mais communiquent au moyen d'IPC ou d'une API de messagerie, LinuxThreads, une librairie de thread 馗rite par Xavier Leroy est maintenant int馮r馥 avec la glibc2 (aka libc6). Les distributions Linux approche de type threads, on rencontre des probl鑪es d'incompatibilit駸 et de non-adaptation aux thread des librairies, compilateurs et d饕ogueurs. GNU/Linux n'y fait pas exception. Esp駻ons que les sections qui suivent apporteront quelques lumi鑽es sur ce qui est possible et sur ce qui ne l'est pas.

    La librairie C

    Les vieilles librairies ne sont pas s?es au niveau des threads. Il est tr鑚 important que vous utilisiez la GNU libc (glibc), aussi connue sous le nom de libc6. Vous pouvez 騅idemment utiliser des versions

    Il existe de nombreux langages de programmation disponibles pour GNU/Linux et beaucoup d'entre eux utilisent les threads d'une mani鑽e ou d'une autre. Certains langages comme Ada et Java incluent m麥e les threads dans les primitives du langage.

    Cette section, pour l'instant, ne d馗rira que le C et le C++. Si vous avez une exp駻ience de programmation SMP avec d'autre langages, merci de nous en faire part.

    Les compilateurs GNU C et C++, tout comme EGCS C et C++, fonctionnent avec le support thread de la librairie C standard (glibc). Il y a n饌nmoins quelques probl鑪es :

    1. Quand vous compilez en C ou C++, incluez -D_REENTRANT dans la ligne de commande du compilateur. Il est n馗essaire d'activer certaines charge les threads correctement. La plupart des distributions Linux comprennent une version patch馥 de gdb qui g鑽e les threads.

      Il n'est pas n馗essaire de patcher la glibc pour qu'elle fonctionne avec des threads. Si vous n'avez pas besoin de d饕oguer le logiciel m騁hode 駘馮ante de trouver ce qui se passe : lancez le programme depuis la ligne de commande, sans GDB. Faites d駻ailler votre thread. Utilisez top pour obtenir le PID du processus. Lancez GDB tel que Linux Parallel Processing HOWTO

      Beaucoup d'informations utiles se trouvent sur Parallel Processing using Linux

      Voyez aussi Multithreaded programs on linux (j'adore les liens hypertextes, le saviez vous ? ;))

      En ce qui concerne les librairies :

      d'obtenir un accroissement de 5-30% avec certaines suites de test OpenGL). La partie multithread est maintenant incluse dans la distribution Mesa officielle comme une option exp駻imentale. Pour plus d'information, voyez Mesa library

      BLAS

      BLAS et FFTs optimis駸 Pentium pro pour Intel Linux

      Les routines multithread BLAS ne sont pas disponibles pour l'instant, mais une librairie multithread est pr騅ue pour 1998-05-27, voir Blas News pour plus de d騁ails.

      The GIMP

      Emil Briggs, la m麥e personne qui est impliqu馥 dans la version multithread de MESA, est aussi en train de travailler sur la version multithread des plugins de The Gimp. Voyez 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 騅idement changer dans le futur. A titre anecdotique, Cyrix et AMD adh鑽ent au standard non-propri騁aire OpenPIC SMP mais actuellement il n'existe pas de carte m鑽e l'utilisant.

      (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駑arre afin d'entrer dans l'utilitaire de configuration syst鑪e (System Configuration Utility)
      2. Pressez Entr馥 pour effacer l'馗ran de d駑arrage
      3. Pressez imm馘iatement CTRL+A
      4. Un message appara?ra vous informant que vous 黎es maintenant en "Advanced Mode"
      5. S駘ectionnez ensuite "Configure Hardware" -> "View / Edit details"
      6. Vous verrez alors les r馮lages avanc駸 (m駘ang駸 avec les r馮lages ordinaires)
      7. Descendez jusqu'au "APIC Mode" et s駘ectionnez alors "Fully Mapped"
      8. 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

        Un noyau 2.0 (> 2.0.36) contient un patch MTRR qui devrait r駸oudre ce probl鑪e (s駘ectionnez l'option "handle buggy SMP BIOSes with bad MTRR setup" dans le menu "General setup").

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

      9. Non (selon Alan :) ), 1.4 est juste une sp馗ification plus stricte de 1.1.

      10. Pourquoi l'horloge d駻ive-t-elle si rapidement quand la machine fonctionne en mode SMP ?

        Il s'agit d'un probl鑪e connu avec la gestion des IRQ et les blocages noyau LILO afin d'黎re sur que votre noyau charge correctement le syst鑪e de fichier racine au d駑arrage.

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

      11. Durant le d駑arrage la machine plante en signalant un probl鑪e IOAPIC

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

      12. Mon syst鑪e 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)

      13. Mon syst鑪e bloque sans message oops

        Si vous utilisez les noyaux 2.2.11 ou 2.2.12, r馗up駻ez le dernier noyau. Par configuration (Dual Celeron 466 Abit BP6) :


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

        Si les fonctions d'馗onomie d'駭ergie sont activ馥s, des plantages al饌toires ftp://ftp.suse.com/pub/people/andrea/kernel-patches

        Il y a plusieurs options de d饕ogage. N'utilisez PAS l'option de blocage logicielle ! Pour des machines SMP r馗entes, activez l'option kernel debugging 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駻ie facilite grandement le d饕ogage 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
        

        De Ralf B臘hle: (concernant la taille des bo?iers et les ventilateurs) il est important que l'air circule. Bien s?, ce n'est pas possible quand toutes sortes d'obstacles, tels des c稈les, l'en emp鹹hent dans des bo?iers par trop exigus. bo?ier. Des bo?iers suppl駑entaires pour les p駻iph駻iques d馮ageant de la chaleur sont 馮alement utiles.

        Bien s? vous pouvez toujours aller chez Radio Shack (ou similaire) et acheter

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

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

        Les noyaux 2.0.x sur des syst鑪es Ethernet rapide et hautes performances ont pg. 13

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

        Le probl鑪e peut se r駸oudre avec un contournement par le BIOS (ou un patch du noyau). David Wragg a 馗rit 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

      16. NE PAS lancer emm386.exe avant de d駑arrer Linux SMP

        De Mark Duguid, R鑒le implicite #1 avec une carte m鑽e W6LI. ;)

      17. WS400 dual PII/300, 2.2.x, SMP (Wade Hampton).

        3.3 Informations sp馗ifiques aux cartes m鑽es

        Notez que des informations plus pr馗ises peuvent 黎re trouv馥s avec la liste des Cartes m鑽e suppos馥s fonctionner sous Linux SMP

        Cartes m鑽es avec des probl鑪es connus

        • Aucune pour l'instant

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

        R駱onse pratique : c'est possible, mais cela demande une modification mat駻ielle pour les processeurs Slot 1. La manipulation est d馗rite 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.

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

        Comment Linux se comporte-t-il sur les syst鑪es double Celeron ?

        Bien, merci.

        Les processeurs Celeron sont r駱ut駸 pour 黎re facilement surcaden軋ble.Qu'en est-il des syst鑪es doubles Celeron ?

        4.1 Quellles sont les machines Sparc support馥s ?

        Citation de la page web UltraLinux (syst鑪es SMP seulement):