From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 284E03ED105 for ; Tue, 2 Jun 2026 14:32:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780410749; cv=none; b=aZo++N9stzGa0xLGB+vY3sjp6aONL2A+6s06nGYm//uTfxPznfvCc/ZTwo5hq7LqZFUvvERgftdLXdNRPqxBzwoh811Y1q6fycZ9Y9bAhh0CFiWCK1adg3N/kb+3Cc3DpGSFMDELeURPwh9RLfd3DQaSRqPBDnunoQD9w+iUQTw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780410749; c=relaxed/simple; bh=46PND5RnHGmUFDZopgvjldaZXhIeN7d1AZchkjXwx/U=; h=Message-ID:Subject:From:To:Cc:Date:In-Reply-To:References: Content-Type:MIME-Version; b=LAYCYvlvJJvtCNEmPVeLj/5TLhx23KQ5eOsh07n2sramgWncKXRdWyshZ0nohFM2TctXqMoZBWA4AIQJcHqpwwDa9JD7tIjmPj8hn6S2noObc6GenZEtL4u0BQ3JjOyoCNLFpQ1NgG3gaMdhUkCTZafOhIFl7Vp7Q5SPpNoEB9Q= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=hu7iLmzS; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b=ltsTqIe4; arc=none smtp.client-ip=170.10.133.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="hu7iLmzS"; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b="ltsTqIe4" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1780410747; 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=Oobf5YN5+qtUZI/HwZRRNiHwHVF1PjmeKxn5zqQ6qDQ=; b=hu7iLmzSrggxMmWxCK8CZ7gCuxGIewOX5bpK4B8TGbYAXfU2OHcrWCItkre6O00PpOZqun S94hX3f1WN9LjzU6OcEytJ5WAv3oKU1TAfmeRSKECKAg76Ulg5rmHfh0odtziL67SttBVn AcBXZqgc7pj/9G996MW2RF5lgF0x9SA= Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-422-hKEH2qQ4OcGQKtvBIUhZ9A-1; Tue, 02 Jun 2026 10:32:25 -0400 X-MC-Unique: hKEH2qQ4OcGQKtvBIUhZ9A-1 X-Mimecast-MFC-AGG-ID: hKEH2qQ4OcGQKtvBIUhZ9A_1780410745 Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-517480bde1cso55402251cf.3 for ; Tue, 02 Jun 2026 07:32:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1780410745; x=1781015545; darn=vger.kernel.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=Oobf5YN5+qtUZI/HwZRRNiHwHVF1PjmeKxn5zqQ6qDQ=; b=ltsTqIe4B25jrBP0m2vz5n2hxuVoI1raPAzZukwqyM/WPgT2GdvL2mgey40oRAMHCN 3Dv+vWXvx8aNbfAExX/XaWPm9NhodZTaPbw5HBLVdZuPXapDmPpp1ED0Y3WNXKLP30v3 eVeMcWYPWz83zIVdJU5Sq3OkJvCzcAP8LDuUBc5tkmf4OKy5h2j9TtMrZvnYjfSISKpH 9KXhow9cxI+dsHFV3VL0EoyTBk85jonk0EwnDmeOPPzBb0u+9AT59qpwjo5acWznDe6F 3vhZc6LsXUQdIF7l4epipJ+FTp8gEVk/3kJ11MBm2R8jGVdxsPVUoXvObEY/XxXrAg9Q VJCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780410745; x=1781015545; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Oobf5YN5+qtUZI/HwZRRNiHwHVF1PjmeKxn5zqQ6qDQ=; b=sBrFh4En27EC2/seZZWbn7QRZw3+Z1gceUmPMJcq8I4FrL6O7IDOGt4516lamLw97+ IRU4sNuSCGMvenLWEUvJeiKeKLU0uVrooId4y83cLzcGPQNFf5rnRwLobS+fvflVv5zw HeV/PLV98OFav0XXOxM3nAYEMbE6egOa33+NdKOP0vQAp7xm+0s1LEx4huVmL5321X4N SOpyvrOYSC5BEoJ+c+T35+D+NyShekNAjKn+XPTyPjx7H+r97odqfdeOWB7MPBrNek/n TWU+rp24vf/kfeBz/Oim2KSNmw+GqW7LX86HB4k8Gtq4wTbja5KFk5Hggx+Emr9JEfWa Nq4w== X-Forwarded-Encrypted: i=1; AFNElJ/l/Vnu34MccsEuIieF4+XAXCdBxgHlDEkXcfAJyFKlJHfGUNeBalFUL63+n0ymqjeYqV95BZT0iVv+x9c=@vger.kernel.org X-Gm-Message-State: AOJu0Yw9f7fNinAQCtBEpDdzue29v2JnQO1TdTOXDnsNAGySqb+QfY6r n2c7kGOkqUjVCUuXi2OTlPq7a2q7RCaVzetpe92ZcpTLSld928M1ailaDvEfw+zkXKt2fBQr+gy WXMZIK9vLbArnU+X1EYPayYOZSGOd6KaRVwlLMO094hyDQbImyCoEAEXQ7U10qBbgd39SbF4gbg == X-Gm-Gg: Acq92OGoisIy4t3AItjMehCzstGKNOOJ5wpXUjplPIfqeE94/lOKfOW4QrYjuuX543f lilqFVI4Tqm0rW8Snj3ufsBqhyDECsJCdddwLDVdSg+1M9xu85ipH+x8yLVrHvL9unrwDYqEa3j surzeHMtVpG52qqrmSQz2/imoi7szIk6QKyH+KPVpoHZ2MLlNSXadsLKfgECyynfdZrOfFtsAVV 6+HQVq04mceS9zCQC0NimAdhzWTVQmcX+hbajZ/9dva//bv8hwNY2cGEB1BPHjJ3/75mnNlfkXz Kl1edwl6Ow60uc6ttup0xh3u/qkoIAyT8CBLPyELxogOivL+f19UjgTjQmbdnCkt/nSZOWI8Ylf oKm99tRh/7F1yXRvvXq8ywk3bXFei0VGYaHpcjl8= X-Received: by 2002:a05:622a:17cd:b0:50f:b904:454 with SMTP id d75a77b69052e-5173a6e3fa2mr230751451cf.11.1780410745172; Tue, 02 Jun 2026 07:32:25 -0700 (PDT) X-Received: by 2002:a05:622a:17cd:b0:50f:b904:454 with SMTP id d75a77b69052e-5173a6e3fa2mr230751101cf.11.1780410744704; Tue, 02 Jun 2026 07:32:24 -0700 (PDT) Received: from intellaptop.lan ([2607:fea8:fc01:88aa:f1de:f35:7935:804f]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-51775c07e91sm198151cf.4.2026.06.02.07.32.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Jun 2026 07:32:23 -0700 (PDT) Message-ID: <3d1bb83f327a6bf99aa6a1c29a8f41320b14152f.camel@redhat.com> Subject: Re: [PATCH 28/28] KVM: nSVM: enable GMET for guests From: mlevitsk@redhat.com To: Paolo Bonzini , linux-kernel@vger.kernel.org, kvm@vger.kernel.org Cc: d.riley@proxmox.com, jon@nutanix.com Date: Tue, 02 Jun 2026 10:32:22 -0400 In-Reply-To: <20260505195226.563317-29-pbonzini@redhat.com> References: <20260505195226.563317-1-pbonzini@redhat.com> <20260505195226.563317-29-pbonzini@redhat.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.52.4 (3.52.4-2.fc40) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 On Tue, 2026-05-05 at 21:52 +0200, Paolo Bonzini wrote: > All that needs to be done is moving the GMET bit from vmcb12 to vmcb02. > The only new thing is that __nested_copy_vmcb_control_to_cache now > ensures that ignored-if-unavailable bits are zero in svm->nested.ctl. >=20 > Tested-by: David Riley > Signed-off-by: Paolo Bonzini Hi! Tiny nitpick: Should the patch title be 'KVM: nSVM: enable GMET for nested = guests'? (I know that there is nSVM in the title, but still I was a bit confused abo= ut it, at first) > --- > =C2=A0arch/x86/kvm/svm/nested.c | 6 +++++- > =C2=A0arch/x86/kvm/svm/svm.c=C2=A0=C2=A0=C2=A0 | 3 +++ > =C2=A02 files changed, 8 insertions(+), 1 deletion(-) >=20 > diff --git a/arch/x86/kvm/svm/nested.c b/arch/x86/kvm/svm/nested.c > index 74a1df1cb84f..3d1fd1776e19 100644 > --- a/arch/x86/kvm/svm/nested.c > +++ b/arch/x86/kvm/svm/nested.c > @@ -489,11 +489,14 @@ void __nested_copy_vmcb_control_to_cache(struct kvm= _vcpu *vcpu, > =C2=A0 nested_svm_sanitize_intercept(vcpu, to, SKINIT); > =C2=A0 nested_svm_sanitize_intercept(vcpu, to, RDPRU); > =C2=A0 > - /* Always clear SVM_MISC_ENABLE_NP if the guest cannot use NPTs */ > + /* Always clear misc_ctl bits that the guest cannot use */ > =C2=A0 to->misc_ctl =3D from->misc_ctl; > =C2=A0 if (!guest_cpu_cap_has(vcpu, X86_FEATURE_NPT)) > =C2=A0 to->misc_ctl &=3D ~SVM_MISC_ENABLE_NP; > =C2=A0 > + if (!gmet_enabled || !guest_cpu_cap_has(vcpu, X86_FEATURE_GMET)) > + to->misc_ctl &=3D ~SVM_MISC_ENABLE_GMET; > + > =C2=A0 to->iopm_base_pa=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =3D fro= m->iopm_base_pa & PAGE_MASK; > =C2=A0 to->msrpm_base_pa=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =3D from->ms= rpm_base_pa & PAGE_MASK; > =C2=A0 to->tsc_offset=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 =3D from->tsc_offset; > @@ -898,6 +901,7 @@ static void nested_vmcb02_prepare_control(struct vcpu= _svm *svm) > =C2=A0 /* Use vmcb01 MMU and format if guest does not use nNPT */ > =C2=A0 if (nested_npt_enabled(svm)) { > =C2=A0 vmcb02->control.misc_ctl &=3D ~SVM_MISC_ENABLE_GMET; > + vmcb02->control.misc_ctl |=3D (svm->nested.ctl.misc_ctl & SVM_MISC_ENAB= LE_GMET); > =C2=A0 > =C2=A0 nested_svm_init_mmu_context(vcpu); > =C2=A0 } > diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c > index fd79874c5f4b..a82471a6d3ea 100644 > --- a/arch/x86/kvm/svm/svm.c > +++ b/arch/x86/kvm/svm/svm.c > @@ -5504,6 +5504,9 @@ static __init void svm_set_cpu_caps(void) > =C2=A0 if (boot_cpu_has(X86_FEATURE_PFTHRESHOLD)) > =C2=A0 kvm_cpu_cap_set(X86_FEATURE_PFTHRESHOLD); > =C2=A0 > + if (gmet_enabled) > + kvm_cpu_cap_set(X86_FEATURE_GMET); > + > =C2=A0 if (vgif) > =C2=A0 kvm_cpu_cap_set(X86_FEATURE_VGIF); > =C2=A0 Looks good otherwise. Reviewed-by: Maxim Levitsky Best regards, Maxim Levitsky