On Sat, Oct 19, 2002 at 11:22:27AM +0100, Anticipating a Reply wrote: > Can anybody tell me where I can find > pointers to Basic working of SMP systems > and linux working on it ? I strongly recommend the book Unix Systems for Modern Architectures: Symmetric Multiprocessing and Caching for Kernel Programmers by Curt Schimmel. He covers the various methods of making a Unix kernel deal with multiple processors and the various tradeoffs involved. He also covers caching and how the various cache architectures affect smp systems. The downside to the book -- Linux is never mentioned. With a copyright date of 1994, that is probably a good thing -- otherwise, he would just say, "Linux doesn't run on SMP systems." :) Once the concepts of mutexes and spinlocks are familiar, the kernel's documentation, Documentation/spinlocks.txt, should provide the rest of the kernel specific details. A gentler introduction might be in either Linux Device Drivers, 2nd edition, or Understanding the Linux Kernel, both published by O'Reilly. I'd expect LDD to make the point that one should not perform any blocking operations when holding a spinlock. UTLK should as well, but I can't promise that now. :) Of course, on 2.5 systems, one must also handle pre-empt. I recall hearing that pre-empt mostly works, except for per-cpu data. Since this includes C's auto variables, I'm a little confused at how pre-empt kernels even boot. :) Any explanations would be appreciated. Cheers -- It seems the power has been robbed from the founding fathers and is now firmly in the hand of the funding fathers -- Rik van Riel
Attachment:
pgp00183.pgp
Description: PGP signature