]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
kvm tools: Add debug mode to brlock
authorSasha Levin <levinsasha928@gmail.com>
Mon, 30 May 2011 17:27:57 +0000 (20:27 +0300)
committerPekka Enberg <penberg@kernel.org>
Thu, 2 Jun 2011 08:38:08 +0000 (11:38 +0300)
Adds a debug mode which allows to switch the brlock into
a big rwlock.
This can be used to verify we don't end up with a BKL kind
of lock with the current brlock implementation.

Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
tools/kvm/include/kvm/brlock.h

index 2e2e0f80f3a17e1650f7a769f87bee9e31362c03..bd1d882ac0558ced690759d11462d879764f71f5 100644 (file)
 #define barrier()              __asm__ __volatile__("": : :"memory")
 #endif
 
+#ifdef KVM_BRLOCK_DEBUG
+
+#include "kvm/rwsem.h"
+
+DECLARE_RWSEM(brlock_sem);
+
+#define br_read_lock()         down_read(&brlock_sem);
+#define br_read_unlock()       up_read(&brlock_sem);
+
+#define br_write_lock()                down_write(&brlock_sem);
+#define br_write_unlock()      up_write(&brlock_sem);
+
+#else
+
 #define br_read_lock()         barrier()
 #define br_read_unlock()       barrier()
 
 #define br_write_lock()                kvm__pause()
 #define br_write_unlock()      kvm__continue()
 #endif
+
+#endif