From owner-cvs-all Fri Sep 21 15:51:57 2001 Delivered-To: cvs-all@freebsd.org Received: from InterJet.elischer.org (c421509-a.pinol1.sfba.home.com [24.7.86.9]) by hub.freebsd.org (Postfix) with ESMTP id D1B3637B41C; Fri, 21 Sep 2001 15:51:21 -0700 (PDT) Received: from localhost (localhost.elischer.org [127.0.0.1]) by InterJet.elischer.org (8.9.1a/8.9.1) with ESMTP id QAA38229; Fri, 21 Sep 2001 16:39:40 -0700 (PDT) Date: Fri, 21 Sep 2001 16:39:40 -0700 (PDT) From: Julian Elischer To: John Baldwin Cc: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/kern sys_generic.c In-Reply-To: <200109212206.f8LM6MF13902@freefall.freebsd.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG 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