The scheduler will be helped most by getting rid of the BKL altogether. We are
in reaching distance of that now ...
CONFIG_BKL would really just elongate the migration period, unnecessarily so.
Once that state is achived we can just get rid of the BKL and mass-push
per-driver mutexes into those remaining drivers - in a possibly scripted way.
Something like:
foo-driver.c
DEFINE_MUTEX(foo_mutex);
foo_ioctl()
{
mutex_lock(&foo_mutex);
...
mutex_unlock(&foo_mutex);
}
foo_open()
{
mutex_lock(&foo_mutex);
...
mutex_unlock(&foo_mutex);
}
This could be done all automated for a hundred old drivers if need to be.
There would be no bkl_ioctl's left.
That, even if it looks somewhat coarse is still better than having _yet
another_ 'temporary transition'. The Big Kernel Lock was supposed to be
transitionary to begin with. It's been 10+ years and counting :-)
Ingo
--