Big Kernel Lock
From RTwiki
The Big Kernel Lock is the most annoying lock in the kernel. It was introduced to start with the SMP development of Linux more than 10 years ago. We still have users which rely on it. There has been some effort to push the BKL locking down into the files which (still) expect to be protected by it for whatever reason. This makes it easier to replace it by local locking.
Some effort to remove the BKL locking in various places has already happened. The most prominent work is the removal of the BKL from reiserfs by Frederic Weisbecker. Please add the file(s) you are working on to that page to avoid duplicate effort.
| File(s) | Developer(s) | Start Date | Status | Remarks |
|---|---|---|---|---|
| fs/reiserfs/* | Frederic | 01/05/2009 | Done | git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing.git reiserfs/kill-bkl |
| drivers/char/tty_io.c | Frederic | 08/01/2009 | Pending | |
| arch/x86/kernel/cpuid.c | tglx | 08/13/2009 | Done | Leftover from the BKL pushdown. Protects nothing. (Commit, or...) |
| arch/x86/kernel/msr.c | tglx | 08/13/2009 | Done | Leftover from the BKL pushdown. Protects nothing. (Commit, or...) |
| kernel/pm_qos_params.c | corbet | 08/13/2009 | Done | Leftover from the BKL pushdown. (Commit) |
| fs/squashfs/* | tglx | 08/14/2009 | Pending | Leftover from the BKL pushdown. |
| fs/ubifs/* | tglx | 08/14/2009 | Pending | Leftover from the BKL pushdown. |
| drivers/char/hpet.c | tglx | 08/14/2009 | Pending | Leftover from the BKL pushdown. |
| arch/ia64/ia32/sys_ia32.c arch/mips/kernel/linux32.c arch/parisc/kernel/sys_parisc32.c arch/powerpc/kernel/sys_ppc32.c arch/s390/kernel/compat_linux.c arch/sparc/kernel/sys_sparc32.c arch/x86/ia32/sys_ia32.c | tglx | 08/14/2009 | Pending | Push the BKL into do_sysctl() which leaves us to deal with it in kernel/sysctl.c only. |
| drivers/spi/spidev.c | tglx | 08/14/2009 | Pending | Leftover from the BKL pushdown. |
| drivers/char/mem.c | Frederic | 10/09/2009 | Done | |
| drivers/char/generic_nvram.c drivers/char/nvram.c (partially) | Frederic | 10/09/2009 | Done |
