From: Joe Korty o Fix lockmeter under preemption (i386 only) o Fix compile warnings in kernel/lockmeter.c arch/i386/Kconfig | 2 +- include/asm-i386/spinlock.h | 2 ++ kernel/lockmeter.c | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff -puN arch/i386/Kconfig~lockmeter-preemption-fixes arch/i386/Kconfig --- 25/arch/i386/Kconfig~lockmeter-preemption-fixes 2003-12-24 00:06:08.000000000 -0800 +++ 25-akpm/arch/i386/Kconfig 2003-12-24 00:06:08.000000000 -0800 @@ -1257,7 +1257,7 @@ config DEBUG_INFO config LOCKMETER bool "Kernel lock metering" - depends on SMP && !PREEMPT + depends on SMP help Say Y to enable kernel lock metering, which adds overhead to SMP locks, but allows you to see various statistics using the lockstat command. diff -puN include/asm-i386/spinlock.h~lockmeter-preemption-fixes include/asm-i386/spinlock.h --- 25/include/asm-i386/spinlock.h~lockmeter-preemption-fixes 2003-12-24 00:06:08.000000000 -0800 +++ 25-akpm/include/asm-i386/spinlock.h 2003-12-24 00:06:08.000000000 -0800 @@ -270,10 +270,12 @@ repeat: return 0; slow_path: + preempt_disable(); _metered_spin_lock(lock); if (atomic_dec_and_test(atomic)) return 1; _metered_spin_unlock(lock); + preempt_enable(); return 0; } diff -puN kernel/lockmeter.c~lockmeter-preemption-fixes kernel/lockmeter.c --- 25/kernel/lockmeter.c~lockmeter-preemption-fixes 2003-12-24 00:06:08.000000000 -0800 +++ 25-akpm/kernel/lockmeter.c 2003-12-24 00:06:08.000000000 -0800 @@ -23,6 +23,7 @@ #include #include #include +#include #include #include _