Title: RE: [TriLUG] kernel question

The good news is that a SMP kernel will work fine on a
Uniprocessor system.  The bad news is that there is a
performance hit. 

Now for those interested in the details, the reason for
the performance hit is that the kernel has to do additional
locking on SMP.  On a Uniprocessor system, the kernel can
disable interrupts, and be assured that nothing else is going
to modify memory.  But on a SMP system, another processor
can modify memory.  So the solution is to add locks (often
called spinlocks) for various parts of memory.  What happens
is when a processor wants to access memory protected by a
lock, it first gets the lock.  In order to get the lock,
the processor goes into a tight loop until the lock is available. 
Once it has acquired the lock, it accesses the memory, and
then releases the lock so other processors can get it.  Acquiring
and releasing locks has a certain amount of overhead, even if
there are no other processors making the current processor wait
for the lock.  So in the Uniprocessor kernel, where spinlocks
aren't needed, the kernel replaces the get and release spinlock
code with no-ops, which get optimized away.

One other thing to note is that this applies to the 2.4.x and 2.2.x
series kernels.  In 2.5.x, and now 2.6.x, pre-emption support has
been added to the kernel.  Therefore, spinlocks are needed even
on a Uniprocessor system (if pre-emption has been enabled in the
config)

> -----Original Message-----
> From: Greg Brown [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, July 15, 2003 8:31 AM
> To: [EMAIL PROTECTED]
> Subject: [TriLUG] kernel question
>
>
> If I accidently included symmetric multi-processing support into my
> kernel on a machine which has only one processor.  By including this
> option do I face and kind of a performance hit on my single processor
> machine?  Even though I did include this option built-into my
> kernel I
> did not compile the kernel with options telling it to compile for N
> number of processors.  I'm running the 2.4.21 kernel.  If the
> kernel is
> fine as-is I'll just leave well enough alone until I upgrade
> again - if
> not, I'll recompile.  Thoughts?  Anyone?  Bueller?  Fry?
>
> Greg
>
> --
> TriLUG mailing list        :
> http://www.trilug.org/mailman/listinfo/trilug
> TriLUG
> Organizational FAQ  : http://trilug.org/faq/
> TriLUG Member Services FAQ : http://members.trilug.org/services_faq/
> TriLUG PGP Keyring         : http://trilug.org/~chrish/trilug.asc
>

Reply via email to