On 15-May-01 Seigo Tanimura wrote:
> On Mon, 07 May 2001 12:37:22 -0700 (PDT),
>   John Baldwin <[EMAIL PROTECTED]> 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 does not protect this operation:

PROC_LOCK(p);
if (p->p_flag & P_FOO)
   do_something_that_depends_on_FOO_being_set;
PROC_UNLOCK(p);

-- 

John Baldwin <[EMAIL PROTECTED]> -- 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 [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to