Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Jul 1999 09:00:59 +0100 (BST)
From:      Doug Rabson <dfr@nlsystems.com>
To:        Peter Jeremy <jeremyp@gsmx07.alcatel.com.au>
Cc:        mike@ducky.net, freebsd-current@freebsd.org
Subject:   Re: "objtrm" problem probably found (was Re: Stuck in "objtrm")
Message-ID:  <Pine.BSF.4.10.9907120859240.52933-100000@salmon.nlsystems.com>
In-Reply-To: <99Jul12.085624est.40350@border.alcanet.com.au>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 12 Jul 1999, Peter Jeremy wrote:

> Mike Haertel <mike@ducky.net> 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:  dfr@nlsystems.com
Nonlinear Systems Ltd.			Phone: +44 181 442 9037




To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.10.9907120859240.52933-100000>