From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932740AbdBPQGA (ORCPT ); Thu, 16 Feb 2017 11:06:00 -0500 Received: from mx1.redhat.com ([209.132.183.28]:55432 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932295AbdBPQFJ (ORCPT ); Thu, 16 Feb 2017 11:05:09 -0500 From: =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org Cc: Paolo Bonzini , Andrew Jones , Marc Zyngier , Christian Borntraeger , Cornelia Huck , James Hogan , Paul Mackerras , Christoffer Dall Subject: [PATCH 3/5] KVM: optimize kvm_make_all_cpus_request Date: Thu, 16 Feb 2017 17:04:47 +0100 Message-Id: <20170216160449.13094-4-rkrcmar@redhat.com> In-Reply-To: <20170216160449.13094-1-rkrcmar@redhat.com> References: <20170216160449.13094-1-rkrcmar@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Thu, 16 Feb 2017 16:05:10 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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ář --- 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