On Sat, Aug 16, 2003 at 09:12:27AM +0200, Poul-Henning Kamp wrote: > In message <[EMAIL PROTECTED]>, Robe > rt Watson writes: > > > >On Fri, 15 Aug 2003, Kris Kennaway wrote: > > > >> The problem seems to be due to select() being called on the /dev/null > >> device, and it is holding the filedesc lock when it reaches > >> PICKUP_GIANT() in spec_poll. > > > >Yeah, this is pretty much the same issue you've been bumping into for a > >bit -- we hold filedesc lock over select(), which means every object we > >poll can't grab a lock that either comes before the file descriptor lockin > >the lock order, or that might sleep. > > Doesn't this effectively doom any attempt at getting rid af Giant > from below ?
It seems like the locking strategy is wrong (see other LORs in select() and poll()). Alfred said he had fixed it, but it was backed out: http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/kern/kern_descrip.c?rev=1.191&content-type=text/x-cvsweb-markup As I seem to recall, his strategy of fixing the problem itself caused other problems, though (which was why it was backed out). Kris
pgp00000.pgp
Description: PGP signature