Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 07 Dec 2000 14:26:15 -0800 (PST)
From:      John Baldwin <jhb@FreeBSD.org>
To:        Daniel Eischen <eischen@vigrid.com>
Cc:        smp@FreeBSD.org, Jason Evans <jasone@canonware.com>
Subject:   Re: Userland atomic assignments
Message-ID:  <XFMail.001207142615.jhb@FreeBSD.org>
In-Reply-To: <Pine.SUN.3.91.1001207171540.10405A-100000@pcnet1.pcnet.com>

next in thread | previous in thread | raw e-mail | index | archive | help

On 07-Dec-00 Daniel Eischen wrote:
> On 7 Dec 2000, Jason Evans wrote:
>> On Thu, Dec 07, 2000 at 04:15:05PM -0500, Dan Eischen wrote:
>> > What kind of atomic operations can we get in userland?
>> > If I have a singly linked list, where nodes are only added
>> > to the head or the tail and they are never removed, can I
>> > walk the list without fear of catching a bad head or
>> > node->next (when I'm at the end of the list) pointer?
>> > 
>> > In other words, can I get an atomic_set_ptr() operation
>> > on each platform?  I can also see the need for an
>> > atomic_set_int32() operation.
>> 
>> I don't think we have an official API for atomic operations in userland.
>> There is <machine/atomic.h>, but it isn't documented as a userland API.  I
>> agree that we need this or something similar in userland though.  Any ideas
>> on the cleanest way to provide this?
> 
> Something along the lines of <machine/atomic.h> I'd guess.
> I don't need compare and set, nor anything that complicated,
> just a couple of atomic store operations.  I'm finding some
> places in libc that could really use an atomic_store_ptr().

a = b; should be atomic I think.  If its not, then large portions of the kernel
break, IIRC.

> -- 
> Dan Eischen

-- 

John Baldwin <jhb@FreeBSD.org> -- http://www.FreeBSD.org/~jhb/
PGP Key: http://www.baldwin.cx/~john/pgpkey.asc
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/


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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.001207142615.jhb>