Re: Why Semaphore Hardware-Dependent?

linux-os (Dick Johnson)
2006-08-28T12:37:00Z

On Mon, 28 Aug 2006, Chris Wedgwood wrote:

> On Mon, Aug 28, 2006 at 10:18:35AM +1000, Paul Mackerras wrote:
>
>> I believe the reason for not doing something like this on x86 was
>> the fact that we still support i386 processors, which don't have the
>> cmpxchg instruction. That's fair enough, but I would be opposed to
>> making semaphores bigger and slower on PowerPC because of that.
>> Hence the two different styles of implementation.
>
> The i386 is older than some of the kernel hackers, and given that a
> modern kernel is pretty painful with less than say 16MB or RAM in
> practice, I don't see that it would be all that terrible to drop
> support for ancient CPUs at some point (yes, I know some newer
> embedded (and similar) CPUs might be affected here too, but surely not
> that many that people really use --- and they could just use 2.4.x).

I don't think it's a matter of favoring any old PCs. Instead, it's
a matter of CPU designers creating special optimized operations for
use in semaphores. We should continue to use those if at all possible
because that's what they were designed for, even if semaphores could
be implemented with "standard" operations. Quoting myself from some
discussion years ago; "The fact that one can use an axe as a hammer
does not make an axe a hammer." We should continue to use the right
things even though CPUs are so fast nowadays that performance
advantages may seem to be lost in the noise. It's these little
performance detractors that tend to creep in and reduce the
performance of large systems.

Cheers,
Dick Johnson
Penguin : Linux version 2.6.16.24 on an i686 machine (5592.62 BogoMips).
New book: http://www.AbominableFirebug.com/
_
\x1a\x04

****************************************************************
The information transmitted in this message is confidential and may be privileged. Any review, retransmission, dissemination, or other use of this information by persons or entities other than the intended recipient is prohibited. If you are not the intended recipient, please notify Analogic Corporation immediately - by replying to this message or by sending an email to DeliveryErrors@analogic.com - and destroy all copies of this information, including any attachments, without reading or disclosing them.

Thank you.