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

Attachment: pgp00000.pgp
Description: PGP signature

Reply via email to