From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sasha Levin Subject: [PATCH 3/4] kvm tools: Add a brlock Date: Sun, 29 May 2011 20:32:27 +0300 Message-ID: <1306690348-23260-3-git-send-email-levinsasha928@gmail.com> References: <1306690348-23260-1-git-send-email-levinsasha928@gmail.com> Cc: avi@redhat.com, kvm@vger.kernel.org, mingo@elte.hu, asias.hejun@gmail.com, gorcunov@gmail.com, prasadjoshi124@gmail.com, Sasha Levin To: penberg@kernel.org Return-path: Received: from mail-ww0-f44.google.com ([74.125.82.44]:47815 "EHLO mail-ww0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754767Ab1E2RdF (ORCPT ); Sun, 29 May 2011 13:33:05 -0400 Received: by wwa36 with SMTP id 36so3267491wwa.1 for ; Sun, 29 May 2011 10:33:04 -0700 (PDT) In-Reply-To: <1306690348-23260-1-git-send-email-levinsasha928@gmail.com> Sender: kvm-owner@vger.kernel.org List-ID: brlock is a lock which is very cheap for reads, but very expensive for writes. This lock will be used when updates are very rare and reads are common. This lock is currently implemented by stopping the guest while performing the updates. We assume that the only threads which read from the locked data are VCPU threads, and the only writer isn't a VCPU thread. Signed-off-by: Sasha Levin --- tools/kvm/include/kvm/brlock.h | 12 ++++++++++++ 1 files changed, 12 insertions(+), 0 deletions(-) create mode 100644 tools/kvm/include/kvm/brlock.h diff --git a/tools/kvm/include/kvm/brlock.h b/tools/kvm/include/kvm/brlock.h new file mode 100644 index 0000000..f192071 --- /dev/null +++ b/tools/kvm/include/kvm/brlock.h @@ -0,0 +1,12 @@ +#ifndef KVM__BRLOCK_H +#define KVM__BRLOCK_H + +#include "kvm/kvm.h" +#include "kvm/barrier.h" + +#define br_read_lock() mb() +#define br_read_unlock() mb() + +#define br_write_lock() kvm__pause() +#define br_write_unlock() kvm__continue() +#endif -- 1.7.5.rc3