LOR with filedesc structure and Giant

Kris Kennaway kris at obsecurity.org
Sat Aug 16 01:13:34 PDT 2003


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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20030816/22a39e01/attachment.bin


More information about the freebsd-current mailing list