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 6CC6AC021B8 for ; Tue, 4 Mar 2025 09:53:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D5EF76B0089; Tue, 4 Mar 2025 04:53:37 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id CC0026B008C; Tue, 4 Mar 2025 04:53:37 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B60406B0092; Tue, 4 Mar 2025 04:53:37 -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 93C606B0089 for ; Tue, 4 Mar 2025 04:53:37 -0500 (EST) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 434E8B7EFA for ; Tue, 4 Mar 2025 09:53:37 +0000 (UTC) X-FDA: 83183406474.24.5416465 Received: from mail-qt1-f169.google.com (mail-qt1-f169.google.com [209.85.160.169]) by imf07.hostedemail.com (Postfix) with ESMTP id 776624000B for ; Tue, 4 Mar 2025 09:53:35 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=2bLinxB6; spf=pass (imf07.hostedemail.com: domain of tabba@google.com designates 209.85.160.169 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=1741082015; 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=66sMzp/Cm4wZveEwx3ZfvlhE5/yWt7J0oMl6pbCu+s0=; b=XYkM9f3cM8etjUSiIAlQgE8kr52QRD4vINM40CwetGtNF2r+1o78Hd67LsxgoIzBsQ1wQD K4kMYncoDxT1Bq+64Ii+u/NwihdGtFO22/Z5tzwHIlcS1PPgW1Odxl7Km/DrHh1Tfu+bUa 5O9+A7bYvUeKbFtwgNscykIU9JMkaU0= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741082015; a=rsa-sha256; cv=none; b=u9YVOyyKzGPa9V7KQqjNQqJmx28jrDLK1fNZY3Dg48Ndtx4RqYEXCt3HwElKNjcrM4FA4s jlDa3qSVXeyYYVhDtVn3fDKI7V/sEbmdXG/fHFFcgRv2XopVSrI+QCLTlRgHNML7h/8CiE uyoiu9nuTkjzQMagoD54qG9MLw9CYfo= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=2bLinxB6; spf=pass (imf07.hostedemail.com: domain of tabba@google.com designates 209.85.160.169 as permitted sender) smtp.mailfrom=tabba@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-qt1-f169.google.com with SMTP id d75a77b69052e-474fdb3212aso174421cf.0 for ; Tue, 04 Mar 2025 01:53:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1741082014; x=1741686814; 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=66sMzp/Cm4wZveEwx3ZfvlhE5/yWt7J0oMl6pbCu+s0=; b=2bLinxB6RjmuGxd+70lvh6GL1ph/S4BxZBnZUsNa/9Wy5OZWt29SqHKYOGHFQA6Gec zJnnbrPsVSjhPGGRFW/naeXYdHzPD5c/37hwORGG6nZPdvGqKx9MwV83YL9pVMej7TLC UES7KaFgGqqstIr7rNOajfZv6xlxaKEI5CoSH1FZ0Sv2ecNcCkplFy9Wcgp2yOHRjFJp wM6o4gx4WF7Cr0Ggr9jIrrSCBudx5BZgI3j0bpyWFBxxEPCCkx5W+tOp+0M8S9/u7hif MNGCk2Fzz74j7JtXp56CihfwzJhX4tfTPqONzddElreSUbuI7MBOHVm8DXLGZV0qcbHI ZR7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741082014; x=1741686814; 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=66sMzp/Cm4wZveEwx3ZfvlhE5/yWt7J0oMl6pbCu+s0=; b=lt5maDoWP895r85ojXh8TRGXuD4LqR8ooaUPBgxqyZU5o9tJaQHdEw1GtxBhm0Sgy2 E8SNIfKMomiKAVJ66kDw8fkD7zUAtyoiyUX/BoohyPorMZRtLxoUvbeZCJFIFWoIVnvv pylS4Huhi6RWaR2LAcVIaZ9d3DZi53Q5ri8eIqFmZj8JbUo7Z/N+e0RIkc6Es4myIhnV sYoiw1XoR0s5RLRxB7ScHtUX9cIuB2gVNYXYQ67Xz3f9n/4oOCulY4f0raZMFS+wRfpy Qdozizfq0u2zLmrtd5CNPrfv72CTttKUXMSd2wDC7cGU083yGnE6fJDL6lC5fLKkk+4T rA7Q== X-Forwarded-Encrypted: i=1; AJvYcCWDLvI9fxbSPpQ3ACZ6qbhjSbijjpEttkeS/74Hb7efDEbRUlzlU77R1lw8uwaqw8D1cO3fs0tz2w==@kvack.org X-Gm-Message-State: AOJu0YyZp7TMkQPaJOkI1A0ZEMBGSjK7x9NnyyJtIzXOBQPSPfcRpL0q OnH3r9LiOyxP/KK1GMMejsuaUFKqtWTdVwnCFuuYkZtWUclH9gVwlJ5/9pvinpsrUA5iUrA/BLP 2ekZtL3OusEE04Py0GLZ7wXfdmXCUXoABNrO0 X-Gm-Gg: ASbGncsWGtkujROOqaLT5eFlXWv3mpT0+xaEIFavWk9+8UT669uSe2Uww1gtD8TI6XS FlepBpKeYXEqtEo+n6PbXSWCXHCM1KzrKkGAjmDF8BtWxp2gUpHUfUxBOwhLPTGEgzaUJrTtPOK dvIYlg6ubt0Ss+XiqlMq7XKcxQXPHlGj2Ay/kTe9RN4pXdneb30UbupYs= X-Google-Smtp-Source: AGHT+IGrXtdDmc7ougcgME9U9gWNQgnQWpiQy4ewD8JMak/fONOpZTSjqwjFN9mKks0LK3XoAW5XrwjgePJs1o7khAY= X-Received: by 2002:a05:622a:654:b0:474:cd63:940d with SMTP id d75a77b69052e-474fc3ab73bmr3994181cf.0.1741082014352; Tue, 04 Mar 2025 01:53:34 -0800 (PST) MIME-Version: 1.0 References: <20250303171013.3548775-1-tabba@google.com> <20250303171013.3548775-4-tabba@google.com> In-Reply-To: From: Fuad Tabba Date: Tue, 4 Mar 2025 09:52:56 +0000 X-Gm-Features: AQ5f1JoUAKEFllGljP-l76jRlZktNiKaaggLcPOt5R0-Wkx4-Odbdi8pyyWFZtc Message-ID: Subject: Re: [PATCH v5 3/9] KVM: guest_memfd: Allow host to map guest_memfd() pages To: "Kirill A. Shutemov" 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, 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, 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-Rspamd-Server: rspam02 X-Stat-Signature: un8j4umn16xwwgfq9uhno5he3uotmabk X-Rspamd-Queue-Id: 776624000B X-Rspam-User: X-HE-Tag: 1741082015-507305 X-HE-Meta: U2FsdGVkX1+HaHLxax7wE7Giiid1vKyeISM4H1oo006U0JY4I/z+fDDbb7orhKE6M1VEl/l3j+lTQXJTnCXY78wj/S1Px0oxPUItc1SzUSkGZIrhL0mFljji866WjxbSN4dTt0Yz9gEIWNbJwG/OfGNXbXCBFG5i5TfXXBcAm2mAEtPaWsI7buoVZQqPm8ELwZWLsGHmIGcYYM/NqDHG+52aLcdCP9gIX3VoQoh6Wdy7IQ1ZHRvndL/HichP3ATiMzGoqQD2rhurpMUTmmW4ktvUa2RVxkdZT2iVuEJlhAlO4eDay41a1c2rMZSHh5e7XtJrhjNC3cH5ENk+7KqTgVSLFefrUaWIRPbeb9czoBzTzFj/5q4rG+PJn0EwwES/OFDQEb4zULTfvkoDG/RLJPSxHJJEmvLPrRPnsDoDBNO8elaDnNj//+keRIy/OYRC4C/xWG39+ZasqABf+nq0T/dD1KwFL3mwTqAQuLkb4MVh/soLJ/DlBc0r1Zmm3mqOnij79iDHCyLgcgO+sInyxIvLmKvHBW90EeplVWBc8eynx/JMohfohirs6cjN6F3oFzZI/F+AdW3IyFVvdZVq9JXKtCjGuD/Jzus6N7RCp5WYg4IFFCHZwUQ3dky6pK5PX5ttrN+SLqjbXSGrEIp3s+F7pLYJ3YYspL7X2qIfhPghK6g5toXCHTV1ehF/4P4fsc5sB9b8xfDTeD7Y/LawZGiDvPvH2Z7vrQs7C8gu/r/GNeJCdwCNS7ro8tcjslAx/ws1Xefq+OmEJw559zBRP+3JaeIiiLmMUUywEM9GX6s6jZulFqJ9T/ZU/FHv2L/QkJ889k3oy1CjiJ0xhleFCCANE1eBBg/Ug8ltMSenvm8g5W8t6q9EpI+Zxwpc9lAqVIyqf03Lo8FRP7euaihHM0MuplLXz1hGT8s2t4vNYR8Pm9intzzGX9vXMpuDsXBwyCK/tecgKvvExheR49y FEpnrPZe bIkU809ydrG3PZym4IgWYGwRKZatqiY58xN2Wwdxar6Q8xZRKeTRM4nUn5Pd7yPLPLGf6qmeowRpcB+Ywdl8aj5TMSMRjEWOk8RHuQ/cWQynGwy6zpoulLMIYz5BsKT8L7Vy0sHUMPHZXErjVpGAg7b+m6ah2ai8z/JCsX6eM0VD2m3r1LNjPtTA4zDhPRtZBshzQ0JNrBOO9jH2y1EULWKOz8kvEVPc5RSP+MCr1QyDrlPUAXvS1UE+F3jB0qXcgWzrnj2lF1T06lAZtgUqIsj887zDTnyfyP/3pEnIgfkNqpSKv/JZesNxkWnc7JmWsxs7qAPROtOBhBre3Tx4vvEZxWrSkj/NMvJgkBF2QmBs0mB0= 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: On Tue, 4 Mar 2025 at 09:46, Kirill A. Shutemov wrote: > > On Tue, Mar 04, 2025 at 09:27:06AM +0000, Fuad Tabba wrote: > > Hi Kirill, > > > > On Tue, 4 Mar 2025 at 08:58, Kirill A. Shutemov > > wrote: > > > > > > On Mon, Mar 03, 2025 at 05:10:07PM +0000, Fuad Tabba wrote: > > > > Add support for mmap() and fault() for guest_memfd backed memory > > > > in the host for VMs that support in-place conversion between > > > > shared and private. To that end, this patch adds the ability to > > > > check whether the VM type supports in-place conversion, and only > > > > allows mapping its memory if that's the case. > > > > > > > > Also add the KVM capability KVM_CAP_GMEM_SHARED_MEM, which > > > > indicates that the VM supports shared memory in guest_memfd, or > > > > that the host can create VMs that support shared memory. > > > > Supporting shared memory implies that memory can be mapped when > > > > shared with the host. > > > > > > > > This is controlled by the KVM_GMEM_SHARED_MEM configuration > > > > option. > > > > > > > > Signed-off-by: Fuad Tabba > > > > --- > > > > include/linux/kvm_host.h | 11 ++++ > > > > include/uapi/linux/kvm.h | 1 + > > > > virt/kvm/guest_memfd.c | 105 +++++++++++++++++++++++++++++++++++++++ > > > > virt/kvm/kvm_main.c | 4 ++ > > > > 4 files changed, 121 insertions(+) > > > > > > > > diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h > > > > index 7788e3625f6d..2d025b8ee20e 100644 > > > > --- a/include/linux/kvm_host.h > > > > +++ b/include/linux/kvm_host.h > > > > @@ -728,6 +728,17 @@ static inline bool kvm_arch_has_private_mem(struct kvm *kvm) > > > > } > > > > #endif > > > > > > > > +/* > > > > + * Arch code must define kvm_arch_gmem_supports_shared_mem if support for > > > > + * private memory is enabled and it supports in-place shared/private conversion. > > > > + */ > > > > +#if !defined(kvm_arch_gmem_supports_shared_mem) && !IS_ENABLED(CONFIG_KVM_PRIVATE_MEM) > > > > > > Hm. Do we expect any caller for !CONFIG_KVM_PRIVATE_MEM? > > I think you missed this. Yes I did :) You're right (reading between the lines of where you're getting at that is). This should be +#if !defined(kvm_arch_gmem_supports_shared_mem) && !IS_ENABLED(CONFIG_KVM_GMEM_SHARED_MEM) I'll fix (if you agree with my understanding of your comment). Cheers, /fuad > -- > Kiryl Shutsemau / Kirill A. Shutemov