minix/kernel/arch/i386
Tomas Hruby 6aa26565e6 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
2010-09-15 14:10:03 +00:00
..
include SMP - We boot APs 2010-09-15 14:09:52 +00:00
acpi.c SMP - We boot APs 2010-09-15 14:09:52 +00:00
acpi.h SMP - We boot APs 2010-09-15 14:09:52 +00:00
apic_asm.h APIC mode uses IO APICs 2010-09-07 07:18:11 +00:00
apic_asm.S SMP - We boot APs 2010-09-15 14:09:52 +00:00
apic.c SMP - Big kernel lock (BKL) 2010-09-15 14:10:03 +00:00
apic.h SMP - We boot APs 2010-09-15 14:09:52 +00:00
arch_clock.c SMP - Big kernel lock (BKL) 2010-09-15 14:10:03 +00:00
arch_do_vmctl.c SMP - Cpu local variables 2010-09-15 14:09:46 +00:00
arch_smp.c SMP - Big kernel lock (BKL) 2010-09-15 14:10:03 +00:00
arch_system.c SMP - We boot APs 2010-09-15 14:09:52 +00:00
arch_watchdog.c SMP - We boot APs 2010-09-15 14:09:52 +00:00
breakpoints.c arch proto.h renamed to arch_proto.h 2010-09-15 14:09:36 +00:00
debugreg.h Fix types in debug register functions 2010-04-28 08:35:05 +00:00
debugreg.S Macros for symbols used in both ASM and C 2010-08-17 16:44:07 +00:00
do_int86.c arch proto.h renamed to arch_proto.h 2010-09-15 14:09:36 +00:00
do_iopenable.c arch proto.h renamed to arch_proto.h 2010-09-15 14:09:36 +00:00
do_readbios.c Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00
do_sdevio.c arch proto.h renamed to arch_proto.h 2010-09-15 14:09:36 +00:00
exception.c SMP - Cpu local variables 2010-09-15 14:09:46 +00:00
glo.h SMP - We boot APs 2010-09-15 14:09:52 +00:00
i8259.c arch proto.h renamed to arch_proto.h 2010-09-15 14:09:36 +00:00
io_inb.S Macros for symbols used in both ASM and C 2010-08-17 16:44:07 +00:00
io_inl.S Macros for symbols used in both ASM and C 2010-08-17 16:44:07 +00:00
io_intr.S Macros for symbols used in both ASM and C 2010-08-17 16:44:07 +00:00
io_inw.S Macros for symbols used in both ASM and C 2010-08-17 16:44:07 +00:00
io_outb.S Macros for symbols used in both ASM and C 2010-08-17 16:44:07 +00:00
io_outl.S Macros for symbols used in both ASM and C 2010-08-17 16:44:07 +00:00
io_outw.S Macros for symbols used in both ASM and C 2010-08-17 16:44:07 +00:00
kernel.lds Buildsystem changes for GCC 2010-05-19 13:24:15 +00:00
klib.S SMP - Big kernel lock (BKL) 2010-09-15 14:10:03 +00:00
klib16.S Macros for symbols used in both ASM and C 2010-08-17 16:44:07 +00:00
Makefile.inc SMP - We boot APs 2010-09-15 14:09:52 +00:00
memory.c SMP - We boot APs 2010-09-15 14:09:52 +00:00
mpx.S SMP - We boot APs 2010-09-15 14:09:52 +00:00
multiboot.h Multiboot support (contributed by Feiran "Fam" Zheng); 2010-07-23 14:24:34 +00:00
multiboot.S Macros for symbols used in both ASM and C 2010-08-17 16:44:07 +00:00
oxpcie.c kernel: oxpcie serial card support. 2010-05-19 10:00:02 +00:00
oxpcie.h kernel: oxpcie serial card support. 2010-05-19 10:00:02 +00:00
pre_init.c arch proto.h renamed to arch_proto.h 2010-09-15 14:09:36 +00:00
protect.c SMP - We boot APs 2010-09-15 14:09:52 +00:00
sconst.h SMP - We boot APs 2010-09-15 14:09:52 +00:00
serial.h kernel: oxpcie serial card support. 2010-05-19 10:00:02 +00:00
trampoline.S SMP - Kernel is loaded above 1M by default 2010-09-15 14:10:00 +00:00