Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 16 Aug 2003 22:18:43 +0200
From:      "Poul-Henning Kamp" <phk@phk.freebsd.dk>
To:        Robert Watson <rwatson@freebsd.org>
Cc:        Kris Kennaway <kris@obsecurity.org>
Subject:   Re: LOR with filedesc structure and Giant 
Message-ID:  <22299.1061065123@critter.freebsd.dk>
In-Reply-To: Your message of "Sat, 16 Aug 2003 10:25:57 EDT." <Pine.NEB.3.96L.1030816101518.83755D-100000@fledge.watson.org> 

next in thread | previous in thread | raw e-mail | index | archive | help
In message <Pine.NEB.3.96L.1030816101518.83755D-100000@fledge.watson.org>, Robe
rt Watson writes:
>
>On Sat, 16 Aug 2003, Poul-Henning Kamp 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 ? 
>
>I have mixed feelings about our current strategy.  [...]

Well, I was thinking more of the work I have been doing trying to
put drivers and GEOM outside Giant ("starting from the bottom").

At one point we have to say "Well, the locks we have above are solid,
but we need to drop Giant below here" but if Witness sees a
PICKUP_GIANT() as an acquisition of Giant, rather than as a
resumption of Giant, this clearly does not work.

-- 
Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk@FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?22299.1061065123>