From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 71A53C433EF for ; Thu, 14 Jul 2022 10:05:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238024AbiGNKFM (ORCPT ); Thu, 14 Jul 2022 06:05:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45348 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237954AbiGNKFF (ORCPT ); Thu, 14 Jul 2022 06:05:05 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 3C05711802 for ; Thu, 14 Jul 2022 03:05:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1657793103; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=pZukeJfWxGjsKWF/4S6GKDIHJ91TQp/gFtK06z9SPK0=; b=FTfWz+VH6o9Cznzg05eyYCLDqZYc4Dqvy05+FXLndyZGMShAbZtRljKTYHeJWqzMwfFNON f5KFbkDZoI+nUVAMi/E/GXleTiZt48SNegv7c0nHBaaaCCCuIEM9gBiCqAcjr+qNu6y9AE 7W5esVOnbIKijWCblB3Or6eMqfuIZq8= Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-471-fHiJV7-9MEicobO3qgbJmg-1; Thu, 14 Jul 2022 06:05:02 -0400 X-MC-Unique: fHiJV7-9MEicobO3qgbJmg-1 Received: by mail-wm1-f72.google.com with SMTP id z20-20020a1c4c14000000b003a3020da654so355143wmf.5 for ; Thu, 14 Jul 2022 03:05:01 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=pZukeJfWxGjsKWF/4S6GKDIHJ91TQp/gFtK06z9SPK0=; b=wYynDXgHfQD/d/144ajUe9q8OJmpkysnB/V9VxbrqJjBtenbytA8yvynKFp0inm+Rp 07JTLkEpd42fY2bd9CYxDC9Gk4grazXnhGq6pbgx6eqfq2EuzEuQa77fPy7GLoHXBv3q XCqCgdyovdv9JWaxTRYag3cGk7ql6TBqYADvv6xPBhkcUD5LGBMvNtycUAbgiqlns7zT nG7OqlkeQbX7vTry5WyVNPAhTkopNwDi591ZiuhJhgAecgpZG7vIHRNuPQ1MoEthKINR 6cp/4JzAjbU26I61ogJ0+TVUi4m6Qr/tlZuJgokFlDvClu4+R2bIORu9+Fo7PMouCJdo NQeg== X-Gm-Message-State: AJIora904P9nQr1/xMsOn7XiBGL+iQW/JYC0AB0A1ERHpeFNyjeNdpwu 2RUqDeYBWH2dzOyIN3SztJc/CcNsExMSXszf0f9qHwM5YiRImVhCYr7uCs0ItAqgao6N6iHO0gb oJNjbR+RZhhffRBE/fBF2CKJ8 X-Received: by 2002:a05:600c:4e01:b0:3a3:342:5f55 with SMTP id b1-20020a05600c4e0100b003a303425f55mr1167441wmq.150.1657793100872; Thu, 14 Jul 2022 03:05:00 -0700 (PDT) X-Google-Smtp-Source: AGRyM1uaYKOw/xVQD+N7QimS7BnLIZAWrepCTmCCq9vI5Z98RdXmLv8WjKO4avlhaezsUHQyS4iMjA== X-Received: by 2002:a05:600c:4e01:b0:3a3:342:5f55 with SMTP id b1-20020a05600c4e0100b003a303425f55mr1167417wmq.150.1657793100658; Thu, 14 Jul 2022 03:05:00 -0700 (PDT) Received: from [10.35.4.238] (bzq-82-81-161-50.red.bezeqint.net. [82.81.161.50]) by smtp.gmail.com with ESMTPSA id i16-20020a05600c355000b003a2f88b2559sm4687381wmq.44.2022.07.14.03.04.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Jul 2022 03:05:00 -0700 (PDT) Message-ID: Subject: Re: [PATCH v4 11/25] KVM: VMX: Get rid of eVMCS specific VMX controls sanitization From: Maxim Levitsky To: Vitaly Kuznetsov , kvm@vger.kernel.org, Paolo Bonzini , Sean Christopherson Cc: Anirudh Rayabharam , Wanpeng Li , Jim Mattson , linux-hyperv@vger.kernel.org, linux-kernel@vger.kernel.org Date: Thu, 14 Jul 2022 13:04:58 +0300 In-Reply-To: <20220714091327.1085353-12-vkuznets@redhat.com> References: <20220714091327.1085353-1-vkuznets@redhat.com> <20220714091327.1085353-12-vkuznets@redhat.com> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.40.4 (3.40.4-5.fc34) MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 2022-07-14 at 11:13 +0200, Vitaly Kuznetsov wrote: > With the updated eVMCSv1 definition, there's no known 'problematic' > controls which are exposed in VMX control MSRs but are not present in > eVMCSv1. Get rid of VMX control MSRs filtering for KVM on Hyper-V. I think it still might be worth it, mentioning at least in the commit message, that as you said, the all known HyperV versions, either don't expose the  new fields by not setting bits in the VMX feature controls,  or support the new eVMCS revision. But anyway: Reviewed-by: Maxim Levitsky Best regards, Maxim Levitsky > > Note: VMX control MSRs filtering for Hyper-V on KVM > (nested_evmcs_filter_control_msr()) stays as even the updated eVMCSv1 > definition doesn't have all the features implemented by KVM and some > fields are still missing. Moreover, nested_evmcs_filter_control_msr() > has to support the original eVMCSv1 version when VMM wishes so. > > Signed-off-by: Vitaly Kuznetsov > --- >  arch/x86/kvm/vmx/evmcs.c | 13 ------------- >  arch/x86/kvm/vmx/evmcs.h |  1 - >  arch/x86/kvm/vmx/vmx.c   |  5 ----- >  3 files changed, 19 deletions(-) > > diff --git a/arch/x86/kvm/vmx/evmcs.c b/arch/x86/kvm/vmx/evmcs.c > index 52a53debd806..b5cfbf7d487b 100644 > --- a/arch/x86/kvm/vmx/evmcs.c > +++ b/arch/x86/kvm/vmx/evmcs.c > @@ -320,19 +320,6 @@ const struct evmcs_field vmcs_field_to_evmcs_1[] = { >  }; >  const unsigned int nr_evmcs_1_fields = ARRAY_SIZE(vmcs_field_to_evmcs_1); >   > -#if IS_ENABLED(CONFIG_HYPERV) > -__init void evmcs_sanitize_exec_ctrls(struct vmcs_config *vmcs_conf) > -{ > -       vmcs_conf->cpu_based_exec_ctrl &= ~EVMCS1_UNSUPPORTED_EXEC_CTRL; > -       vmcs_conf->pin_based_exec_ctrl &= ~EVMCS1_UNSUPPORTED_PINCTRL; > -       vmcs_conf->cpu_based_2nd_exec_ctrl &= ~EVMCS1_UNSUPPORTED_2NDEXEC; > -       vmcs_conf->cpu_based_3rd_exec_ctrl = 0; > - > -       vmcs_conf->vmexit_ctrl &= ~EVMCS1_UNSUPPORTED_VMEXIT_CTRL; > -       vmcs_conf->vmentry_ctrl &= ~EVMCS1_UNSUPPORTED_VMENTRY_CTRL; > -} > -#endif > - >  bool nested_enlightened_vmentry(struct kvm_vcpu *vcpu, u64 *evmcs_gpa) >  { >         struct hv_vp_assist_page assist_page; > diff --git a/arch/x86/kvm/vmx/evmcs.h b/arch/x86/kvm/vmx/evmcs.h > index 4b809c79ae63..0feac101cce4 100644 > --- a/arch/x86/kvm/vmx/evmcs.h > +++ b/arch/x86/kvm/vmx/evmcs.h > @@ -203,7 +203,6 @@ static inline void evmcs_load(u64 phys_addr) >         vp_ap->enlighten_vmentry = 1; >  } >   > -__init void evmcs_sanitize_exec_ctrls(struct vmcs_config *vmcs_conf); >  #else /* !IS_ENABLED(CONFIG_HYPERV) */ >  static __always_inline void evmcs_write64(unsigned long field, u64 value) {} >  static inline void evmcs_write32(unsigned long field, u32 value) {} > diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c > index b4915d841357..dd905ad72637 100644 > --- a/arch/x86/kvm/vmx/vmx.c > +++ b/arch/x86/kvm/vmx/vmx.c > @@ -2689,11 +2689,6 @@ static __init int setup_vmcs_config(struct vmcs_config *vmcs_conf, >         vmcs_conf->vmexit_ctrl         = _vmexit_control; >         vmcs_conf->vmentry_ctrl        = _vmentry_control; >   > -#if IS_ENABLED(CONFIG_HYPERV) > -       if (enlightened_vmcs) > -               evmcs_sanitize_exec_ctrls(vmcs_conf); > -#endif > - >         return 0; >  } >