]> Zhao Yanbai Git Server - minix.git/commit
SMP - Big kernel lock (BKL)
authorTomas Hruby <tom@minix3.org>
Wed, 15 Sep 2010 14:10:03 +0000 (14:10 +0000)
committerTomas Hruby <tom@minix3.org>
Wed, 15 Sep 2010 14:10:03 +0000 (14:10 +0000)
commit6aa26565e6ced67c7d1f955432ec0675734fdab3
tree7592a6678ea3d214bcf742158d70cf49460e9da0
parenta42ab504a02c97153c442f12b8be2a1f8f459a75
SMP - Big kernel lock (BKL)

- to isolate execution inside kernel we use a big kernel lock
  implemented as a spinlock

- the lock is acquired asap after entering kernel mode and released as
  late as possible. Only one CPU as a time can execute the core kernel
  code

- measurement son real hw show that the overhead of this lock is close
  to 0% of kernel time for the currnet system

- the overhead of this lock may be as high as 45% of kernel time in
  virtual machines depending on the ratio between physical CPUs
  available and emulated CPUs. The performance degradation is
  significant
kernel/arch/i386/apic.c
kernel/arch/i386/arch_clock.c
kernel/arch/i386/arch_smp.c
kernel/arch/i386/klib.S
kernel/main.c
kernel/smp.c
kernel/smp.h
kernel/spinlock.h