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 8279DC28B24 for ; Thu, 6 Mar 2025 17:03:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4D0B5280002; Thu, 6 Mar 2025 12:03:16 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 47DD1280001; Thu, 6 Mar 2025 12:03:16 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 31F9E280002; Thu, 6 Mar 2025 12:03:16 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 0F6F6280001 for ; Thu, 6 Mar 2025 12:03:16 -0500 (EST) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 57261AB268 for ; Thu, 6 Mar 2025 17:03:17 +0000 (UTC) X-FDA: 83191746834.13.13EF2DC Received: from mail-qt1-f174.google.com (mail-qt1-f174.google.com [209.85.160.174]) by imf17.hostedemail.com (Postfix) with ESMTP id 340034003A for ; Thu, 6 Mar 2025 17:03:15 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=DFrRKqS9; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf17.hostedemail.com: domain of tabba@google.com designates 209.85.160.174 as permitted sender) smtp.mailfrom=tabba@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741280595; a=rsa-sha256; cv=none; b=jSTY13pnetMEa9C/o+jrrVWiYNhVETsErUxxQhdBu5v64Oo28zbaSve+ER4a66flhiI/h/ cgXqTzV/19doO3unySYqzwfc2Lfc40DyiRe98MzRHabgPIcJ1n0ARapLvdk/as+UE8dLZj HQjh7/4Ujk0xbZEQxxGK3fYViWUJrhg= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=DFrRKqS9; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf17.hostedemail.com: domain of tabba@google.com designates 209.85.160.174 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=1741280595; 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=4EMbFFYJ1L3mBwyzCsveQHnx4Pg8IDkCRue104JrOR8=; b=UohorKWcPV2ft8Vo1b68iSOs5IXvV8+yCGRAI3D0VVnwCMbFRzalcimiuI1JK6SLr7QqjG CUj/QbQImITquWERXEprB/MATZ8aSJJB7gznAxA7eV6Hi60lNE0J57VXkTrnHUBylRH2Pg yBdZ6Ixi2cBiJXN/6jUz3nLNfpv2PbM= Received: by mail-qt1-f174.google.com with SMTP id d75a77b69052e-4750a85a0ddso272061cf.1 for ; Thu, 06 Mar 2025 09:03:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1741280594; x=1741885394; 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=4EMbFFYJ1L3mBwyzCsveQHnx4Pg8IDkCRue104JrOR8=; b=DFrRKqS9vR5XkU7bjv23mByHP/372QTM/Kg77N0W6BruuwwtzUQmJmzjiBCBVsVE39 caUdIf3xe19pdzAUsHcx4EgBTbZKbwNUY2F80b7adi6RHbMoXabpvrlimYcihlersBrF n5Nm72SZDwtXrCOsW4aK2nJUrzfxnI1F2icFrOUV+UWARZbeG6nlwqnVmKFU8aJxUGNC wuPFqx8/5Gh+nr19rJ6xhQaUHNrMsYJSIiQAk8Z+2wT0jI7RXWVEQ+wksqCMoinIzNRK iV7a3UpE18P58HZ6yWwOPEd06A1oRsa+y0xrfnZTsc0gnHH34fez/kQLQKwtNtkT53/B ++OA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741280594; x=1741885394; 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=4EMbFFYJ1L3mBwyzCsveQHnx4Pg8IDkCRue104JrOR8=; b=wzp6OJ2wh3YcDMxxGoIGAtws1CPMbK6zg7yrXUXmNXHtZbtP1tRTVP4kZe9oMobAts 3kNl03OB/MnprP6lVNQuuWEk+IvEdvXnBdzBfZAmXLmEPdMVyvvh37bU0WFSM1StPQf/ bHSVDn4GAyT+d1UYotZrXTAUW9YlY24lKmSpDjS9zRr9ey8eOyqTlh5sUYsoG9wZKn1N J0ZImK9vz4GsT6NiS37WyQSOm0/K5b9tG1uknVlc8XsHQV5RlPcYR9FtCCTcjq9WK+MY J9w7U/aoeqtzT1TA7zh1297uH6UkGfFUxvim/84gf970tUOeD4yXu5LDBvob13w1CgMh 0Qfw== X-Forwarded-Encrypted: i=1; AJvYcCV8YYqefXDpPy8NeGv0n6GLkHu0XVel2OASuZsK1uvG63jdW33kYXQbHSI7dhlXQlcbzdwh3QkM6g==@kvack.org X-Gm-Message-State: AOJu0YxlcKz+0DA6YSDpU8gbhlaFEql0CF/F8jfqQ7+NV25J1yAHuvMO L2RR32oRRYb72EilRQCVBtNYJqDREVuJVyyWErJL8k+ACgFDKFpxZLdV7JZX34Ydzo6g4cUfJBK SEgLZ2AO9aJqQeB1DxAia4lbO5pHf5hQjOfp/ X-Gm-Gg: ASbGncufT1CK5mOkQzcH89hdGsFenF+WY7787k7bqGFQZv5iRryfm8ZE7H9PvFK6joH Xm8OnKgcOD0uOyKiotYXu2SFtnp1pQ5TE4IgtlFJ3ROMgY0GuU2+QOch5nxD1m9LOlQW+W1nD/J F5wAzHYY4q6h1l8A9FbL6YwE91 X-Google-Smtp-Source: AGHT+IFscbfbEjQWzgP/Q0C4syso7M3jLLXL+09eTxjQNjzcEV/iwWGPrS218eIlgnbeDmmG2MI/wuau2W2s73zwJUo= X-Received: by 2002:a05:622a:54f:b0:474:fb73:6988 with SMTP id d75a77b69052e-4751b0f4665mr4590771cf.24.1741280593410; Thu, 06 Mar 2025 09:03:13 -0800 (PST) MIME-Version: 1.0 References: <20250303171013.3548775-5-tabba@google.com> In-Reply-To: From: Fuad Tabba Date: Thu, 6 Mar 2025 17:02:34 +0000 X-Gm-Features: AQ5f1JqLAreIPGMno5EAURP2cZNEzAHzAi-nToyKh39XwFjVasgUAzUIjnmcvsY Message-ID: Subject: Re: [PATCH v5 4/9] KVM: guest_memfd: Handle in-place shared memory as guest_memfd backed memory To: Ackerley Tng Cc: kvm@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-mm@kvack.org, 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, 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, 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 Content-Type: text/plain; charset="UTF-8" X-Rspam-User: X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 340034003A X-Stat-Signature: irms3z3ksdoar6idusrecc7x819hrq8r X-HE-Tag: 1741280595-739225 X-HE-Meta: U2FsdGVkX19LQ6jOZFNbhlJd5gn7TskqTc4Q87uMDNAWwOENwA6FKQiUDpk9D3R8C975gJaRBZ9xxqb1hDNR5qbNSFMa9wr33ghtnMreczy3R7Pqsksisl7z04QvyqHOtkEayLVasvKU/T9A0oIF38lsix2TkTIJc50L52l5m7Gqw/DuZlYRogpd9htKwbNDMR/52ORlqZy0wtlXB3Bqh2Trs6jGQ1SQ5udJkvlYJvVL+TbZYPW41JfzA7Pxt8Gz9sxppPCq1u1OW+MeY+TimCs6lt37FfNljgxJ42UhF49nb1CjEl2S8oPxsxu2y+cOBXyKrulE5YUoP9YFLsT2M50uITUQBrB4f9j776o0myPNKB4Q2FWugAvMTAFJqR8Yg53KzWpEI6nUJfMWfW97kWM+9au2O+WzlwZ/xNwolR0citKwioyHY8RnGy7QGhaSWEX6tbowBCLS1S3edqsg5BpyVR4ktVVrxLnQoruffiAuxg+otO+OF3WH0E2DqbbLbbn9p8kVzF+IXluJ7u4RsaEl8SYjCVadDrNK9O1wlKKcDW+HYsgg9qX4Dg6O+yVLLwoeoDBVfnZNochidds/u6lO47H+O2LChdf5GORp1KdQLE8Dl9rAHHDzu9mTupx19eiE2LDoX8mLXbkRLAfFPNqI8T0SdQUPr07KF69wlZz45JbFYazRBbelshZWbS/exDVJ64vRm/4BfPw9HkQezttYmn8OpgZYK9ZaVHZZUJfgAaAhyP5dUZqErsWVoT0m4XqxF9njCZF+mY6EIcbIPOAwbMaUXrKoRD6WEjvxf47v7bVc27hNUFToQx5VY7g2ymVcUFvGyvP8W5uM49Au8APt6IW4q8H3G+uI62yqGvq36a020cRuh8AWttMEu/QesI2uCagmWdWiOBlJVzpAIWufC03MxiuJxwMiSczqHicxLQH2zK8UUJHBiadRJfF4ZSG30VMWQI6hvrHuKYx dhUE1HGD N6QcOZZl1Hldw3t4wpZzqjyB0n98Sm6Q9Qxqlmjb4ldchKyQE1cnQQGvR4Wh0LmpRm6U7gDk9Z1hB7F9CKn9b3heqNpeannP077XlhvFQFRuvmcpQSkiaNOgh62+Dyi3ViWPtXo2kAOwIXDSXLolRcnYZ+jqVgAKixWZyJnv13U+oI9d1IpyJY1Bikoyy4sd1MmU+LiUoK69ykJra+xYD9KMV+ctfvmXK+hLtbw16cmnt3hVs1Xpv/z74r7kARRuv0VMs1S4VPKiTXkPXja/ch0XH3fMPacTvsn/wOZx09tExiUAZGhdEnV/CB0axUVQ9db8D5yKWZSoGDslV7gkeybtSQQ== 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 Ackerley, On Thu, 6 Mar 2025 at 16:09, Ackerley Tng wrote: > > Fuad Tabba writes: > > > For VMs that allow sharing guest_memfd backed memory in-place, > > handle that memory the same as "private" guest_memfd memory. This > > means that faulting that memory in the host or in the guest will > > go through the guest_memfd subsystem. > > > > Note that the word "private" in the name of the function > > kvm_mem_is_private() doesn't necessarily indicate that the memory > > isn't shared, but is due to the history and evolution of > > guest_memfd and the various names it has received. In effect, > > this function is used to multiplex between the path of a normal > > page fault and the path of a guest_memfd backed page fault. > > > > I think this explanation is a good summary, but this change seems to > make KVM take pages via guest_memfd functions for more than just > guest-private pages. > > This change picks the guest_memfd fault path as long as the memslot has > an associated guest_memfd (kvm_slot_can_be_private()) and gmem was > configured to kvm_arch_gmem_supports_shared_mem(). > > For shared accesses, shouldn't KVM use the memslot's userspace_addr? > It's still possibly the same mmap-ed guest_memfd inode, but via > userspace_addr. And for special accesses from within KVM (e.g. clock), > maybe some other changes are required inside KVM, or those could also > use userspace_addr. The reason is that, although it does have a userspace_addr, it might not actually be mapped. We don't require that shared memory be mapped. Cheers, /fuad > You mentioned that pKVM doesn't use > KVM_GENERIC_MEMORY_ATTRIBUTES/mem_attr_array, so perhaps the change > required here is that kvm_mem_is_private() should be updated to > kvm_slot_can_be_private() && whatever pKVM uses to determine if a gfn is > private? > > So perhaps kvm_arch_gmem_supports_shared_mem() should be something like > kvm_arch_gmem_use_guest_memfd(), where x86 would override that to use > mem_attr_array if CONFIG_KVM_GENERIC_MEMORY_ATTRIBUTES is selected? > > > > > Signed-off-by: Fuad Tabba > > --- > > include/linux/kvm_host.h | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h > > index 2d025b8ee20e..296f1d284d55 100644 > > --- a/include/linux/kvm_host.h > > +++ b/include/linux/kvm_host.h > > @@ -2521,7 +2521,8 @@ static inline bool kvm_mem_is_private(struct kvm *kvm, gfn_t gfn) > > #else > > static inline bool kvm_mem_is_private(struct kvm *kvm, gfn_t gfn) > > { > > - return false; > > + return kvm_arch_gmem_supports_shared_mem(kvm) && > > + kvm_slot_can_be_private(gfn_to_memslot(kvm, gfn)); > > } > > #endif /* CONFIG_KVM_GENERIC_MEMORY_ATTRIBUTES */