Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 28 Mar 2002 09:36:38 +0000 (GMT)
From:      Doug Rabson <dfr@nlsystems.com>
To:        John Baldwin <jhb@FreeBSD.org>
Cc:        Julian Elischer <julian@elischer.org>, <arch@freebsd.org>
Subject:   RE: SMP safe reference counting
Message-ID:  <20020328093345.Y17999-100000@salmon.nlsystems.com>
In-Reply-To: <XFMail.20020327165157.jhb@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 27 Mar 2002, John Baldwin wrote:

>
> On 27-Mar-2002 Julian Elischer wrote:
> >
> > [please remove -smp from your reply]
> >
> > Once again on the SMP list a lock is being used to make a reference count
> > safe. I'd like to re-raise the issue of a safe reference counting
> > fascility.
> >
> > what would be the semantics?
>
> I have refcount.patch :)  What would be nice is to first implement
> atomic_fetchadd() (xadd on 486+, some hack on 386, fetchadd on ia64, similar to
> atomic_add on sparc64, alpha, and powerpc I believe, basically it would add a
> value to a memory location and return the result).  You can then use taht for
> the reference_release (or whatever you call it).  We could also use that to get
> rid of the really bloated debug version that uses a mutex and have a much
> smaller debug version that still uses atomic ops.

The ia64 has a fetchadd instruction which can add a constant to memory,
returning the old value. It is limited to adding only the constants -16.
-8, -4, -1, 1, 4, 8, 16.

-- 
Doug Rabson				Mail:  dfr@nlsystems.com
					Phone: +44 20 8348 6160



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




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