Date: Fri, 21 Sep 2001 17:15:07 -0700 (PDT) From: Julian Elischer <julian@elischer.org> To: John Baldwin <jhb@FreeBSD.org> Cc: cvs-all@FreeBSD.org, cvs-committers@FreeBSD.org Subject: Re: cvs commit: src/sys/kern sys_generic.c Message-ID: <Pine.BSF.4.21.0109211714410.37053-100000@InterJet.elischer.org> In-Reply-To: <XFMail.010921160430.jhb@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Actually there is exactly ONE flag that got mixed.. and you have luckily found it.. On Fri, 21 Sep 2001, John Baldwin wrote: > > On 21-Sep-01 Julian Elischer 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)! > > If you recall our earlier discussion regarding TDF_DEADLKTREAT, you told me you > had split up p_sflag into teh various flags, not p_flag. Actually, it seems > you did exactly what I first feared: you mixed P_* flags and PS_* flags which > had different locking semantics. (That's why p_flag was originally split up > into the p_flag and p_sflag fields for SMPng.) > > -- > > 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?Pine.BSF.4.21.0109211714410.37053-100000>