home *** CD-ROM | disk | FTP | other *** search
/ Freelog Special Edition 1: Linux / CD1.iso / doc / FAQ / txt / SMP-FAQ < prev    next >
Encoding:
Text File  |  1998-10-14  |  24.7 KB  |  793 lines

  1.   Linux SMP FAQ
  2.   David Mentr, David.Mentre@irisa.fr
  3.   v0.22, 17 april 1998
  4.  
  5.   This FAQ review main issues (and I hope solutions) related to SMP con-
  6.   figuration under Linux.
  7.   ______________________________________________________________________
  8.  
  9.   Table of Contents
  10.  
  11.  
  12.   1. Introduction
  13.  
  14.   2. Questions related to any architectures
  15.  
  16.      2.1 Kernel side
  17.      2.2 User side
  18.  
  19.   3. Intel architecture specific questions
  20.  
  21.      3.1 Why it doesn't work on my machine?
  22.      3.2 Possible causes of crash
  23.      3.3 Motherboard specific information
  24.         3.3.1 Motherboards with known problems
  25.         3.3.2 Motherboards with no known problems
  26.  
  27.   4. Useful pointers
  28.  
  29.      4.1 Various
  30.      4.2 SMP specific patches
  31.  
  32.   5. Glossary
  33.  
  34.   6. List of contributors
  35.  
  36.  
  37.  
  38.   ______________________________________________________________________
  39.  
  40.   11..  IInnttrroodduuccttiioonn
  41.  
  42.   Linux can work on SMP (Symetric Multi-Processors) machines. SMP
  43.   support has started with the 2.0 family and has been improved in the
  44.   2.1 (future 2.2) saga.
  45.  
  46.  
  47.   FAQ maintained by David Mentr (David.Mentre@irisa.fr). The latest
  48.   edition of this FAQ can be found at
  49.   http://www.irisa.fr/prive/mentre/smp-faq/.
  50.  
  51.  
  52.   If you want to contribute to this FAQ, I would prefer a diff against
  53.   the SGML version http://www.irisa.fr/prive/mentre/smp-faq/smp-
  54.   faq.sgml> of this document, but any remarks (in plain text) will be
  55.   greatly appreciated.
  56.  
  57.  
  58.   This FAQ is an improvement of a first draft made by CChhrriiss PPiirriihh.
  59.  
  60.  
  61.   All information contained in this FAQ is provided "as is." All
  62.   warranties, expressed, implied or statutory, concerning the accuracy
  63.   of the information of the suitability for any particular use are
  64.   hereby specifically disclaimed. While every effort has been taken to
  65.   ensure the accuracy of the information contained in this FAQ, the
  66.   authors assume(s) no responsibility for errors or omissions, or for
  67.   damages resulting from the use of the information contained herein.
  68.  
  69.  
  70.   22..  QQuueessttiioonnss rreellaatteedd ttoo aannyy aarrcchhiitteeccttuurreess
  71.  
  72.  
  73.   22..11..  KKeerrnneell ssiiddee
  74.  
  75.  
  76.   1. DDooeess LLiinnuuxx ssuuppppoorrtt mmuullttii--tthhrreeaaddiinngg??  IIff II ssttaarrtt ttwwoo oorr mmoorree
  77.      pprroocceesssseess,, wwiillll tthheeyy bbee ddiissttrriibbuutteedd aammoonngg tthhee aavvaaiillaabbllee CCPPUUss??
  78.  
  79.      Yes.
  80.  
  81.  
  82.   2. WWhhaatt kkiinndd ooff aarrcchhiitteeccttuurreess aarree ssuuppppoorrtteedd iinn SSMMPP??
  83.  
  84.  
  85.      FFrroomm AAllaann CCooxx:
  86.         SMP is supported in 2.0 on the hypersparc (SS20, etc.) systems
  87.         and Intel 486, Pentium or higher machines which are Intel
  88.         MP1.1/1.4 compliant.
  89.  
  90.         SMP support for UltraSparc, SparcServer, Alpha and PowerPC
  91.         machines is in progress in 2.1.x.
  92.  
  93.  
  94.      FFrroomm RRaallff BBcchhllee:
  95.         MIPS, m68k and ARM does not support SMP; the latter two probly
  96.         won't ever.
  97.  
  98.         That is, I'm going to hack on MIPS-SMP as soon as I get a SMP
  99.         box ...
  100.  
  101.  
  102.   3. HHooww ddoo II mmaakkee aa LLiinnuuxx SSMMPP kkeerrnneell??
  103.  
  104.      Uncomment the SMP=1 line in the main Makefile
  105.      (/usr/src/linux/Makefile).
  106.  
  107.      AND
  108.  
  109.      enable "RTC support" (from RRoobbeerrtt GG.. BBrroowwnn). Note that inserting
  110.      RTC support actually doesn't afaik prevent drift, but according to
  111.      a discussion [Robert G. Brown] remember from a year ago or so it
  112.      can prevent lockup when the clock is read at boot time.
  113.  
  114.      AND
  115.  
  116.      do NOT enable APM!  APM and SMP are not compatible, and your system
  117.      will almost certainly (or at least probably ;)) crash under boot if
  118.      APM is enabled (JJaakkoobb OOeesstteerrggaaaarrdd). AAllaann CCooxx confirms this : 2.1.x
  119.      turns APM off for SMP boxes.  Basically APM is undefined in the
  120.      presence of SMP systems, and anything could occur.
  121.  
  122.  
  123.  
  124.      You must rebuild all your kernel and kernel modules when changing
  125.      to and from SMP mode. Remember to make modules and make
  126.      modules_install (from AAllaann CCooxx).
  127.  
  128.  
  129.   4. HHooww ddoo II mmaakkee aa LLiinnuuxx nnoonn-SMP kernel?
  130.  
  131.      CCoommmmeenntt the SMP=1 line in the Makefile (and not set SMP to 0).
  132.  
  133.      You must rebuild all your kernel and kernel modules when changing
  134.      to and from SMP mode. Remember to make modules and make
  135.      modules_install.
  136.  
  137.  
  138.  
  139.   5. HHooww ccaann II tteellll iiff iitt wwoorrkkeedd??
  140.  
  141.  
  142.       cat /proc/cpuinfo
  143.  
  144.  
  145.  
  146.  
  147.   Typical output (dual PentiumII):
  148.  
  149.   ______________________________________________________________________
  150.   processor       : 0
  151.   cpu             : 686
  152.   model           : 3
  153.   vendor_id       : GenuineIntel
  154.   stepping        : 3
  155.   fdiv_bug        : no
  156.   hlt_bug         : no
  157.   fpu             : yes
  158.   fpu_exception   : yes
  159.   cpuid           : yes
  160.   wp              : yes
  161.   flags           : fpu vme de pse tsc msr pae mce cx8 apic 11 mtrr pge mca cmov mmx
  162.   bogomips        : 267.06
  163.  
  164.   processor       : 1
  165.   cpu             : 686
  166.   model           : 3
  167.   vendor_id       : GenuineIntel
  168.   stepping        : 3
  169.   fdiv_bug        : no
  170.   hlt_bug         : no
  171.   fpu             : yes
  172.   fpu_exception   : yes
  173.   cpuid           : yes
  174.   wp              : yes
  175.   flags           : fpu vme de pse tsc msr pae mce cx8 apic 11 mtrr pge mca cmov mmx
  176.   bogomips        : 267.06
  177.   ______________________________________________________________________
  178.  
  179.  
  180.  
  181.  
  182.   6. WWhhaatt iiss tthhee ssttaattuuss ooff ccoonnvveerrttiinngg tthhee kkeerrnneell ttoowwaarrdd ffiinneerr ggrraaiinneedd
  183.      lloocckkiinngg aanndd mmuullttiitthhrreeaaddiinngg??
  184.  
  185.      2.1.x has signal handling, interrupts and some I/O stuff fine grain
  186.      locked.  The rest is gradually migrating. All the scheduling is SMP
  187.      safe
  188.  
  189.  
  190.   7. DDooeess LLiinnuuxx SSMMPP ssuuppppoorrtt pprroocceessssoorr aaffffiinniittyy??
  191.  
  192.      No and Yes.  There is no way to force a process onto specific CPU's
  193.      but the linux scheduler has a processor bias for each process,
  194.      which tends to keep processes tied to a specific CPU.
  195.  
  196.  
  197.  
  198.  
  199.   22..22..  UUsseerr ssiiddee
  200.  
  201.  
  202.   1. DDoo II rreeaallllyy nneeeedd SSMMPP??
  203.  
  204.      If you have to ask, you probably don't. :)
  205.  
  206.  
  207.   2. HHooww ddooeess oonnee ddiissppllaayy mmuuttiippllee ccppuu ppeerrffoorrmmaannccee??
  208.  
  209.      Thanks to SSaammuueell SS.. CChheessssmmaann, here is some useful utilities:
  210.  
  211.      CChhaarraacctteerr bbaasseedd::
  212.         http://www.cs.inf.ethz.ch/~rauch/procps.html
  213.  
  214.         Basically, it's   procps v1.12.2   (top, ps, et. al.)  and some
  215.         patches to support SMP.
  216.  
  217.  
  218.      GGrraapphhiicc::
  219.         xosview-1.5.1 supports SMP. And kernels above 2.1.85 (included)
  220.         have the /proc/stat/cpuX entry.
  221.  
  222.         The official homepage for xosview is:
  223.         http://lore.ece.utexas.edu/~bgrayson/xosview.html
  224.  
  225.         The various forissier's kernel patches are at: http://www-
  226.         isia.cma.fr/~forissie/smp_kernel_patch/
  227.  
  228.  
  229.   3. HHooww ccaann II pprrooggrraamm ttoo uussee ttwwoo ((oorr mmoorree CCPPUUss)) ??
  230.  
  231.      Use a kernel-thread library. A good library, the pthread library
  232.      made by Xavier Leroy
  233.      http://pauillac.inria.fr/~xleroy/linuxthreads/>.
  234.  
  235.      LinuxThread is now integrated with glibc2 (aka libc6).
  236.  
  237.      From JJaakkoobb OOeesstteerrggaaaarrdd: Also consider using MPI. It's the industry
  238.      standard message passing interface. It doesn't give you shared
  239.      memory like threads, but it allows you to use your program in a
  240.      cluster too.
  241.  
  242.  
  243.   4. WWhhaatt hhaass cchhaannggeedd iinn tthhee tthhrreeaaddss ppaacckkaaggeess,, lliinnuuxxtthhrreeaadd,, eettcc..
  244.  
  245.      Glibc is the big change. glibc is threadsafe and includes
  246.      linuxthreads Posix.4 threads by default. Real time signals are also
  247.      in glibc so POSIX AIO should also be in glibc2.1 (I hope).
  248.  
  249.  
  250.   5. HHooww ccaann II eennaabbllee mmoorree tthhaann 11 pprroocceessss ffoorr mmyy kkeerrnneell ccoommppiillee??
  251.  
  252.      use:
  253.  
  254.      ___________________________________________________________________
  255.              # make [modules|zImage|bzImages] MAKE="make -jX"
  256.              where X=max number of processes.
  257.              WARNING: This won't work for "make dep".
  258.      ___________________________________________________________________
  259.  
  260.  
  261.  
  262.   With a 2.1.x like kernel, see also the file
  263.   /usr/src/linux/Documentation/smp for specific instruction.
  264.  
  265.   BTW, since running multiple compilers allows a machine with sufficient
  266.   memory to use use the otherwise wasted CPU time during I/O caused
  267.   delays make MAKE="make -j 2" -j 2 actually even helps on uniprocessor
  268.   boxes (from RRaallff BBcchhllee).
  269.  
  270.  
  271.   6. WWhhyy tthhee ttiimmee ggiivveenn bbyy tthhee time command is false ?  (from JJooeell
  272.      MMaarrcchhaanndd)
  273.  
  274.      In the 2.0 series, the result given by the time command is false.
  275.      The sum user+system is right *but* the spreading between user and
  276.      system time is false.
  277.  
  278.      This bug in corrected in 2.1 series.
  279.  
  280.  
  281.   7. HHooww wwiillll mmyy aapppplliiccaattiioonn ppeerrffoorrmm uunnddeerr SSMMPP??
  282.  
  283.      Look at SMP Performance of Linux
  284.      http://www.interlog.com/~mackin/linux-smp.html> which gives useful
  285.      hints how to bench a specific machine (from a post made by CCaammeerroonn
  286.      MMaaccKKiinnnnoonn).
  287.  
  288.  
  289.   8. WWhheerree ccaann II ffoouunndd mmoorree iinnffoorrmmaattiioonn aabboouutt ppaarraalllleell pprrooggrraammmmiinngg??
  290.  
  291.      Look at the Linux Parallel Processing HOWTO
  292.      http://yara.ecn.purdue.edu/~pplinux/PPHOWTO/pphowto.html>
  293.  
  294.      Lots of useful information can be found at Parallel Processing
  295.      using Linux http://yara.ecn.purdue.edu/~pplinux/>
  296.  
  297.  
  298.  
  299.  
  300.   33..  IInntteell aarrcchhiitteeccttuurree ssppeecciiffiicc qquueessttiioonnss
  301.  
  302.  
  303.   33..11..  WWhhyy iitt ddooeessnn''tt wwoorrkk oonn mmyy mmaacchhiinnee??
  304.  
  305.  
  306.   1. CCaann II uussee mmyy CCyyrriixx//AAMMDD//nnoonn--IInntteell CCPPUU iinn SSMMPP??
  307.  
  308.      SShhoorrtt aannsswweerr:: no.
  309.  
  310.      LLoonngg aannsswweerr:: Intel claims ownership to the APIC SMP scheme, and
  311.      unless a company licenses it from Intel they may not use it. There
  312.      are currently no companies that have done so.  (This of course can
  313.      change in the future) FYI - Both Cyrix and AMD support the non-
  314.      proprietary OpenPIC SMP standard but currently there are no
  315.      motherboards that use it.
  316.  
  317.  
  318.   2. WWhhyy ddooeessnn''tt mmyy oolldd CCoommppaaqq wwoorrkk??
  319.  
  320.      Put it into MP1.1/1.4 compliant mode.
  321.  
  322.  
  323.   3. WWhhyy ddooeessnntt mmyy AALLRR wwoorrkk??
  324.  
  325.      From RRoobbeerrtt HHyyaatttt : ALR Revolution quad-6 seems quite safe, while
  326.      some older revolution quad machines without P6 processors seem
  327.      "iffy"...
  328.  
  329.  
  330.  
  331.   4. WWhhyy ddooeess SSMMPP ggoo ssoo sslloowwllyy?? or WWhhyy ddooeess oonnee CCPPUU sshhooww aa vveerryy llooww
  332.      bbooggoommiippss vvaalluuee wwhhiillee tthhee ffiirrsstt oonnee iiss nnoorrmmaall??
  333.  
  334.      From AAllaann CCooxx: If one of your CPU's is reporting a very low
  335.      bogomips value the cache is not enabled on it. Your vendor probably
  336.      provides a buggy BIOS. Get the patch to work around this or better
  337.      yet send it back and buy a board from a competent supplier.
  338.  
  339.  
  340.   5. II''vvee hheeaarrdd IIBBMM mmaacchhiinneess hhaavvee pprroobblleemmss
  341.  
  342.  
  343.      Some IBM machines have the MP1.4 bios block in the EBDA, allowed
  344.      but not supported by < 2.1.80. Please update to the right kernel.
  345.  
  346.      There is an old 486SLC based IBM SMP box. Linux/SMP requires
  347.      hardware FPU support.
  348.  
  349.  
  350.   6. IIss tthheerree aannyy aaddvvaannttaaggee ooff IInntteell MMPP 11..44 oovveerr 11..11 ssppeecciiffiiccaattiioonn??
  351.  
  352.      Nope (according to Alan :) ), 1.4 is just a stricker specs of 1.1.
  353.  
  354.  
  355.   7. WWhhyy ddooeess tthhee cclloocckk ddrriifftt ssoo rraappiiddllyy wwhheenn II rruunn lliinnuuxx SSMMPP??
  356.  
  357.  
  358.      This is known problem with IRQ handling and long kernel locks in
  359.      the 2.0 series kernels.  Consider upgrading to a later 2.1 kernel
  360.      (not garenteed to work).
  361.  
  362.      From JJaakkoobb OOeesstteerrggaaaarrdd: Or, consider running xntpd. That should
  363.      keep your clock right on time.  (I think that I've heard that
  364.      enabling RTC in the kernel also fixes the clock drift. It works for
  365.      me! but I'm not sure whether that's general or I'm just being
  366.      lucky)
  367.  
  368.  
  369.  
  370.   8. WWhhyy aarree mmyy CCPPUU''ss nnuummbbeerreedd 00 aanndd 22 iinnsstteeaadd ooff 00 aanndd 11 ((oorr ssoommee ootthheerr
  371.      oodddd nnuummbbeerriinngg))??
  372.  
  373.      The CPU number is assigned by the MB manufacturer and doesn't mean
  374.      anything.  Ignore it.
  375.  
  376.  
  377.  
  378.   9. MMyy SSMMPP ssyysstteemm iiss lloocckkiinngg uupp aallll tthhee ttiimmee..  BBllaacckk ssccrreeeenn,, nnootthhiinngg iinn
  379.      tthhee llooggss..  HHeellpp!!
  380.  
  381.      If you're running a 2.0 kernel, consider upgrading to later 2.0.32+
  382.      kernels or apply Leonard Zubkoff's deadlock patch.  If you still
  383.      have deadlocks, apply Ingo Molnar's deadlock detection patch and
  384.      post the results (against your System.map) to linux-smp or linux-
  385.      kernel.  You might also consider running a 2.1 kernel.
  386.  
  387.  
  388.  
  389.  
  390.  
  391.   33..22..  PPoossssiibbllee ccaauusseess ooff ccrraasshh
  392.  
  393.   You'll find in this section some ppoossssiibbllee reasons for a crash of an
  394.   SMP machine (credits are due to JJaakkoobb OOeesstteerrggaaaarrdd for this part). As
  395.   far as I (david) know, theses problems are Intel specific.
  396.  
  397.   +o  CCoooolliinngg pprroobblleemmss
  398.  
  399.      From RRaallff BBcchhllee: [Related to case size and fans] It's important
  400.      that the air is flowing.  It of course can't where cables etc. are
  401.      preventing this like in too small cases.  On the other side I've
  402.      seen oversized cases causing big problems.  There are some tower
  403.      cases on the market that actually are worse for cooling than
  404.      desktops.  In short, the right thing is thinking about aerodynamics
  405.      in the case.  Extra cases for hot peripherals are usefull as well.
  406.  
  407.  
  408.  
  409.   +o  BBaadd mmeemmoorryy
  410.  
  411.      Don't buy too cheap RAM and don't use mixed RAM modules on a
  412.      motherboard that is picky about it.
  413.  
  414.      Especially Tyan motherboards are known to be picky about RAM speed.
  415.  
  416.  
  417.   +o  BBaadd ccoommbbiinnaattiioonn ooff ddiiffffeerreenntt sstteeppppiinngg CCPPUUss
  418.  
  419.      Check /proc/cpuinfo to see that your CPUs are same stepping.
  420.  
  421.  
  422.   +o  YYoouu aarree rruunnnniinngg 22..00..3333 aarreenn''tt yyoouu ??
  423.  
  424.      If you run 2.0.31 or 2.1.xx you can't be sure that SMP is stable.
  425.      2.0.33 is the right kernel for a production system. 2.1.xx kernels
  426.      perform better, but they are development releases and should NOT be
  427.      considered stable!
  428.  
  429.  
  430.   +o  IIff yyoouurr ssyysstteemm iiss uunnssttaabbllee,, tthheenn DDOONN''TT oovveerrcclloocckk iitt!!
  431.  
  432.      ...and even if it is stable, DON'T overclock.
  433.  
  434.      From RRaallff BBcchhllee: Overclocking causes very subtile problems.  I have
  435.      a nice example, one of my overclocked old machines misscomputes a
  436.      couple of pixels of a 640 x 400 fractal.  The problem is only
  437.      visible when comparing them using tools. So better say _n_e_v_e_r_,
  438.      _n_u_n_c_a_s_, _j_a_m_a_i_s_, _n_i_e_m_a_l_s overclock.
  439.  
  440.  
  441.  
  442.   +o  22..00..xx kkeerrnneell aanndd ffaasstt eetthheerrnneett (from RRoobbeerrtt GG.. BBrroowwnn)
  443.  
  444.      2.0.X kernels on high performance fast ethernet systems have
  445.      significant (and known) problems with a race/deadlock condition in
  446.      the networking interrupt handler.
  447.  
  448.      The solution is to get the latest 100BT development drivers from
  449.      CESDIS (ones that define SMPCHECK).
  450.  
  451.  
  452.   +o  AA bbuugg iinn tthhee 444400FFXX cchhiippsseett (from EEmmiill BBrriiggggss)
  453.  
  454.      If you had a system using the 440FX chipset then your problem with
  455.      the lockups was possibly due to a documented errata in the chipset.
  456.      Here is a reference
  457.  
  458.      References: Intel 440FX PCIset 82441FX (PMC) and 82442FX (DBX)
  459.      Specification Update.  pg. 13
  460.  
  461.      http://www.intel.com/design/pcisets/specupdt/297654.htm
  462.  
  463.      The problem can be fixed with a bios workaround (Or a kernel patch)
  464.      and in fact David Wragg wrote a patch that's included with Richard
  465.      Gooch's mttr patch. For more information and a fix look here.
  466.  
  467.      http://nemo.physics.ncsu.edu/~briggs/vfix.html
  468.  
  469.  
  470.  
  471.   Some hardware is also known to cause problems. This includes:
  472.  
  473.   +o  AAddaapptteecc SSCCSSII ccoonnttrroolllleerrss
  474.  
  475.      Don't buy them, Adaptec is unsupportive to the linux developers.
  476.      This is not a SMP problem, but a general high-performance Linux
  477.      problem.
  478.  
  479.  
  480.      It also seems that aic7xxx driver is broken under SMP (from RRoobbeerrtt
  481.      HHyyaatttt).
  482.  
  483.  
  484.      (from DDoouugg LLeeddffoorrdd, author of the Adaptec driver) Just a quick
  485.      note, the 5.0.11 version of my driver for 2.0.33 is the one I
  486.      [Doug] personally recommend for SMP and/or PII systems.  It's what
  487.      I use here on a PII/266 dual system, although I'm running 2.1.92
  488.      right now instead of 2.0.33.  Second note, the patch will not go
  489.      into 2.0.34-pre6 cleanly, but can be used, and it has not been
  490.      submitted for any of the 34pre kernels because I don't think it's
  491.      had enough testing yet.
  492.  
  493.  
  494.   +o  33CCoomm 33cc990055 ccaarrddss
  495.  
  496.      Some work, some don't. Try disabling busmastering if your system is
  497.      unstable.
  498.  
  499.  
  500.  
  501.  
  502.   33..33..  MMootthheerrbbooaarrdd ssppeecciiffiicc iinnffoorrmmaattiioonn
  503.  
  504.   Some more specific information can be found with the survey of SMP
  505.   motherboards http://styx.phy.vanderbilt.edu/smp/mainboards.html>
  506.  
  507.  
  508.   33..33..11..  MMootthheerrbbooaarrddss wwiitthh kknnoowwnn pprroobblleemmss
  509.  
  510.  
  511.   +o  Gigabyte
  512.  
  513.      Solution: BIOS upgrade
  514.  
  515.  
  516.   +o  SuperMicro
  517.  
  518.      Solution: BIOS upgrade
  519.  
  520.  
  521.   +o  EPoX KP6-LS (CChhrriissttoopphheerr AAlllleenn WWiinngg, 16 march 1998)
  522.  
  523.      It appears to have the same BIOS related BogoMIPS problem as other
  524.      motherboards. (one CPU only gives about 3 BogoMIPS, the other gives
  525.      the full amount) All 2.0.x kernels lock up soon after booting, late
  526.      2.1.x kernels run slowly but don't seem to lock up.  There is no
  527.      BIOS upgrade available (yet). I wrote the manufacturer but have not
  528.      received a reply.
  529.   +o  Tyan
  530.  
  531.      Tyan motherboards are known to be picky about RAM speed (JJaakkoobb
  532.      OOeesstteerrggaaaarrdd).
  533.  
  534.      From DDoouugg LLeeddffoorrdd about the onboard aic-7895 SCSI controller (for
  535.      which he wrote the driver): "BTW, make sure you have at least BIOS
  536.      version 1.16 on that Tyan motherboard.  The 1.15 and below BIOS
  537.      versions have a bug relating to IRQ allocation for the 7895 SCSI
  538.      controller" (submitted by SSzzaakkaaccssiittss SSzzaabboollccss).
  539.  
  540.  
  541.   +o  GA686DLX (AAnnddrreeww CCrraannee)
  542.  
  543.      Same BIOS related BogoMIPS problem as other motherboards.
  544.  
  545.      Solution from Alan Cox: Congratulations, send the bill for your
  546.      hair damage to the supplier. You have yet another SMP box with
  547.      faulty bios. There is a patch for 2.0.x on www.uk.linux.org and
  548.      there are people working on generic MTRR handling for 2.1.x
  549.  
  550.  
  551.   +o  MS-6114
  552.  
  553.      More details for this motherboard at
  554.      http://www.msi.com.tw/product/6114/6114.htm
  555.      http://www.msi.com.tw/product/6114/6114.htm>
  556.  
  557.      Solution: BIOS upgrade
  558.  
  559.      Somebody experienced solid hangs (nothing in the log files) under
  560.      constant load of about 5 running processes within less than 12
  561.      hours with AMI BIOS v1.1.  v1.4b3 runs without problems.
  562.  
  563.  
  564.  
  565.  
  566.  
  567.   33..33..22..  MMootthheerrbbooaarrddss wwiitthh nnoo kknnoowwnn pprroobblleemmss
  568.  
  569.  
  570.   +o  AIR P6NDP and P6NDI (LLeeoonnaarrdd NN.. ZZuubbkkooffff)
  571.  
  572.      My primary production machine is based on an AIR P6NDP and one of
  573.      my test machines uses a P6NDI.  Both seem to be fine motherboards
  574.      in my experience.  The P6NDI BIOS is a little conservative in its
  575.      programming of the Natoma chipset for 50ns EDO, but a minor tweek
  576.      to one register in rc.local took care of that.
  577.  
  578.  
  579.   +o  AIR 54CDP (CChhrriiss MMaauurriittzz)
  580.  
  581.      You can also list the following motherboard as working with no
  582.      problems:
  583.  
  584.      AIR 54CDP motherboard / EISA/PCI / onboard aic7870 / dual P120 /
  585.      Redhat 5.0 (2.0.32 and 2.0.33 kernels)
  586.  
  587.  
  588.   +o  HP XU 6/200 (JJeeaann--FFrraannccooiiss MMiiccoouulleeaauu)
  589.  
  590.      Works with 2.0 and 2.1 kernels. Some problems under high network
  591.      load with 2.0.x kernel. Works under 2.1.78 with Ingo Molnar IO-APIC
  592.      patch.
  593.  
  594.  
  595.   +o  Elitegroup P6FX2-A (BBeenneeddiikktt HHeeiinneenn)
  596.  
  597.      Had this mainboard running with ONE PPro on it for several months,
  598.      and since about a year, it's running without problems with TWO PPro
  599.      200MHz. The only crashes this machine ever experienced were before
  600.      Leonard Zubkoff's deadlock-patches for Linux 2.0.30... ;)
  601.  
  602.      Elitegroup P6FX2-A / ISA/PCI / Dual PPro200 / Debian "hamm"
  603.  
  604.  
  605.  
  606.  
  607.   44..  UUsseeffuull ppooiinntteerrss
  608.  
  609.  
  610.   44..11..  VVaarriioouuss
  611.  
  612.  
  613.   +o  Parallel Processing using Linux
  614.      http://yara.ecn.purdue.edu/~pplinux/>
  615.  
  616.   +o  Linux Parallel Processing HOWTO
  617.      http://yara.ecn.purdue.edu/~pplinux/PPHOWTO/pphowto.html>
  618.  
  619.   +o  ((oouuttddaatteedd)) Linux SMP home page
  620.      http://www.uk.linux.org/SMP/title.html>
  621.  
  622.   +o  linux-smp mailing list
  623.  
  624.      To ssuubbssccrriibbee, send subscribe linux-smp in the message body at
  625.      majordomo@vger.rutgers.edu
  626.  
  627.      To uunnssuubbssccrriibbee, send unsubscribe linux-smp in the message body at
  628.      majordomo@vger.rutgers.edu
  629.  
  630.  
  631.   +o  pthread library made by Xavier Leroy
  632.      http://pauillac.inria.fr/~xleroy/linuxthreads/>
  633.  
  634.   +o  Linux SMP archives http://www.linuxhq.com/lnxlists/linux-smp/>
  635.  
  636.   +o  Survey of SMP motherboards
  637.      http://styx.phy.vanderbilt.edu/smp/mainboards.html>
  638.  
  639.   +o  procps http://www.cs.inf.ethz.ch/~rauch/procps.html>
  640.  
  641.   +o  xosview http://lore.ece.utexas.edu/~bgrayson/xosview.html>
  642.  
  643.   +o  Pentium Pro Optimized BLAS and FFTs for Intel Linux
  644.      http://www.cs.utk.edu/~ghenry/distrib/>
  645.  
  646.   +o  SMP Performance of Linux http://www.interlog.com/~mackin/linux-
  647.      smp.html>
  648.  
  649.   +o  Multithreaded programs on linux
  650.      http://www.e.kth.se/~e94_bek/mthread.html>
  651.  
  652.  
  653.  
  654.  
  655.   44..22..  SSMMPP ssppeecciiffiicc ppaattcchheess
  656.  
  657.  
  658.   +o  Forissier kernel patches http://www-
  659.      isia.cma.fr/~forissie/smp_kernel_patch/>
  660.  
  661.   +o  Patch for a bug in the 440FX chipset
  662.      http://nemo.physics.ncsu.edu/~briggs/vfix.html>
  663.  
  664.   +o  MTRR patch (latest version: 1.9)
  665.      http://www.atnf.csiro.au/~rgooch/kernel-patches.html>
  666.  
  667.  
  668.  
  669.   55..  GGlloossssaarryy
  670.  
  671.  
  672.   +o  SSMMPP Symetric Multi-Processors
  673.  
  674.   +o  AAPPIICC Advanced Programmable Interrupt Controler
  675.  
  676.   +o  tthhrreeaadd A thread is a processor activity in a process. The same
  677.      process can have multiple threads. Those threads share the process
  678.      address space and can therefore share data.
  679.  
  680.   +o  pptthhrreeaadd Posix thread, threads defined by the Posix standard.
  681.  
  682.  
  683.  
  684.   66..  LLiisstt ooff ccoonnttrriibbuuttoorrss
  685.  
  686.   Many thanks to those who help me to maintain this FAQ.
  687.  
  688.  
  689.   +o  Emil Briggs
  690.  
  691.   +o  Robert G. Brown
  692.  
  693.   +o  Samuel S. Chessman
  694.  
  695.   +o  Alan Cox
  696.  
  697.   +o  Andrew Crane
  698.  
  699.   +o  Jocelyne Erhel
  700.  
  701.   +o  Byron Faber
  702.  
  703.   +o  Benedikt Heinen
  704.  
  705.   +o  Robert Hyatt
  706.  
  707.   +o  Tony Kocurko
  708.  
  709.   +o  Doug Ledford
  710.  
  711.   +o  Cameron MacKinnon
  712.  
  713.   +o  Joel Marchand
  714.  
  715.   +o  Chris Mauritz
  716.  
  717.   +o  Jean-Francois Micouleau
  718.  
  719.   +o  Jakob Oestergaard
  720.  
  721.   +o  Jean-Michel Rouet
  722.  
  723.   +o  Ralf Bchle
  724.  
  725.   +o  Sumit Roy
  726.  
  727.   +o  Szakacsits Szabolcs
  728.  
  729.   +o  El Warren
  730.  
  731.   +o  Christopher Allen Wing
  732.  
  733.   +o  Leonard N. Zubkoff
  734.  
  735.  
  736.  
  737.  
  738.  
  739.  
  740.  
  741.  
  742.  
  743.  
  744.  
  745.  
  746.  
  747.  
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.