On Mon, 12 Jul 1999, Peter Jeremy wrote:

> Mike Haertel <[EMAIL PROTECTED]> wrote:
> >Um.  FYI on x86, even if the compiler generates the RMW
> >form "addl $1, foo", it's not atomic.  If you want it to
> >be atomic you have to precede the opcode with a LOCK
> >prefix 0xF0.
> 
> I'd noticed that point as well.  The top of sys/i386/include/atomic.h
> _does_ make is clear that they aren't SMP safe:
> 
> /*
>  * Various simple arithmetic on memory which is atomic in the presence
>  * of interrupts.
>  *
>  * Note: these versions are not SMP safe.
>  */
> 
> That said, it should be fairly simple to change Matt's new in-line
> assembler versions to insert LOCK prefixes when building an SMP
> kernel.  (Although I don't know that this is necessary yet, given
> the `Big Giant Lock').

We don't need the lock prefix for the current SMP implementation. A lock
prefix would be needed in a multithreaded implementation but should not be
added unless the kernel is an SMP kernel otherwise UP performance would
suffer.

--
Doug Rabson                             Mail:  [EMAIL PROTECTED]
Nonlinear Systems Ltd.                  Phone: +44 181 442 9037




To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to