Received: by 10.223.185.116 with SMTP id b49csp1185473wrg; Wed, 21 Feb 2018 13:44:01 -0800 (PST) X-Google-Smtp-Source: AH8x225vCh2OqcPPtt5ILQh12P9xzIdw/rTar9AIG/aeFWLWECb7SQ9epptE7u6H2DK3RtAsaALz X-Received: by 10.98.73.140 with SMTP id r12mr4578500pfi.229.1519249441472; Wed, 21 Feb 2018 13:44:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519249441; cv=none; d=google.com; s=arc-20160816; b=ggSbrcp/jAyssZ7HRMIgpCJsfZtVTH4Bm3bmnkXF6RjFixc73X5O9eQGrenMyMFh6d bM85jUEcgKs3Fb1Yu7IRziMY6z9E3wJe0wfh4MNY73DAzGlIugsKewzg2dFfLuccpddm RRQ33jdsewypwNhl6AOni3GdXOfkWQLyzzW2zMYXhTUBXqvKVDy6Tc2iWgay6C16tSGz OwREF2XhpwB8kuj+yO6pOLUfjS4ZQiVpxsYr+FJsDMGBeEI6RWPxSt8+xaDiamXZyd/E rUiuwYVFbvqRJy5RrJCzHvpcIV/IYWASvT0/RDKKaX7Zv5/ukQN2VvxKKj33JHYwLKJs xxFA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=rB3/BoHzkW3FyPo4r06A/oZBN8bcCbpXphlnntmyFFA=; b=V9Q/we7ZhprQmBtDoZ+DOdFg7OProls9E+SaOLb4dDyGjnXcvsfAnFLDhDC+cZcOId 7dMgjW5h3/8j3c88B8hbdkEBF1hodjBx6QcrnSRS2GrCWzZGW8Wlm+jCYuFhDnTsNn9S YylpbGsKUbBCDAHYwHvOuNxMSdufSWuJfRsFiVSjXRF+RpzYu69rLVaCnzkx7lN+RhOe aBNFir1NoRAoXZaQmRVqyDOkurCQXBaWa6mg9WwGBV2RGvg/xZVsxl+SNConqCA6FXeY QutVQeVlONEYDGFOqFnlMksRqbydkevqpBWqatEzEiGiGMlqBleAuLRumumK+Kdx7A8E pHuA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=JPaLJ5od; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d15si1888743pgv.822.2018.02.21.13.43.47; Wed, 21 Feb 2018 13:44:01 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=JPaLJ5od; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751541AbeBUVl4 (ORCPT + 99 others); Wed, 21 Feb 2018 16:41:56 -0500 Received: from mail-wm0-f68.google.com ([74.125.82.68]:33354 "EHLO mail-wm0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750805AbeBUVls (ORCPT ); Wed, 21 Feb 2018 16:41:48 -0500 Received: by mail-wm0-f68.google.com with SMTP id s206so2279636wme.0; Wed, 21 Feb 2018 13:41:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=rB3/BoHzkW3FyPo4r06A/oZBN8bcCbpXphlnntmyFFA=; b=JPaLJ5odUVu1YGf69O5FJkGvu7qOoAG7sAifvGoAGY1IgVkNSQIAlKT6P7D/WD0CPu WKJd2Z6BCPuUQ0vannUIDLRkZYTek1tmcemIhjwMQJVuBu/uA9GobL9H+Dl5fNqnt2oK oo52QLKFR3GhohQNVXBW0yWNR+OJiR285HH1/tLPiqkLdmphnUJIMOR/6vL9Jx4aYDRV /EMBJU5bHu5CWCfOi8PKTHo5rQo/rPGQ2pUwPhI/T5hiYNgT/IdYl58rBaAqfxAZj/uS zAUZPgATbrWttHwOnqRqsY8dljbmM6g9IOLaFAfDgGOLilzdGDPh6plhDQuBOJCpHZ3g OjmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=rB3/BoHzkW3FyPo4r06A/oZBN8bcCbpXphlnntmyFFA=; b=AOQSlEBWJ9MW/VZ8xJZNQwn1o6jBp5xFjcf+gtW37QKLpc3IoOzO3Sgl7RdioKJtQi XhyLVDaQGVk748ae9GdVDmgmX+orwDiNKr9J4WGARiNai7LmShb1KYRCGUvavdiijgBl Xp646cZv7q5Nlqrgg8NJPna5exkLAJqUS9UBoPFoqGV1JJ+I6vZlitanw+696ZLUelg7 1lI+P1fDb4oJeX1HP6uKAvmBxZpqGaxt5+8m00DLooBZ3emdsphBtwvNmd0Ioha1RAOv vvq+eEinnWAHzI8IYtyNbuwHXGlg//vx9ToRu+JUbrNt7sn1oKZqpZCyVlem99d4rzSZ vGow== X-Gm-Message-State: APf1xPB3xAL6WAdfWOBOtf9iSaUlMO66Vv6P37TIXP8UkI7Tv8Bei8k+ xuDGZp1cYH00jaEQhg0EJRgs16RT X-Received: by 10.28.178.147 with SMTP id b141mr2963662wmf.87.1519249306807; Wed, 21 Feb 2018 13:41:46 -0800 (PST) Received: from 640k.localdomain.localdomain (94-36-191-219.adsl-ull.clienti.tiscali.it. [94.36.191.219]) by smtp.gmail.com with ESMTPSA id j132sm2827364wmd.27.2018.02.21.13.41.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 21 Feb 2018 13:41:46 -0800 (PST) From: Paolo Bonzini To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org Cc: x86@kernel.org, =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= , KarimAllah Ahmed , David Woodhouse , Jim Mattson , Thomas Gleixner , Ingo Molnar , stable@vger.kernel.org Subject: [PATCH 3/3] KVM: VMX: mark RDMSR path as unlikely Date: Wed, 21 Feb 2018 22:41:37 +0100 Message-Id: <1519249297-73718-4-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1519249297-73718-1-git-send-email-pbonzini@redhat.com> References: <1519249297-73718-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org vmx_vcpu_run and svm_vcpu_run are large functions, and this can actually make a substantial cycle difference by keeping the fast path contiguous in memory. Without it, the retpoline guest/retpoline host case is about 50 cycles slower. Cc: x86@kernel.org Cc: Radim Krčmář Cc: KarimAllah Ahmed Cc: David Woodhouse Cc: Jim Mattson Cc: Thomas Gleixner Cc: Ingo Molnar Cc: stable@vger.kernel.org Signed-off-by: Paolo Bonzini --- arch/x86/kvm/svm.c | 2 +- arch/x86/kvm/vmx.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c index 1598beeda11c..24c9521ebc24 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c @@ -5465,7 +5465,7 @@ static void svm_vcpu_run(struct kvm_vcpu *vcpu) * If the L02 MSR bitmap does not intercept the MSR, then we need to * save it. */ - if (!msr_write_intercepted(vcpu, MSR_IA32_SPEC_CTRL)) + if (unlikely(!msr_write_intercepted(vcpu, MSR_IA32_SPEC_CTRL))) svm->spec_ctrl = native_read_msr(MSR_IA32_SPEC_CTRL); if (svm->spec_ctrl) diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c index af89d377681d..e13fd2a833c4 100644 --- a/arch/x86/kvm/vmx.c +++ b/arch/x86/kvm/vmx.c @@ -9589,7 +9589,7 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu) * If the L02 MSR bitmap does not intercept the MSR, then we need to * save it. */ - if (!msr_write_intercepted(vcpu, MSR_IA32_SPEC_CTRL)) + if (unlikely(!msr_write_intercepted(vcpu, MSR_IA32_SPEC_CTRL))) vmx->spec_ctrl = native_read_msr(MSR_IA32_SPEC_CTRL); if (vmx->spec_ctrl) -- 1.8.3.1