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