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 098A8C83F1B for ; Thu, 17 Jul 2025 08:50:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9D8568D0018; Thu, 17 Jul 2025 04:50:36 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9AFAB8D0011; Thu, 17 Jul 2025 04:50:36 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 89EA98D0018; Thu, 17 Jul 2025 04:50:36 -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 78F2C8D0011 for ; Thu, 17 Jul 2025 04:50:36 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 3B06880670 for ; Thu, 17 Jul 2025 08:50:36 +0000 (UTC) X-FDA: 83673135672.19.4EADB21 Received: from mail-qt1-f176.google.com (mail-qt1-f176.google.com [209.85.160.176]) by imf03.hostedemail.com (Postfix) with ESMTP id 9472720008 for ; Thu, 17 Jul 2025 08:50:34 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=RV2z41FB; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf03.hostedemail.com: domain of tabba@google.com designates 209.85.160.176 as permitted sender) smtp.mailfrom=tabba@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1752742234; 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=fx1JuSGB5ku3XgYVMYRTc/eMvpZ5Y30SL8s3qhNbUrI=; b=d9Gr6LMhkzXuBAfZIWKW/MedrBy2XpWo7qfczCTLg35xtkQpGbY3enQmfMLd/AThMrfasb 1tS30LT9JTrXfyRU73nb8IkA3gs66YbCLKW9eD2oMKJ7IXC+h0bxbaf+2ZXJEC9kfvwjVR OeV1rAywOyetdppxhA+EpXtg3+N80BE= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752742234; a=rsa-sha256; cv=none; b=Ta/EweWz2haY4+D8CGKpqoAWMS5Nd6t/nkI6wWHzDj0Bcesg0H7M6pTO/VjmkNcOxgko9k fydXukE8wuMMGIgnHU1qBNXE2IozKwWAVRJPcW2lkavPdADqCSiJb3dTv0NYXOAMRul66T v/nhkRQusvwr7ISBtg13qcZEaehH9bM= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=RV2z41FB; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf03.hostedemail.com: domain of tabba@google.com designates 209.85.160.176 as permitted sender) smtp.mailfrom=tabba@google.com Received: by mail-qt1-f176.google.com with SMTP id d75a77b69052e-4ab3ad4c61fso277741cf.0 for ; Thu, 17 Jul 2025 01:50:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1752742234; x=1753347034; 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=fx1JuSGB5ku3XgYVMYRTc/eMvpZ5Y30SL8s3qhNbUrI=; b=RV2z41FBZcR+N0j6MV/3vLzzuRvWGaWGcz3O/CGdiTEF5yON9UNKLS+2dKT+m2QBwc 4Y1+ezFPv/0dT6tCsQgYlCjd3JKO6T8Kr81FD1z2nciFjvHN5t36kobB1zuM7bJFcHeO /9Kkc9VEjNgT30bGDE/pnHgZ15+AOkrGTzkMU6SLoPQBdIJL8U5ZGC8sWZa8eu2+YeRj qx3YgX1sKmMe/pZ0xiPum5TZ4WzDOFe14MX017KF9uN+Nl8nYfLHFt8YKo64HbEsz63y 26c3xwrmYHmEpZ/zkz8/f1soMNjWpz5MRzAyT515n6MEazTBgkwtfhjx4Od4rrXrcw+L 1ReQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752742234; x=1753347034; 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=fx1JuSGB5ku3XgYVMYRTc/eMvpZ5Y30SL8s3qhNbUrI=; b=cF212u9ktUMLfka9W0nMJ4unzKJcaof5SzPTZvUISqXF4UzGYCKSKi6xsm4mtqGlQQ L4pDuqxY5GCru7MoGPNglWFexMOC02rubZH2xS5n+fMUwJ2rXlkzielrvdkY1Udduhzt MCrnPTRDRvZXtUyo1PI2oO001mp7r2YyRbrgVZwaRmyXbiDF0dkqODvkJ67CxFLTvz3Y 3LHeI0B3SSoqTowcRlNc65xLDNmfTyOp8D5lESvTVu0iIDlj4E89Tg3ra2NCHII0VbXU CXpvSrGzTsk6N78lemxLfVB+mvDDj46ALpSbgO9J+YH92PyP2Oc/9jTlkrxnMTl/z1Iq hwNQ== X-Forwarded-Encrypted: i=1; AJvYcCW52jEQCkWFYu9QcWhYFmMf4Gs58085YeIGfEWUVfE372D6FtvZa8eNxWz/H3JZCGfYu0ZKgolptw==@kvack.org X-Gm-Message-State: AOJu0YxFHlbgdLNuqbpX0yCCKzAmk/+CBtyRqSZytYOq0B28Zmsp70e+ kyLSAY5AeV98xVrlbUJ+EVbP/HZpiSEN6agXP0NE1cncM3aimjJHFNX5N/2wmvvTV+DtBk8UwX/ CG8QCbyiOeJ/9B4C/3Hw6LDYruGA0cfdGdDCNftRU X-Gm-Gg: ASbGncshYhJDBikm3KDTSYKJkbvoSoPErnol0IIc1b4V09uZdYDGCYoWhF3EwXBtuMJ PW7QuXu3brPh9XwJ8oDys70SSnSZvpjy+18SAkp9X0Rc1ilGwVUgxUnCQ6ypVBn4JMfLe/JB5mp 7bCfOnpPEGTbMTiVpbNhZwUqFPRUZpzJEDoZYjzL/LB59Ec7hLs9aRVIRbyv8QUAF6iRUy2c4Mv efhwWM= X-Google-Smtp-Source: AGHT+IFJBjuZkaiMWobXRfRh9pmhDTYS+xIxMCNkviUrQydZTRd7jIJNkT2lW8gpa/i0jfk07s7YUC00WwCYYsXC4qM= X-Received: by 2002:a05:622a:1f85:b0:4a9:d3e7:56bf with SMTP id d75a77b69052e-4aba4adbb61mr2533831cf.27.1752742233129; Thu, 17 Jul 2025 01:50:33 -0700 (PDT) MIME-Version: 1.0 References: <20250715093350.2584932-1-tabba@google.com> <20250715093350.2584932-5-tabba@google.com> In-Reply-To: From: Fuad Tabba Date: Thu, 17 Jul 2025 09:49:56 +0100 X-Gm-Features: Ac12FXxkRhY2UmJu3hO9xLioH89YY6t8CrSg4iy4xmUp0dV0rsQQHNL4_tw_xsk Message-ID: Subject: Re: [PATCH v14 04/21] KVM: x86: Introduce kvm->arch.supports_gmem To: Xiaoyao Li Cc: Ackerley Tng , 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, seanjc@google.com, viro@zeniv.linux.org.uk, brauner@kernel.org, willy@infradead.org, akpm@linux-foundation.org, 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, 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: 9472720008 X-Stat-Signature: tzdxeu6weawhwkuarhhg3k196j6dpsaq X-Rspam-User: X-Rspamd-Server: rspam11 X-HE-Tag: 1752742234-644248 X-HE-Meta: U2FsdGVkX18lWrBW4MGmffrR02KTBYhBMsPctK5JPPk6Yq0PrWU0mmW1b5SehDGdmIrszn9jZro89nzBW8zgoaSHYiYau2eGBqA6MA8JqONlvOEGuey8fq4o7zm0lEhNc8HN2c4YmRk3XBMFZNlJidXc5dq/6fMYg6csnLLZEnZBfFMluhkF2PPNeVqshc5lCSCvPLgvDhYYnCcQyIYHEXrq0M/h8DpQKV2KjYgMdcS4M2K6WvByFg6wC8VYXa/NcVXYOmMC3UQcFDDtcs6rXrv59ncMVqeiaZIVQUWnitncMsnb7UKVewpH4Ujr+rdqln/5dtvDLUx6Xj2Riz1JruGLZP/cFVaAe/sqNiRtKAep7oa026rYnB3FF3Lw9+1T1LeY5dARyc5UOuVPmhi21m+4605/eBxwH8E97QwzFxzkxD83Kh7mPEbwNL29gZokCkMhvQrKQJaLFN2FddBsccK3u4atNhYUW9cl0+dDY3dhpS561vAHl/E9oiPrJrcNtCldig74G8AO2I6eTxtQG4RmikNS23ZO9i7FCbnpMdzlxVhz1/SQAo68Dl/ogVAV+fEuQJj7rzywtNYm/FF9udfn0SGEqFiJIW5vUZd5vEiYTHakE7RFQlw3n1AvByPZH9OPP20OgvziZB4xKw5XnUanMB5tlhD3aDb2AQJGtE8APUDgmxBdvTlHLkWJ8GukfH3RBxJRCnqwG5fNT0c5SLC8Lewbp8eLJpUNBH1uzAywKqpfEwfTUX0VOiVUnDLZALmSWTRNrRNFhYVDSsJN6jeBAaym8037nXQLeb/xA/YUNB96CIjwqylvQjQU9EqfKEC42X1XsY6JBTp9ty/p8wS+2Wz1NmPPMWLOuA+SUriiR0TQBMdCZ1MzQ9wbO0mIe0T2Shx+DF5ZPWz4LBuqfFtgOcVgoaWcdfeoarR5giwX6WoHUirSSv0l00eEw/314s3eLO9pHCIRWVdkQuy L1r1tkPt 5W3LPikH4fMGhXn1T+F6+T90KVJo9VOoL8D6Q3tOMnv7JyUnrJAvVjz1ztA== 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 Xiaoyao, On Thu, 17 Jul 2025 at 02:48, Xiaoyao Li wrote: > > On 7/17/2025 8:12 AM, Ackerley Tng wrote: > > Xiaoyao Li writes: > > > >> On 7/15/2025 5:33 PM, 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 > >>> Co-developed-by: David Hildenbrand > >>> Signed-off-by: David Hildenbrand > >>> Signed-off-by: Fuad Tabba > >> > >> Reviewed-by: Xiaoyao Li > >> > >> Btw, it seems that supports_gmem can be enabled for all the types of VM? > >> > > > > For now, not really, because supports_gmem allows mmap support, and mmap > > support enables KVM_MEMSLOT_GMEM_ONLY, and KVM_MEMSLOT_GMEM_ONLY will > > mean that shared faults also get faulted from guest_memfd. > > No, mmap support is checked by kvm_arch_supports_gmem_mmap() which is > independent to whether gmem is supported. It is dependent on gmem support: kvm_arch_supports_gmem_mmap(kvm) depends on CONFIG_KVM_GMEM_SUPPORTS_MMAP, which in turn selects KVM_GMEM. > > A TDX VM that wants to use guest_memfd for private memory and some other > > backing memory for shared memory (let's call this use case "legacy CoCo > > VMs") will not work if supports_gmem is just enabled for all types of > > VMs, because then shared faults will also go to kvm_gmem_get_pfn(). > > This is not what this patch does. Please go back read this patch. > > This patch sets kvm->arch.supports_gmem to true for > KVM_X86_SNP_VM/tdx/KVM_X86_SW_PROTECTED_VM. > > Further in patch 14, it sets kvm->arch.supports_gmem for KVM_X86_DEFAULT_VM. > > After this series, supports_gmem remains false only for KVM_X86_SEV_VM > and KVM_X86_SEV_ES_VM. And I don't see why cannot enable supports_gmem > for them. It's not that we can't, it's just that we had no reason to enable it. When the time comes, it's just a matter of setting a boolean. Thanks, /fuad > > This will be cleaned up when guest_memfd supports conversion > > (guest_memfd stage 2). There, a TDX VM will have .supports_gmem = true. > > > > With guest_memfd stage-2 there will also be a > > KVM_CAP_DISABLE_LEGACY_PRIVATE_TRACKING. > > KVM_CAP_DISABLE_LEGACY_PRIVATE_TRACKING defaults to false, so for legacy > > CoCo VMs, shared faults will go to the other non-guest_memfd memory > > source that is configured in userspace_addr as before. > > > > With guest_memfd stage-2, KVM_MEMSLOT_GMEM_ONLY will direct all EPT > > faults to kvm_gmem_get_pfn(), but KVM_MEMSLOT_GMEM_ONLY will only be > > allowed if KVM_CAP_DISABLE_LEGACY_PRIVATE_TRACKING is true. TDX VMs > > wishing to use guest_memfd as the only source of memory for the guest > > should set KVM_CAP_DISABLE_LEGACY_PRIVATE_TRACKING to true before > > creating the guest_memfd. > > > >> Even without mmap support, allow all the types of VM to create > >> guest_memfd seems not something wrong. It's just that the guest_memfd > >> allocated might not be used, e.g., for KVM_X86_DEFAULT_VM. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > p >