Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Sep 2001 16:16:34 -0700 (PDT)
From:      John Baldwin <jhb@FreeBSD.org>
To:        Alfred Perlstein <bright@mu.org>
Cc:        cvs-all@FreeBSD.org, cvs-committers@FreeBSD.org, Julian Elischer <julian@elischer.org>
Subject:   Re: cvs commit: src/sys/kern sys_generic.c
Message-ID:  <XFMail.010921161634.jhb@FreeBSD.org>
In-Reply-To: <20010921180304.I97903@elvis.mu.org>

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

On 21-Sep-01 Alfred Perlstein wrote:
> * Julian Elischer <julian@elischer.org> [010921 17:52] wrote:
>> 
>> 
>> 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)!
> 
> I think John should start passing these diffs by Julian so this
> doesn't result in the same problem of the vm mutex where so many
> people jumped in to "fix" things without consulting me that it had
> to be backed out because I was no longer sure what the hell had
> been done to it.

Fair enough re: review.  All I did in this case was add lock acquire and
releases though.  I didn't move any flags around or change any code
specifically because this is a band-aid fix.

> I'm seeing someone (not me) stepping up to back out this whole mess
> if it snowballs and I think that would be a shame.

Nah, these are minor nits, not major breakages at all.  Backing this out would
be rather dumb.

-- 

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 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?XFMail.010921161634.jhb>