Re: thread funnel and sbplio
Re: thread funnel and sbplio
- Subject: Re: thread funnel and sbplio
- From: Brian Bergstrand <email@hidden>
- Date: Mon, 22 Jul 2002 11:41:25 -0500
At 6:09 PM +0200 7/22/02, George Andre wrote:
Kernel ppl,
I'm getting a nasty panic while doing a VOP_GETATTR().
It says that "splbio() not under funnel". Traced that
down to splbio() which checks for the current thread funnel.
I put some debug prints before the VOP_GETATTR() call and
the thread has no funnel held. So what I did was add a:
See below.
thread_funnel_set(kernel_flock,TRUE)
respective
thread_funnel_set(kernel_flock,FALSE) around the VOP_GETATTR()
call, still with the same result...
This should work. Are you sure you aren't making other calls
requiring the kernel funnel after releasing it?
To be noted is that other VOP_ calls, vn_open, vn_rdwr, NDINIT
and namei() work perfectly. What I'm not able to do is get
the attributes for a open, locked vnode, without getting this panic.
Where in your code are you trying to call this. The kernel usually
makes sure that you are under the correct funnel (which is probably
why your other VOP calls work fine). Places where you don't
automatically have the funnel and must acquire it yourself are: 1)
Your kmod start/stop entry points, 2) Any new thread entry point, and
3) any timer callback.
HTH.
PS. Please don't crosspost. Pick one list and send to that. If you
don't get a response, try another list.
--
Brian Bergstrand
<
http://www.classicalguitar.net/brian/> PGP Key ID: 0xB6C7B6A2
There's no way to rule innocent men. The only power any government
has is the power to crack down on criminals. Well, when there aren't
enough criminals, one makes them. One declares so many things to be a
crime that it becomes impossible for men to live without breaking
laws. - Ayn Rand
_______________________________________________
darwin-kernel mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/darwin-kernel
Do not post admin requests to the list. They will be ignored.