From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f201.google.com (mail-pf1-f201.google.com [209.85.210.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D4DF53F54B6 for ; Thu, 7 May 2026 14:40:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778164834; cv=none; b=f8CBwJLcga3wSjMXpXVWZlud+mtIXyem70+G2ynXlTLUkQs9ASdNz8BatMMB+3oexei7hORI9f2BSLneXCJVrqdH4MhA7lxLYD4X/6j4Y0qu6dgqwnh8d2p52VuUF3nWxR1J6iwOJKI4cL1S02rcECExTwVFPbyznSaKvc8NUec= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778164834; c=relaxed/simple; bh=Cn5JYFt+re2uIrrew2b1uNvLy9dnU0v0AiT84U5uVjs=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=CMNYEYk2gCrfK3ThnphMbc7Kj+8P9BKF9/CvCicD5AxmmbZPiYkAvpV3Hmy0yYXmczFpTTlhoDSASoqFyrNUwFoBoxHJrCDKImXWouB/ykPB4s2XIuEN6PL1n8XHNS1x2oXP56e30Qxaue1f2fIJpP2aSdJ+ew4AWQoDzuuwV/0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=C9nFZ09e; arc=none smtp.client-ip=209.85.210.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="C9nFZ09e" Received: by mail-pf1-f201.google.com with SMTP id d2e1a72fcca58-82fa5ecd760so494055b3a.0 for ; Thu, 07 May 2026 07:40:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1778164832; x=1778769632; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=geAlAIqy7GyIFv6P4BbXpEe4TxhfkgYP5jfPUWU5/oE=; b=C9nFZ09e18x1arQjbszamZNXxAkPZFJ9PCoPM44SPMp3QzToUnHx+a8fSjDR9/fFL7 cJ/HvXVa+0c7u2fEiSQ1BoTlurVBVHdKfHE11SbfApRKAdZIAmFSKuY785+XGEFs8esA FdBUqd/g5nnMQsVBbxA/S1oSbS3R46TNebiUqvv6MxEszTUxhznOyXsyDCUHrpOiXAEE 9gtWZFEuQh4vARXAzQOz6NjFAwE1on/WEDT6wh/aIK/mZlpYksCTDd0v0D21BfrTuFVx CJW8D/8WUmvUW46gxPMqrqJe8g64+XlQ23lWdHq/nhCYupIl5rJns1eFF9yy6+vt5aNQ 5EJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778164832; x=1778769632; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=geAlAIqy7GyIFv6P4BbXpEe4TxhfkgYP5jfPUWU5/oE=; b=GmnwzgG6lT76nGMG6KbN1hLvvi4cBOTdGbrWufsmQWd87x3xclwSZhZwmCk1xecamn B1cShfLNqoGsvZ7MS1zBVhKR659swEO/pDrt5ILbG+DiQZp7QOoa/o5830ZUux4ObFog GnwiOmn5nEXaXpsAlZ0/AvC8SaHgVpIAW5lcYNfI8Wch0cHtzK3abcvMKwD37dB1xOg+ +oIuNrFTWUS/U4QzTLP/JT9GpRfNyOGIt97nYsTx9FiOo5DS/tlZDHCAu2LytDWM3TI9 13RqtpzyCmalW5VO0KtB9WMFvvGLx+qTTTT+VZb/tvhEWj6Ywo5J8sO7Vv3SQFO7ypvt 8ibw== X-Gm-Message-State: AOJu0YzZTO+wB0mpPNrl8BV2rLMCmcGX3LJ+gmBh9AWSTxoAQnw5zyDC nj/1mHc4YnnX/TnycTsj/NF9Ix6oJ582N36cAWMaFIqEJ2s1iNkrfwCdYUWIIS5hasH1xsZVmpa lBZS1fw== X-Received: from pfbmu6.prod.google.com ([2002:a05:6a00:6e86:b0:837:f337:257c]) (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:f03:b0:838:c01a:7a46 with SMTP id d2e1a72fcca58-83a5d6810bcmr7828556b3a.26.1778164831887; Thu, 07 May 2026 07:40:31 -0700 (PDT) Date: Thu, 7 May 2026 07:40:31 -0700 In-Reply-To: <20260505195226.563317-16-pbonzini@redhat.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260505195226.563317-1-pbonzini@redhat.com> <20260505195226.563317-16-pbonzini@redhat.com> Message-ID: Subject: Re: [PATCH 15/28] KVM: VMX: enable use of MBEC From: Sean Christopherson To: Paolo Bonzini Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org, d.riley@proxmox.com, jon@nutanix.com Content-Type: text/plain; charset="us-ascii" On Tue, May 05, 2026, Paolo Bonzini wrote: > @@ -7823,6 +7830,11 @@ u8 vmx_get_mt_mask(struct kvm_vcpu *vcpu, gfn_t gfn, bool is_mmio) > return (MTRR_TYPE_WRBACK << VMX_EPT_MT_EPTE_SHIFT); > } > > +bool vmx_tdp_has_smep(struct kvm *kvm) > +{ > + return enable_mbec; > +} > + > static void vmcs_set_secondary_exec_control(struct vcpu_vmx *vmx, u32 new_ctl) > { > /* > @@ -8622,6 +8634,8 @@ __init int vmx_hardware_setup(void) > > if (!cpu_has_vmx_ept_ad_bits() || !enable_ept) > enable_ept_ad_bits = 0; > + if (!cpu_has_ept_mbec() || !enable_ept) > + enable_mbec = 0; > > if (!cpu_has_vmx_unrestricted_guest() || !enable_ept) > enable_unrestricted_guest = 0; > diff --git a/arch/x86/kvm/vmx/vmx.h b/arch/x86/kvm/vmx/vmx.h > index db84e8001da5..0a4e263c4095 100644 > --- a/arch/x86/kvm/vmx/vmx.h > +++ b/arch/x86/kvm/vmx/vmx.h > @@ -567,6 +567,7 @@ static inline u8 vmx_get_rvi(void) > SECONDARY_EXEC_ENABLE_VMFUNC | \ > SECONDARY_EXEC_BUS_LOCK_DETECTION | \ > SECONDARY_EXEC_NOTIFY_VM_EXITING | \ > + SECONDARY_EXEC_MODE_BASED_EPT_EXEC | \ > SECONDARY_EXEC_ENCLS_EXITING | \ > SECONDARY_EXEC_EPT_VIOLATION_VE) > > diff --git a/arch/x86/kvm/vmx/x86_ops.h b/arch/x86/kvm/vmx/x86_ops.h > index d09abeac2b56..69cf276be88e 100644 > --- a/arch/x86/kvm/vmx/x86_ops.h > +++ b/arch/x86/kvm/vmx/x86_ops.h > @@ -103,6 +103,7 @@ void vmx_load_eoi_exitmap(struct kvm_vcpu *vcpu, u64 *eoi_exit_bitmap); > int vmx_set_tss_addr(struct kvm *kvm, unsigned int addr); > int vmx_set_identity_map_addr(struct kvm *kvm, u64 ident_addr); > u8 vmx_get_mt_mask(struct kvm_vcpu *vcpu, gfn_t gfn, bool is_mmio); > +bool vmx_tdp_has_smep(struct kvm *kvm); As suggested in v5, can we do this? diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c index 60dd1b5e9520..cc14a6b96681 100644 --- a/arch/x86/kvm/vmx/vmx.c +++ b/arch/x86/kvm/vmx/vmx.c @@ -7839,11 +7839,6 @@ u8 vmx_get_mt_mask(struct kvm_vcpu *vcpu, gfn_t gfn, bool is_mmio) return (MTRR_TYPE_WRBACK << VMX_EPT_MT_EPTE_SHIFT); } -bool vmx_tdp_has_smep(struct kvm *kvm) -{ - return enable_mbec; -} - static void vmcs_set_secondary_exec_control(struct vcpu_vmx *vmx, u32 new_ctl) { /* diff --git a/arch/x86/kvm/vmx/x86_ops.h b/arch/x86/kvm/vmx/x86_ops.h index 69cf276be88e..409858074246 100644 --- a/arch/x86/kvm/vmx/x86_ops.h +++ b/arch/x86/kvm/vmx/x86_ops.h @@ -4,6 +4,7 @@ #include +#include "capabilities.h" #include "x86.h" __init int vmx_hardware_setup(void); @@ -103,7 +104,11 @@ void vmx_load_eoi_exitmap(struct kvm_vcpu *vcpu, u64 *eoi_exit_bitmap); int vmx_set_tss_addr(struct kvm *kvm, unsigned int addr); int vmx_set_identity_map_addr(struct kvm *kvm, u64 ident_addr); u8 vmx_get_mt_mask(struct kvm_vcpu *vcpu, gfn_t gfn, bool is_mmio); -bool vmx_tdp_has_smep(struct kvm *kvm); + +static inline bool vmx_tdp_has_smep(struct kvm *kvm) +{ + return enable_mbec; +} void vmx_get_exit_info(struct kvm_vcpu *vcpu, u32 *reason, u64 *info1, u64 *info2, u32 *intr_info, u32 *error_code);