Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 14 May 2001 23:20:56 -0700
From:      Alfred Perlstein <bright@wintelcom.net>
To:        Seigo Tanimura <tanimura@r.dl.itc.u-tokyo.ac.jp>
Cc:        jhb@FreeBSD.ORG, current@FreeBSD.ORG
Subject:   Re: atomic operation of flags (was: RE: select(2) converted to use a condition variable, and optimis)
Message-ID:  <20010514232056.O2009@fw.wintelcom.net>
In-Reply-To: <200105150614.f4F6E0P53295@rina.r.dl.itc.u-tokyo.ac.jp>; from tanimura@r.dl.itc.u-tokyo.ac.jp on Tue, May 15, 2001 at 03:14:00PM %2B0900
References:  <200105060731.f467V4g13184@silver.carrots.uucp.r.dl.itc.u-tokyo.ac.jp> <XFMail.010507123722.jhb@FreeBSD.org> <200105150614.f4F6E0P53295@rina.r.dl.itc.u-tokyo.ac.jp>

next in thread | previous in thread | raw e-mail | index | archive | help
* Seigo Tanimura <tanimura@r.dl.itc.u-tokyo.ac.jp> [010514 23:14] wrote:
> On Mon, 07 May 2001 12:37:22 -0700 (PDT),
>   John Baldwin <jhb@FreeBSD.org> said:
> 
> John> You need the lock when clearing the bit in p_flag.  That is why the proc locks
> John> are there, so all those proc locks need to stay.  When you clear a bit, you are
> John> writing all the bits, so you need to ensure that you can atomically
> John> read/modify/write all the bits in p_flag, hence the need for the proc lock.
> 
> As we now have a set of atomic operation functions in
> machine/atomic.h, why do we not use them to read, modify and write
> p_flag atomically? Is that more expensive than protecting by PROC_LOCK
> and PROC_UNLOCK?

That may be useful as an optimization, however afaik PROC_LOCK covers
more than just the flags, if we used atomic ops for the flags and
PROC_LOCK for the non-flags stuff it could cause a lot more overhead.

-- 
-Alfred Perlstein - [alfred@freebsd.org]
Daemon News Magazine in your snail-mail! http://magazine.daemonnews.org/

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?20010514232056.O2009>