- Cooling problems
-From Ralf Bächle: [Related to case size and fans]
+>From Ralf Bächle: [Related to case size and fans]
It's important that the air is flowing. It of course can't where cables
etc. are preventing this like in too small cases. On the other side
I've seen oversized cases causing big problems. There are some tower
@@ -760,8 +756,7 @@ a problem. (Wade Hampton)
Don't buy cheap RAM and don't use mixed RAM modules on a motherboard
that is picky about it.
-Especially Tyan motherboards are known to be picky about RAM speed (see
-the Tyan paragraph below for a possible solution).
+Especially Tyan motherboards are known to be picky about RAM speed.
There have been some report of 10ns PC100 RAM being sold with
@@ -776,7 +771,7 @@ Check /proc/cpuinfo> to see that your CPUs are same stepping.
...and even if it is stable, DON'T overclock.
-From Ralf Bächle: Overclocking causes very subtle
+>From Ralf Bächle: Overclocking causes very subtle
problems. I have a nice example, one of my overclocked old machines
misscomputes a couple of pixels of a 640 x 400 fractal. The problem is
only visible when comparing them using tools. So better say never,
@@ -816,7 +811,7 @@ url="http://nemo.physics.ncsu.edu/~briggs/vfix.html">
- DONT run emm386.exe before booting linux SMP
-From Mark Duguid, dumb rule #1 with W6LI
+>From Mark Duguid, dumb rule #1 with W6LI
motherboards. ;)>
- If the machine reboots/freezes after a while, there can be two good
@@ -1050,12 +1045,12 @@ url="http://www.uk.linux.org/SMP/title.html">
- linux-smp mailing list
To subscribe, send
+at
To unsubscribe, send
+
@@ -1123,21 +1118,15 @@ url="http://nemo.physics.ncsu.edu/~briggs/gimp/index.html">
--
-
-
-
-
-
-
- (for experts only, please read
-linux-smp@vger.rutgers.edu)
+linux-smp@vger.kernel.org)
@@ -1177,12 +1166,15 @@ compilers for WinNT
Glossary
+Definitions
-- SMP Symmetric Multi-Processors
+
- SMP Symmetric Multi-Processors.
-
- APIC Advanced Programmable Interrupt Controler
+
- UP Uni-Processor: system with one processor.
+
+
- APIC Advanced Programmable Interrupt Controler.
- thread A thread is a processor activity in a
process. The same process can have multiple threads. Those threads share
@@ -1191,14 +1183,126 @@ the process address space and can therefore share data.
- pthread Posix thread, threads defined by the Posix
standard.
-
- APM Advanced Power Managment
+
- process Program in execution, with its environment.
+
+
- MTRR Memory Type Range Register
+
+
- APM Advanced Power Management.
+
+
- FPU Floating Point Unit. Also called arithmetic
+co-processor.
+
+
- IRQ Interrupt ReQuest.
+
+
- EBDA ??
+
+
- oops Internal kernel error.
+
+
- Cluster Group of computers that achieve a common
+computation (also known as Beowulf within the Linux community).
+
+
+
+Concepts
+
+
+ - Data Races
+
+A data race happens when to processes want to modify a shared variable
+concurrently without protecting themselves from the effect of the other
+process.
+
+Let A a shared variable. Let P1 and P2 two processes that access this
+variable. Those two processes are making the same following operation:
+"read A in tmp variable (local to the precess); do tmp = tmp + 1 ; write
+tmp in A". If the A variable is not protected by a lock, resulting
+executions could not correspond to what is espected. For example, here
+is two examples if one do not lock A:
+
+case #1:
+A=0
+P1: read A -> tmp1 (so tmp1 is 0)
+P2: read A -> tmp2 (so tmp2 is 0)
+P1: tmp1 = tmp1 + 1 (so tmp1 is 1)
+P2: tmp2 = tmp2 + 1 (so tmp2 is 1)
+P1: tmp1 -> write A (so A is 1)
+P2: tmp2 -> write A (so A is 1)
+
+
+
+case #2:
+A=0
+P1: read A -> tmp1 (so tmp1 is 0)
+P1: tmp1 = tmp1 + 1 (so tmp1 is 1)
+P1: tmp1 -> write A (so A is 1)
+P2: read A -> tmp2 (so tmp2 is 1)
+P2: tmp2 = tmp2 + 1 (so tmp2 is 2)
+P2: tmp2 -> write A (so A is 2)
+
+
+To avoid this kind of problem, one uses a lock:
+
+A=0:
+P1: lock A
+P1: read A -> tmp1 (so tmp1 is 0)
+P2: lock A (so P2 is blocked)
+P1: tmp1 = tmp1 + 1 (so tmp1 is 1)
+P1: tmp1 -> write A (so A is 1)
+P1: unlock A (so P2 is unblocked)
+P2: read A -> tmp2 (so tmp2 is 1)
+P2: tmp2 = tmp2 + 1 (so tmp2 is 2)
+P2: tmp2 -> write A (so A is 2)
+P2: unlock A
+
+
+ - Deadlock
+
+This is an inter-blocking that occurs when two processes want to access
+at shared variables mutually locked. For example, let A and B two locks
+and P1 and P2 two processes:
+
+
+P1: lock A
+P2: lock B
+P1: lock B (so P1 is blocked by P2)
+P2: lock A (so P2 is blocked by P1)
+
+Process P1 is blocked because it is waiting for the unlocking of B
+variable by P2. However P2 also needs the A variable to finish its
+computation and free B. So we have a deadlock.
+
+In this example, the problem is very simple. But imagine what can happen
+in a 2 millions of lines of code (like the linux kernel) with hundreds
+of locks. :-)
+
+
+
What's new ?
+
+- New linux-smp mailing-list adress : linux-smp@vger.kernel.org
+(me)
+
- Tell where to find RTC setting in kernel config (Patrick
+Doyle)
+
- glossary updated and concepts added (from a french version made
+by Ludovic Danigo)
+
- Fixed an inconsistency (Matthias Schniedermeyer)
+
- Deleted wrong links (Johan Ekenberg)
+
+
+
+
- updated with a submission from Stig Telfer detailing SMP support
+on API Alpha systems
+
+
+
- Remember to disable all BIOS power-save features (Osamu
@@ -1506,8 +1610,10 @@ Many thanks to those who help me to maintain this HOWTO:
- Alan Cox
- Andrew Crane
- Cort Dougan
+
- Patrick Doyle
- Mark Duguid
- Stéphane Écolivet
+
- Johan Ekenberg
- Jocelyne Erhel
- Jay A Estabrook
- Byron Faber
@@ -1549,11 +1655,13 @@ Many thanks to those who help me to maintain this HOWTO:
- Sean Reifschneider
- Sumit Roy
- Thomas Schenk
+
- Matthias Schniedermeyer
- Terry Shull
- Chris K. Skinner
- Hans - Erik Skyttberg
- Szakacsits Szabolcs
- Jukka Tainio
+
- Stig Telfer
- Simen Timian Thoresen
- El Warren
- Gregory R. Warnes