Another dumb question about Voluntary Kernel Preemption Patch

Timothy Miller
2004-07-21T21:12:28Z

Lee Revell wrote:

> There are still a few areas that need work, ioctl gives me problems, but
> the latest 2.6 kernels are quite good. If you look at the 'clean'
> version of the voluntary kernel preemption patch it is pretty small. My
> understanding is that the kernel is already preemptible anytime that a
> spin lock (including the BKL) is not held, and that the voluntary kernel
> preemption patch adds some scheduling points in places where it is safe
> to sleep, but preemption is disabled because we are holding the BKL, and
> that the number of these should approach zero as the kernel is improved
> anyway.

That's confusing to me. It was my understanding that the BKL is used to
completely lock down the kernel so that no other CPU can have a process
get into the kernel... something like how SMP was done under 2.0.

So, if you sleep during a BKL, wouldn't that imply that nothing else
would be allowed to enter the kernel until after the kernel thread that
took the lock wakes up and releases the lock?