Re: thread_funnel_set?
Re: thread_funnel_set?
- Subject: Re: thread_funnel_set?
- From: Brian Bergstrand <email@hidden>
- Date: Mon, 2 May 2005 09:55:07 -0500
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hey Sam!
On May 2, 2005, at 4:43 AM, Sam Vaughan wrote:
> The funnels are still there to let file systems that aren't re-
> entrant continue to behave the way they did pre-Tiger. If you
> don't set a VFS flag to indicate that you're a re-entrant file
> system, the VFS/VOP interfaces will take the funnel before calling
> your file system entry points.
>
> Should be a handy middle step when porting a 10.3 file system to
> 10.4. Once you're up and running, turn on re-entrancy and watch
> the deadlocks, data corruptions and panics roll in ;-)
Hmmm, the way I've understood it is that when you set the non-
reentrant flag, the VFS creates a mutex on the FS's behalf and then
automatically acquires/releases it before any VFS entry point. There
should be no need for a global kernel funnel, as the kernel protects
it's own data structures.
Time to look at the source!
>
> Sam
>
>
>> Fore pre-Tiger, yes, thread funnels were basically giant locks. There
>> was one for networking and one for everything else in the BSD kernel.
>> I'm surprised that they are still in Tiger, as that is supposed to be
>> one of the big changes in the Tiger kernel: no more funnels. I can
>> only surmise that they are there for some kind of backward
>> compatibility, but since all NKE and FS kext's have to be updated to
>> the kpi's I don't know who that compatibility would be for.
>>
>
Brian Bergstrand
<http://www.classicalguitar.net/brian/> PGP Key ID: 0xB6C7B6A2
-----BEGIN PGP SIGNATURE-----
Version: PGP Desktop 9.0.0 (Build 2001)
iQA/AwUBQnY/TnnR2Fu2x7aiEQJPmACg5JLZyviKZvmLaDDCz1sSzLRj/mkAoI0l
8zGbfOH9wnGFeB9jMgYqKFJe
=vgjV
-----END PGP SIGNATURE-----
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden