Commit-ID: 719323dcabc816535c77a109a9d8daac7f626c32 Gitweb: http://git.kernel.org/tip/719323dcabc816535c77a109a9d8daac7f626c32 Author: Sasha Levin <levinsasha928@xxxxxxxxx> AuthorDate: Mon, 30 May 2011 20:27:57 +0300 Committer: Pekka Enberg <penberg@xxxxxxxxxx> CommitDate: Thu, 2 Jun 2011 11:38:08 +0300 kvm tools: Add debug mode to brlock 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@xxxxxxxxx> Signed-off-by: Pekka Enberg <penberg@xxxxxxxxxx> --- tools/kvm/include/kvm/brlock.h | 16 ++++++++++++++++ 1 files changed, 16 insertions(+), 0 deletions(-) diff --git a/tools/kvm/include/kvm/brlock.h b/tools/kvm/include/kvm/brlock.h index 2e2e0f8..bd1d882 100644 --- a/tools/kvm/include/kvm/brlock.h +++ b/tools/kvm/include/kvm/brlock.h @@ -17,9 +17,25 @@ #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 -- To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html