[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20170216160449.13094-4-rkrcmar@redhat.com>
Date: Thu, 16 Feb 2017 17:04:47 +0100
From: Radim Krčmář <rkrcmar@...hat.com>
To: linux-kernel@...r.kernel.org, kvm@...r.kernel.org
Cc: Paolo Bonzini <pbonzini@...hat.com>,
Andrew Jones <drjones@...hat.com>,
Marc Zyngier <marc.zyngier@....com>,
Christian Borntraeger <borntraeger@...ibm.com>,
Cornelia Huck <cornelia.huck@...ibm.com>,
James Hogan <james.hogan@...tec.com>,
Paul Mackerras <paulus@...abs.org>,
Christoffer Dall <christoffer.dall@...aro.org>
Subject: [PATCH 3/5] KVM: optimize kvm_make_all_cpus_request
Use __kvm_request_set to avoid repeated use of wmb().
kvm_make_all_cpus_request is also a candidate for renaming.
Signed-off-by: Radim Krčmář <rkrcmar@...hat.com>
---
virt/kvm/kvm_main.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 934f135c0d23..2250920ec965 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -177,8 +177,12 @@ bool kvm_make_all_cpus_request(struct kvm *kvm, unsigned int req)
zalloc_cpumask_var(&cpus, GFP_ATOMIC);
me = get_cpu();
+
+ /* Paired with the smp_mb__after_atomic in kvm_request_test_and_clear. */
+ smp_wmb();
+
kvm_for_each_vcpu(i, vcpu, kvm) {
- kvm_request_set(req, vcpu);
+ __kvm_request_set(req, vcpu);
cpu = vcpu->cpu;
/* Set ->requests bit before we read ->mode. */
--
2.11.1
Powered by blists - more mailing lists