Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Sep 2001 16:39:40 -0700 (PDT)
From:      Julian Elischer <julian@elischer.org>
To:        John Baldwin <jhb@FreeBSD.org>
Cc:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/kern sys_generic.c
Message-ID:  <Pine.BSF.4.21.0109211635160.37053-100000@InterJet.elischer.org>
In-Reply-To: <200109212206.f8LM6MF13902@freefall.freebsd.org>

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


On Fri, 21 Sep 2001, John Baldwin wrote:

> jhb         2001/09/21 15:06:22 PDT
> 
>   Modified files:
>     sys/kern             sys_generic.c 
>   Log:
>   The P_SELECT flag was moved from p->p_flag to td->td_flags, but p_flag
>   was locked by the proc lock and td_flags is locked by the sched_lock.
>   The places that read, set, and cleared TDF_SELECT weren't updated, so they
>   read and modified td_flags w/o holding the sched_lock, meaning that they
>   could corrupt the per-thread flags field.  As an immediate band-aid,
>   grab sched_lock while reading and manipulating td_flags in relation to
>   TDF_SELECT.  This will probably be cleaned up some later on.


reading this again I think the clue is:

"and td_flags is locked by the sched_lock"

I don't know how this can be true unless it's been done recently..
Whatever locking was used for p_flag was left alone when I change it to 
td_flags in some places, so if p_flag was locked by the proc lock then
td_flags should also be locked by it..  (I didn't change any occurances of 
the prock lock to be occurances of the sched lock)!


>   
>   Revision  Changes    Path
>   1.82      +21 -3     src/sys/kern/sys_generic.c
> 
> 


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" 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.21.0109211635160.37053-100000>