Received: by 2002:a25:31c3:0:0:0:0:0 with SMTP id x186csp877556ybx; Fri, 1 Nov 2019 12:44:40 -0700 (PDT) X-Google-Smtp-Source: APXvYqwyTPgCmpv2KHZxl4qS6bGvdjxNaKgnjqWou3E9NCPQtl8aINaFOPx5km1T55N+vfjFRBh7 X-Received: by 2002:aa7:c942:: with SMTP id h2mr15423766edt.238.1572637480449; Fri, 01 Nov 2019 12:44:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1572637480; cv=none; d=google.com; s=arc-20160816; b=U8XgoUjOJWmPLWfL1u0Psb/jYFsO6LoAxMfLBdgyy2tTppr5M20GdhrbOgvgVMSf47 1316wcDwiphjWld7LQOFhmbu5Ra+5laQ1y9S+5E1ldNKS2BTNtP1SVkbHVp/u/wfzzZ7 FDbVEQuJZsiSsLXFB014Q8VPec+/CySdV5/PpgKs0ly1Nej1EEsDm0uHLZO6/1dUfYt3 vIJ1HlvVd0Qd385gH4QWKSnwIG0qHQVet1EIutz5EEg9Dryu0Jy+dp688yCcy03WHW5q Wjk2TxNnRHTwguiU17wGtzE/wDOQHgf9JY36mcwRyyOHOO3I3VdLKOKOgrq47JlDW/UN lTyA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=HBU5ywzGh6TtInbH1iFPI2M+KK4ROc/yEe/OrFQ65rA=; b=Gf7epvqvmjHik6VF7QFzi8ekLsrDwKmVRu0BzXexHcfJBYQrpQmBMYdgqC/zD5f5bf 5EGGfLnb+SZxIl749/YGLDqqddQ4q5/k1zhZBmMPy4bw+DTWVBAKRxvkLwsuFeqfaPre nTrkCY9BUpB0JQ/nEcnU2mJEg+otk79VZliBVKnKfoRxZsNtppxUV7vblbmpy9MXCFBv jqFeKue1zdSIy8vLDp0hVQ7i9o95rKG9zQIpGDeN83hMjDGErQ/6c+cQhclbAsFlDbFe yCzQF2kxuX9lAixvQsQzm8BebnrNr1WnkflEQVllkhvepR+SrjIe+p38Zs8+ZChX9Y50 cIoQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=G5s2o+qE; 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=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n9si1232530ejz.3.2019.11.01.12.44.15; Fri, 01 Nov 2019 12:44:40 -0700 (PDT) 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=pass header.i=@google.com header.s=20161025 header.b=G5s2o+qE; 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=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727064AbfKATnI (ORCPT + 99 others); Fri, 1 Nov 2019 15:43:08 -0400 Received: from mail-il1-f196.google.com ([209.85.166.196]:43152 "EHLO mail-il1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726477AbfKATnH (ORCPT ); Fri, 1 Nov 2019 15:43:07 -0400 Received: by mail-il1-f196.google.com with SMTP id j2so7494769ilc.10 for ; Fri, 01 Nov 2019 12:43:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=HBU5ywzGh6TtInbH1iFPI2M+KK4ROc/yEe/OrFQ65rA=; b=G5s2o+qE2yN4oKhlwwkVbARlGZto28NOBDCB/4Bf27tnuwQVZuD4+GLXOvlQVXRwh8 j2sFShbZxuqJMXNHrylwRfk2Q6IQn0xQdmAPot0eqigrBsuRil45800MGX1uWt5k3pAN Mmmw2qr68e1SucxTswYSKojebkZ7VWTrDTSH7P9MAc004URnggyAth3AX84S2UusktA2 lhFJCwMUjV3/guf3shRTwmovJnapC5wyoGctgzU0DbWRpQRe5Cy3U7wczZd5myfeQ8TZ 1R+qufv4eJ7LKxy7h8xO5jaAbLMw2JYV4YpvfTbjWhwszktbba1KnD5PR84FdmiU8qnE O21g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=HBU5ywzGh6TtInbH1iFPI2M+KK4ROc/yEe/OrFQ65rA=; b=iVcbCb2qMIvTYg3MURbEj2e+U/Sj8KDHFeWHi6bWVMow8KJQ1173mEC0LyBprHrKu5 gY81CQQEM/0bzSTwXoX3HaN/12AcRmhKEtAP+IniBL11CuXkC1fPUPn9hK/xXExNn0PB AD6UWHuiP5NzYtbgsDlbvS9s/+AcylD8kDSeyy+WDa1cKrs42H4UOA2BwHSocpWyOq1S jS8VTTGJfAHyQlrvJ5n2JagYy60tzJBq/cn8KOeWUWRjPOr83nVRR9T1fYSCW+VbYkJQ m70zwB+xx8iF1hOOHAl0UQyWiSnZH/ckVf3b1Gq5cA8Rj0kBPuNQpKY/l9NiFZHgYYhO ohkA== X-Gm-Message-State: APjAAAWw/cP1Q/hLpQ5A1fBRDnSVl0xJi1XwOL8sGUHIB7eXgOADBal7 qRTI9pSlVZd/kLK+C2y3gZozKlczDGke8QyBXuCaBQ== X-Received: by 2002:a92:de49:: with SMTP id e9mr11293064ilr.108.1572637386283; Fri, 01 Nov 2019 12:43:06 -0700 (PDT) MIME-Version: 1.0 References: <157262960837.2838.17520432516398899751.stgit@naples-babu.amd.com> <157262961597.2838.16953618909905259198.stgit@naples-babu.amd.com> In-Reply-To: From: Jim Mattson Date: Fri, 1 Nov 2019 12:42:55 -0700 Message-ID: Subject: Re: [PATCH 1/4] kvm: x86: Dont set UMIP feature bit unconditionally To: "Moger, Babu" Cc: "tglx@linutronix.de" , "mingo@redhat.com" , "bp@alien8.de" , "hpa@zytor.com" , "pbonzini@redhat.com" , "rkrcmar@redhat.com" , "sean.j.christopherson@intel.com" , "vkuznets@redhat.com" , "wanpengli@tencent.com" , "x86@kernel.org" , "joro@8bytes.org" , "luto@kernel.org" , "zohar@linux.ibm.com" , "yamada.masahiro@socionext.com" , "nayna@linux.ibm.com" , "linux-kernel@vger.kernel.org" , "kvm@vger.kernel.org" Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Nov 1, 2019 at 12:39 PM Moger, Babu wrote: > > > > On 11/1/19 1:35 PM, Jim Mattson wrote: > > On Fri, Nov 1, 2019 at 10:33 AM Moger, Babu wrote: > >> > >> The UMIP (User-Mode Instruction Prevention) feature bit should be > >> set if the emulation (kvm_x86_ops->umip_emulated) is supported > >> which is done already. > >> > >> Remove the unconditional setting of this bit. > >> > >> Fixes: ae3e61e1c28338d0 ("KVM: x86: add support for UMIP") > >> > >> Signed-off-by: Babu Moger > >> --- > >> arch/x86/kvm/cpuid.c | 2 +- > >> 1 file changed, 1 insertion(+), 1 deletion(-) > >> > >> diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c > >> index f68c0c753c38..5b81ba5ad428 100644 > >> --- a/arch/x86/kvm/cpuid.c > >> +++ b/arch/x86/kvm/cpuid.c > >> @@ -364,7 +364,7 @@ static inline void do_cpuid_7_mask(struct kvm_cpuid_entry2 *entry, int index) > >> /* cpuid 7.0.ecx*/ > >> const u32 kvm_cpuid_7_0_ecx_x86_features = > >> F(AVX512VBMI) | F(LA57) | F(PKU) | 0 /*OSPKE*/ | F(RDPID) | > >> - F(AVX512_VPOPCNTDQ) | F(UMIP) | F(AVX512_VBMI2) | F(GFNI) | > >> + F(AVX512_VPOPCNTDQ) | F(AVX512_VBMI2) | F(GFNI) | > >> F(VAES) | F(VPCLMULQDQ) | F(AVX512_VNNI) | F(AVX512_BITALG) | > >> F(CLDEMOTE) | F(MOVDIRI) | F(MOVDIR64B) | 0 /*WAITPKG*/; > >> > > > > This isn't unconditional. This is masked by the features on the boot > > CPU. Since UMIP can be virtualized (without emulation) on CPUs that > > support UMIP, you should leave this alone. > > > > There is some inconstancy here. > > static inline int __do_cpuid_ent(struct kvm_cpuid_entry2 *entry, u32 > > unsigned f_umip = kvm_x86_ops->umip_emulated() ? F(UMIP) : 0; > ... > > case 7: { > .. > entry->ecx |= f_umip; > .. > } > > and > static bool svm_umip_emulated(void) > { > return false; > } > > static inline bool vmx_umip_emulated(void) > { > return vmcs_config.cpu_based_2nd_exec_ctrl & > SECONDARY_EXEC_DESC; > } > > > It appears that intention was to enable the UMIP if SVM or VMX support > umip emulation. But that is not how it is working now. Now it is enabled > if boot CPU supports UMIP. No. The code enumerates UMIP in the guest if *either* it can be virtualized (i.e. the host supports it natively), *or* it can be emulated.