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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 585F5C83F1A for ; Mon, 21 Jul 2025 17:01:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D86F06B0095; Mon, 21 Jul 2025 13:01:17 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D5EB76B0096; Mon, 21 Jul 2025 13:01:17 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C74806B0098; Mon, 21 Jul 2025 13:01:17 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id B78B36B0095 for ; Mon, 21 Jul 2025 13:01:17 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 674B61A0132 for ; Mon, 21 Jul 2025 17:01:17 +0000 (UTC) X-FDA: 83688887394.29.90B1AD9 Received: from mail-qt1-f177.google.com (mail-qt1-f177.google.com [209.85.160.177]) by imf09.hostedemail.com (Postfix) with ESMTP id 7DE9E140013 for ; Mon, 21 Jul 2025 17:01:15 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=qAJdVRLh; spf=pass (imf09.hostedemail.com: domain of tabba@google.com designates 209.85.160.177 as permitted sender) smtp.mailfrom=tabba@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1753117275; h=from:from:sender: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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=vt9ZwUF3fGDVyxUTkyz5qBpDl9or2ldYVWFaw2AS4MQ=; b=xUZLRuhEtt1D0GyqlqY+d0qRt4NsA0MMW/pRYRnJiiuatwWJ0yoIkXHzskPaCdYr3nBbyT bA0nMuzyu0JyZKgPM7XFF5XuyI3FGG1cc6kmt8Sw2MdQZSdieaMb9nCXJa4tl64jDz+nZj 3EVibLdsEzJ7Aap2kMMW/ALRvG2Tj+k= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1753117275; a=rsa-sha256; cv=none; b=PM+Icji9fUNN6lNSNK5AHd6WrddLXfYsx9Eob7pJDO9VUlpi2W7Eo3NffNtt4BGAhHE1DD ZxWUgix1xUc8eQ+74xjFAm8QFK28ztfJlKfDE6TG0ICfJP6BtYWvcNWpicwpU2N4xKRE74 xn9sod3tOH/HSs4FDSOoUn3dT/8NRp0= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=qAJdVRLh; spf=pass (imf09.hostedemail.com: domain of tabba@google.com designates 209.85.160.177 as permitted sender) smtp.mailfrom=tabba@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-qt1-f177.google.com with SMTP id d75a77b69052e-4aaf43cbbdcso6381cf.1 for ; Mon, 21 Jul 2025 10:01:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1753117274; x=1753722074; darn=kvack.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=vt9ZwUF3fGDVyxUTkyz5qBpDl9or2ldYVWFaw2AS4MQ=; b=qAJdVRLhjLSSd3K5+1vyFRbBVFlQmTwjBU4X6emXWM5BeP2EhulpDX8y0nu6obpJBB EaRVpWUbZ2U5ZbrE41VLED+Ler6L/1xK5HZMs4G3TmE5PO2+9Aa1OeSTYORESyHA0ONR S7uET6C4sA0t0e7CD6C0lrVR/wa9bIy7nD1hr/vFgVdeLwXs67+4Dmv8PjoRWmkm9XO9 ZKMhD/5Q834k4MXAN/yXzorjH4MpPg0eu92KkD0TTMGQFabezYnhs7zCluSq16wBgmVu Uq3qkoH+BlIu2yvGhKNDq/mMClqRB0RZSeJmVQrROJxBiCidrJ3+mT9KomAw0rm/NtdY 9tJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753117274; x=1753722074; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=vt9ZwUF3fGDVyxUTkyz5qBpDl9or2ldYVWFaw2AS4MQ=; b=vayns9ZyUTRkFH9zTAHLIXpoRUtMt5nIOnCadFWTU472O1YJQlFa1ymRfv1clIA63c gFmZNVwynIRU0iNeNE9tU7Xwe+PtnBJxgvrSO5bu9clT+VTTz6nFa478QPziAyXGA0x1 CBEI7ShbrqWA8bC4J36e8IkrHHCYWbPw54f3hBRR1T4KPZJhR6IPCkXo/D/NQhXzDwy1 TInxhH9A1oUNMQ7sTS9Qf1VVjtLIvqxJmiU8WGK68tZZEZw6Mnpr8hCuv/pFCh+zhsW/ VnnKyUtDnSzgN2jhvFhcTfuOPInMVMl3yhQQqcXkOYgFkjkwFITJmvYrypi94drW4Ye9 YToQ== X-Forwarded-Encrypted: i=1; AJvYcCXwfdMJ46FMm5x7rgdGxzQtrXuKIZFfMxn1w6mdp2/hH4fLkWF/3fh1pJMjh+7NBbCN41S/RUBkZA==@kvack.org X-Gm-Message-State: AOJu0YwIFdICdCwJe2ixzkVy4RF/cwhrTuPJOql82i3eDtplp581fWDr +rHXdjRxES90+BGBeX6YGTTfzCg6KuoNjESjCRD559ub3zRVVlz//8aiguuV3b1DNnxzpZjbu+f PlwCEroTTQR5WPStfp3dyuzs81OD75zTG1YG/fden X-Gm-Gg: ASbGncuoiDQsGNXMC89sEuDj/Ok3e5a5XDH6f27Scjhft2xG2U0mn+mJDPjbR7Yox4d LN8i+y+Q0aDLHoOj/DR/aKw+RTs3jRZOY531bwVU+/LidYop2JpgA6Y8bweyfalvpSN09Crdjsr OEMLYXZMEYEcIJhfZdP2p+A3vuyzijFylvDNwjY/Z/KdK95Unf3+oMA3BfklalVV4x6p1DiNGn6 po0uC0= X-Google-Smtp-Source: AGHT+IE77xfZzLtUStJio5/gr2Lddfq0kwmTtubIneVZ36yQE9cl1kxCYy+WewT5qhlZD3J2u42dfcUp/sDkWx810Uk= X-Received: by 2002:a05:622a:58cf:b0:4a4:d827:7f93 with SMTP id d75a77b69052e-4ae5b42ef1dmr687911cf.0.1753117273637; Mon, 21 Jul 2025 10:01:13 -0700 (PDT) MIME-Version: 1.0 References: <20250717162731.446579-1-tabba@google.com> <20250717162731.446579-5-tabba@google.com> In-Reply-To: From: Fuad Tabba Date: Mon, 21 Jul 2025 18:00:36 +0100 X-Gm-Features: Ac12FXwew5QLfnZj03go8Mjw4g5wc-UoRbU-fCLWG340Dw64JFHDBfVakMGYyDc Message-ID: Subject: Re: [PATCH v15 04/21] KVM: x86: Introduce kvm->arch.supports_gmem To: Sean Christopherson Cc: kvm@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-mm@kvack.org, kvmarm@lists.linux.dev, pbonzini@redhat.com, chenhuacai@kernel.org, mpe@ellerman.id.au, anup@brainfault.org, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, viro@zeniv.linux.org.uk, brauner@kernel.org, willy@infradead.org, akpm@linux-foundation.org, xiaoyao.li@intel.com, yilun.xu@intel.com, chao.p.peng@linux.intel.com, jarkko@kernel.org, amoorthy@google.com, dmatlack@google.com, isaku.yamahata@intel.com, mic@digikod.net, vbabka@suse.cz, vannapurve@google.com, ackerleytng@google.com, mail@maciej.szmigiero.name, david@redhat.com, michael.roth@amd.com, wei.w.wang@intel.com, liam.merwick@oracle.com, isaku.yamahata@gmail.com, kirill.shutemov@linux.intel.com, suzuki.poulose@arm.com, steven.price@arm.com, quic_eberman@quicinc.com, quic_mnalajal@quicinc.com, quic_tsoni@quicinc.com, quic_svaddagi@quicinc.com, quic_cvanscha@quicinc.com, quic_pderrin@quicinc.com, quic_pheragu@quicinc.com, catalin.marinas@arm.com, james.morse@arm.com, yuzenghui@huawei.com, oliver.upton@linux.dev, maz@kernel.org, will@kernel.org, qperret@google.com, keirf@google.com, roypat@amazon.co.uk, shuah@kernel.org, hch@infradead.org, jgg@nvidia.com, rientjes@google.com, jhubbard@nvidia.com, fvdl@google.com, hughd@google.com, jthoughton@google.com, peterx@redhat.com, pankaj.gupta@amd.com, ira.weiny@intel.com Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 7DE9E140013 X-Rspam-User: X-Rspamd-Server: rspam09 X-Stat-Signature: txuqqf77abzr86rjfffm8bystcxgpgya X-HE-Tag: 1753117275-772708 X-HE-Meta: U2FsdGVkX18wyU27txplpM2lRI6WYm83tmPyDcwxKa5Rq/DOCnjOdWQp2eorY5CncLSebyhB2ZawC/JuV7FPgyYmmCAEgpj3ajh8+sTc7Qt5Jb6RqsoeIFG6DWFM+hcYJck4JbpOHxRpQcBT3+l3qBLuFJX6lUIROwHrqdye69YPv3lPfVFsDl/R9yZ7YF9bCX25nRSubvhrvmr2s98ktIhKHRv3RHn7khnYD6uuHfY6BNUDAAkRAwu7VagmRGc7jk6fk0f/QbySvEURj8wh7C/8jvGlUIOOz6h7kyNunsm1gbl25hlMfXPV5Z/Z2cesmUHwUmAGQ52aBydPIvG8Y5P8S3XKfSP0a06zrU26dAEQzQ+O1wL6sBIIrmHNOnEaEiAxsfebvDyNxRWt3sscYtmcID05EboA41hNiROU5tkC7bA8b3GTn+QNiTuMTmLEQ51OV57/Xcvt+QSqkmXeV9dies/ac22VP5smkK8TBu6X54Imaqj9PaEs4dQJUybfQZmk3ZYULVsgkQGdBIdHwqsgzgOEjIIdbVO9zoAM8fcgZ+z1BKABLh1YYwlr5bcDJw+LRWv6wGbTpCp01Q05C4PHok4OGyN6PbyhvQOJqqH6Z794aQMaxx8prMdMWgXyk0dekWaqIwT0LMkayQZ0sf9e3Zo03B20UIc1VNx1cW3vHfy6HTR4jS7E+hIxvufd17Y5rTSXe3xahU2KXWxHXOJhLJXJPCH75EcRStCAbaCOwdC6xykHsMsBKGL/CLZyR3iOAc46+yjOA05ty9p48zgV5dx9+q7ya+wZ4PQD/rciYalBTZkBfNdYVbd0ufa990mUjHhO0gasD2J4Z+v8+MV1p8ccCQZ6wBOq6uCu8pctxluXQIHzK4js7FUDvKidUek1VTkY5/KLwV8T9BSA7z3nN/B33iVJGihh8MYBzxMzcgklmLcB7Toyy0Bm/7U/01hyG+6ZJshHK+Rebdi 2GdwCRuY jhssGZCkGp/TQP3YN0DVgt7o8kANzpVC4sWGBolVQ/JHNwK/At2PVE84ZKB9o8Cjl+YfqSZJPyQxSSEE5etU4hKR0yern/t2wTGJcsURHVT/C1uoNJvGvPwsofrpCLNY5k6CB+FhtKEK4CDBYEWude4a2gaGFT1nI0QNrZpyzzBSJDqwLmwqrdQFglABPnb4jDQsvid6Tv2YVVAEvbLsKdbBxlkGJrkEiK9F8vMcfRUovzYiSXBRCrQjiqJuYW4mQ5+G+6VOm+qo/m9g5sxjDvjgcqQaSxLJwxhKHkfh0eOaFJYKIBRMrsSIN1obtQlOuPPen9b8XmZAbEyKfLCqyaKAV5mEMAnlAhOzsxHmpjBcWxCUyz1l9ERIUO/CrcS0qv4kb0qEng+2J2ggLZJPnqV4v8w== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Hi Sean, On Mon, 21 Jul 2025 at 17:45, Sean Christopherson wrote: > > On Thu, Jul 17, 2025, Fuad Tabba wrote: > > Introduce a new boolean member, supports_gmem, to kvm->arch. > > > > Previously, the has_private_mem boolean within kvm->arch was implicitly > > used to indicate whether guest_memfd was supported for a KVM instance. > > However, with the broader support for guest_memfd, it's not exclusively > > for private or confidential memory. Therefore, it's necessary to > > distinguish between a VM's general guest_memfd capabilities and its > > support for private memory. > > > > This new supports_gmem member will now explicitly indicate guest_memfd > > support for a given VM, allowing has_private_mem to represent only > > support for private memory. > > > > Reviewed-by: Ira Weiny > > Reviewed-by: Gavin Shan > > Reviewed-by: Shivank Garg > > Reviewed-by: Vlastimil Babka > > Reviewed-by: Xiaoyao Li > > Co-developed-by: David Hildenbrand > > Signed-off-by: David Hildenbrand > > Signed-off-by: Fuad Tabba > > NAK, this introduces unnecessary potential for bugs, e.g. KVM will get a false > negative if kvm_arch_supports_gmem() is invoked before kvm_x86_ops.vm_init(). > > Patch 2 makes this a moot point because kvm_arch_supports_gmem() can simply go away. Just to reiterate, this is a NAK to the whole patch (which if I recall correctly, you had suggested), since the newer patch that you propose makes this patch, and the function kvm_arch_supports_gmem() unnecessary. Fewer patches is fine by me :) Thanks, /fuad > > --- > > arch/x86/include/asm/kvm_host.h | 3 ++- > > arch/x86/kvm/svm/svm.c | 1 + > > arch/x86/kvm/vmx/tdx.c | 1 + > > arch/x86/kvm/x86.c | 4 ++-- > > 4 files changed, 6 insertions(+), 3 deletions(-) > > > > diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h > > index bde811b2d303..938b5be03d33 100644 > > --- a/arch/x86/include/asm/kvm_host.h > > +++ b/arch/x86/include/asm/kvm_host.h > > @@ -1348,6 +1348,7 @@ struct kvm_arch { > > u8 mmu_valid_gen; > > u8 vm_type; > > bool has_private_mem; > > + bool supports_gmem; > > bool has_protected_state; > > bool pre_fault_allowed; > > struct hlist_head mmu_page_hash[KVM_NUM_MMU_PAGES]; > > @@ -2277,7 +2278,7 @@ void kvm_configure_mmu(bool enable_tdp, int tdp_forced_root_level, > > > > #ifdef CONFIG_KVM_GMEM > > #define kvm_arch_has_private_mem(kvm) ((kvm)->arch.has_private_mem) > > -#define kvm_arch_supports_gmem(kvm) kvm_arch_has_private_mem(kvm) > > +#define kvm_arch_supports_gmem(kvm) ((kvm)->arch.supports_gmem) > > #else > > #define kvm_arch_has_private_mem(kvm) false > > #define kvm_arch_supports_gmem(kvm) false > > diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c > > index ab9b947dbf4f..d1c484eaa8ad 100644 > > --- a/arch/x86/kvm/svm/svm.c > > +++ b/arch/x86/kvm/svm/svm.c > > @@ -5181,6 +5181,7 @@ static int svm_vm_init(struct kvm *kvm) > > to_kvm_sev_info(kvm)->need_init = true; > > > > kvm->arch.has_private_mem = (type == KVM_X86_SNP_VM); > > + kvm->arch.supports_gmem = (type == KVM_X86_SNP_VM); > > kvm->arch.pre_fault_allowed = !kvm->arch.has_private_mem; > > } > > > > diff --git a/arch/x86/kvm/vmx/tdx.c b/arch/x86/kvm/vmx/tdx.c > > index f31ccdeb905b..a3db6df245ee 100644 > > --- a/arch/x86/kvm/vmx/tdx.c > > +++ b/arch/x86/kvm/vmx/tdx.c > > @@ -632,6 +632,7 @@ int tdx_vm_init(struct kvm *kvm) > > > > kvm->arch.has_protected_state = true; > > kvm->arch.has_private_mem = true; > > + kvm->arch.supports_gmem = true; > > kvm->arch.disabled_quirks |= KVM_X86_QUIRK_IGNORE_GUEST_PAT; > > > > /* > > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > > index 357b9e3a6cef..adbdc2cc97d4 100644 > > --- a/arch/x86/kvm/x86.c > > +++ b/arch/x86/kvm/x86.c > > @@ -12780,8 +12780,8 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type) > > return -EINVAL; > > > > kvm->arch.vm_type = type; > > - kvm->arch.has_private_mem = > > - (type == KVM_X86_SW_PROTECTED_VM); > > + kvm->arch.has_private_mem = (type == KVM_X86_SW_PROTECTED_VM); > > + kvm->arch.supports_gmem = (type == KVM_X86_SW_PROTECTED_VM); > > /* Decided by the vendor code for other VM types. */ > > kvm->arch.pre_fault_allowed = > > type == KVM_X86_DEFAULT_VM || type == KVM_X86_SW_PROTECTED_VM; > > -- > > 2.50.0.727.gbf7dc18ff4-goog > >