Re: LOR with filedesc structure and Giant

From: Kris Kennaway <kris_at_obsecurity.org>
Date: Sat, 16 Aug 2003 01:13:30 -0700
On Sat, Aug 16, 2003 at 09:12:27AM +0200, Poul-Henning Kamp wrote:
> In message <Pine.NEB.3.96L.1030815225914.97011A-100000_at_fledge.watson.org>, 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


Received on Fri Aug 15 2003 - 23:13:33 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:19 UTC