Date: Sat, 20 Jan 2001 04:48:03 +1100 (EST) From: Bruce Evans <bde@zeta.org.au> To: John Baldwin <jhb@FreeBSD.ORG> Cc: Poul-Henning Kamp <phk@critter.freebsd.dk>, peter@netplex.com.au, bright@wintelcom.net, current@FreeBSD.ORG, arch@FreeBSD.ORG, rjesup@wgate.com, Soren Schmidt <sos@freebsd.dk> Subject: Re: HEADS-UP: await/asleep removal imminent Message-ID: <Pine.BSF.4.21.0101200438450.25410-100000@besplex.bde.org> In-Reply-To: <XFMail.010119004112.jhb@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 19 Jan 2001, John Baldwin wrote: > rummage together a vinum stripe to build on or some such. However, after > thinking some more, even in a preemptive kernel, Giant will protect against the > *strategy() race you brought up, because we won't get a context switch in > kernel mode that releases Giant until either we exit the kernel or we call > tsleep(). The interrupt handler will block on Giant when its thread runs, so > it won't run until the top half finishes and returns. Does that make sense? This would be a bug in the preemptive kernel. To work as well as old kernels, everything that was not run because of a lock must be run when the lock is released. This corresponds to splx() running all software interrupt handlers that became runnable. Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" 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.0101200438450.25410-100000>