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 C99FEC5AE59 for ; Thu, 5 Jun 2025 17:16:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 62FC46B00BB; Thu, 5 Jun 2025 13:16:24 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5E0F26B00BD; Thu, 5 Jun 2025 13:16:24 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4A8216B00BE; Thu, 5 Jun 2025 13:16:24 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 2A41C6B00BB for ; Thu, 5 Jun 2025 13:16:24 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id DBAA180F90 for ; Thu, 5 Jun 2025 17:16:23 +0000 (UTC) X-FDA: 83522000646.06.10AB191 Received: from mail-pf1-f202.google.com (mail-pf1-f202.google.com [209.85.210.202]) by imf21.hostedemail.com (Postfix) with ESMTP id AAB701C0010 for ; Thu, 5 Jun 2025 17:16:21 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=Pl+SASW8; spf=pass (imf21.hostedemail.com: domain of 35NBBaAsKCNU13B5IC5PKE77FF7C5.3FDC9ELO-DDBM13B.FI7@flex--ackerleytng.bounces.google.com designates 209.85.210.202 as permitted sender) smtp.mailfrom=35NBBaAsKCNU13B5IC5PKE77FF7C5.3FDC9ELO-DDBM13B.FI7@flex--ackerleytng.bounces.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=1749143781; 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=1BvVogHbLCy3WniKJnzNXayCUjBrxVyVRH9sGv66360=; b=JcN8UFEMAOunR2RDvXyvdG9tMuZxkbPsLXhIIYHjuj8LWBpFe8uUoHtZ2d6QUG1tU8TLiR 6wklVRfOndXqAwtb9akNgOm1VrdlgWR5PDkEqMEUiQSzikQkMadG6YTemeZxdvfdkiKMPe DkL/n7UA87LZIdjU9s0er17IKONtV78= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=Pl+SASW8; spf=pass (imf21.hostedemail.com: domain of 35NBBaAsKCNU13B5IC5PKE77FF7C5.3FDC9ELO-DDBM13B.FI7@flex--ackerleytng.bounces.google.com designates 209.85.210.202 as permitted sender) smtp.mailfrom=35NBBaAsKCNU13B5IC5PKE77FF7C5.3FDC9ELO-DDBM13B.FI7@flex--ackerleytng.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1749143781; a=rsa-sha256; cv=none; b=gJPPKbEopgB0mdTqrm+WV+wdOQTkpKBK/ex9J7bBNN/4JaV0pEnntEBrzKArZtOg4JpLA7 By2KegmoB9VA7NsAsfeNo/wNotpAl0ugCRKQcvZ37gaU4BOsafmu0hbVbdScpp3mAYt+7Y bCFxDBeVsW038baEWaCtCJtKf2fs8Dg= Received: by mail-pf1-f202.google.com with SMTP id d2e1a72fcca58-74292762324so1300855b3a.0 for ; Thu, 05 Jun 2025 10:16:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1749143780; x=1749748580; darn=kvack.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=1BvVogHbLCy3WniKJnzNXayCUjBrxVyVRH9sGv66360=; b=Pl+SASW8WG5UmUDtHl+3s6F9+f8w7KPft5OoKOePRP4Z+EBWW8UKWHacx62aLtSgtT rtQkYr309a9OTUW5md0MJ6xZ00U078YDtJXCEwo0BjD2LetrW7ELH6CwCp+6Gb+RLSho kc0SmH0g3Y4L6amS1mBY1Ib7q/rjEF0JwnTzHA2cxvZt4XqlJk28QnhiLNtBDcFYoWF4 otRIrQGWlvhNHJJbqj7IhmAcguQ8aZQZnIvWVhof6INM29DKOxy31036F3xIA5YpNcR8 k0pOH6J2FpjpaM9AR7u6LN4gKdRbzmYkEBiQwwJhn9DEWXhPs5ZnxsJpsc1hr55Bf3Kp nupg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749143780; x=1749748580; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=1BvVogHbLCy3WniKJnzNXayCUjBrxVyVRH9sGv66360=; b=OfVek21RSdytHG0KFn67MCZHbNPbTIgeVgiU0aZYoWGrfgKNbghbEYxxz0vUykO9ov FDpWAS92pnu5s+d2j7pyJROCagesrwoxj2/TX6TNYTtbONbJlpToSRKeHzdbIOwIIkmX g7fhoxoeNZzltkIUr2XgmCDHmU4sb5MiMEyQMrAjZuXHf0F3aE6kKdx/8ArwBuv3rTPO C9s5TXt80fNb3I7iKkHwjFS6YbJoygqFyqHbA/CPBJE1V809Hx8QO46mRXcK1Ua8p0Df +LX+lvACYP7BffkwfU7gcpfuQRJ8g9F6UZxmqNM8vzU1dewhHBxCHpeWw1ofanpfbbWD hhzA== X-Forwarded-Encrypted: i=1; AJvYcCURJA9XRQt3F9beBkDXqdwzuBqBDcIwprSYbSZF0f6ffqA4H9BHmBwu8FAg5MJeHrhGkkBrQd9vBg==@kvack.org X-Gm-Message-State: AOJu0YxCmL/ceEuB2AUTuVXSx2IED+768h3FxW4BUlk/qyWvq18LYipE tHkDEu2On7jujJ+k2ijttwb6zX+kF+OWnWSOj0IBDR1Hc3YEhpugWGMp6j0Q3gIGWp5Mo3WgRHF /cyihQPhoIqiYThTrPTgT4P92Xg== X-Google-Smtp-Source: AGHT+IHrHrufhfOgqsSZMYYGmnf8by8Ce09NkloD1+JcTL5IynPrkehej7WsZeM9qeq9p5D9AWLP4i2IXr0GIs1k+Q== X-Received: from pfko22.prod.google.com ([2002:a05:6a00:2156:b0:746:30f0:9b33]) (user=ackerleytng job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:218e:b0:73e:30af:f479 with SMTP id d2e1a72fcca58-74828067b30mr550569b3a.19.1749143780316; Thu, 05 Jun 2025 10:16:20 -0700 (PDT) Date: Thu, 05 Jun 2025 10:16:18 -0700 In-Reply-To: <85ae7dc691c86a1ae78d56d413a1b13b444b57cd.camel@intel.com> Mime-Version: 1.0 References: <7753dc66229663fecea2498cf442a768cb7191ba.1747264138.git.ackerleytng@google.com> <85ae7dc691c86a1ae78d56d413a1b13b444b57cd.camel@intel.com> Message-ID: Subject: Re: [RFC PATCH v2 38/51] KVM: guest_memfd: Split allocator pages for guest_memfd use From: Ackerley Tng To: "Edgecombe, Rick P" , "kvm@vger.kernel.org" , "linux-fsdevel@vger.kernel.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , "x86@kernel.org" Cc: "palmer@dabbelt.com" , "pvorel@suse.cz" , "catalin.marinas@arm.com" , "Miao, Jun" , "Shutemov, Kirill" , "pdurrant@amazon.co.uk" , "steven.price@arm.com" , "peterx@redhat.com" , "vbabka@suse.cz" , "jack@suse.cz" , "amoorthy@google.com" , "maz@kernel.org" , "keirf@google.com" , "vkuznets@redhat.com" , "quic_eberman@quicinc.com" , "mail@maciej.szmigiero.name" , "hughd@google.com" , "anthony.yznaga@oracle.com" , "Wang, Wei W" , "Du, Fan" , "Wieczor-Retman, Maciej" , "quic_svaddagi@quicinc.com" , "Hansen, Dave" , "ajones@ventanamicro.com" , "paul.walmsley@sifive.com" , "nsaenz@amazon.es" , "aik@amd.com" , "usama.arif@bytedance.com" , "quic_mnalajal@quicinc.com" , "fvdl@google.com" , "rppt@kernel.org" , "quic_cvanscha@quicinc.com" , "bfoster@redhat.com" , "willy@infradead.org" , "anup@brainfault.org" , "thomas.lendacky@amd.com" , "tabba@google.com" , "mic@digikod.net" , "oliver.upton@linux.dev" , "akpm@linux-foundation.org" , "Zhao, Yan Y" , "binbin.wu@linux.intel.com" , "muchun.song@linux.dev" , "Li, Zhiquan1" , "rientjes@google.com" , "mpe@ellerman.id.au" , "Aktas, Erdem" , "david@redhat.com" , "jgg@ziepe.ca" , "Annapurve, Vishal" , "Xu, Haibo1" , "jhubbard@nvidia.com" , "Yamahata, Isaku" , "jthoughton@google.com" , "will@kernel.org" , "steven.sistare@oracle.com" , "jarkko@kernel.org" , "quic_pheragu@quicinc.com" , "chenhuacai@kernel.org" , "Huang, Kai" , "shuah@kernel.org" , "dwmw@amazon.co.uk" , "pankaj.gupta@amd.com" , "Peng, Chao P" , "nikunj@amd.com" , "Graf, Alexander" , "viro@zeniv.linux.org.uk" , "pbonzini@redhat.com" , "yuzenghui@huawei.com" , "jroedel@suse.de" , "suzuki.poulose@arm.com" , "jgowans@amazon.com" , "Xu, Yilun" , "liam.merwick@oracle.com" , "michael.roth@amd.com" , "quic_tsoni@quicinc.com" , "richard.weiyang@gmail.com" , "Weiny, Ira" , "aou@eecs.berkeley.edu" , "Li, Xiaoyao" , "qperret@google.com" , "kent.overstreet@linux.dev" , "dmatlack@google.com" , "james.morse@arm.com" , "brauner@kernel.org" , "pgonda@google.com" , "quic_pderrin@quicinc.com" , "hch@infradead.org" , "roypat@amazon.co.uk" , "seanjc@google.com" Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: AAB701C0010 X-Stat-Signature: hwws6qdehy83uppub7i4e5e96jj3b3qi X-Rspam-User: X-Rspamd-Server: rspam04 X-HE-Tag: 1749143781-765263 X-HE-Meta: U2FsdGVkX1+QgOFFhl97aMmpZY24U/MibX8adgo5rRvqDOgxZ1wiq0cdIpBBbTW5y0MhtCO7w7B7R+QwPYZhX6jv28LuI5WEApIOzvi+pkAsRMO+NGpwmV51gkbzY5WgfpqUkQHN7FSGN+DWzvVhLp4nxHOLnFloLgrHS7QCIoGrArcDtQKXKILN8Mb9szZXty9giu2fgvPP2oLE6PKdDRSAZRzB6NXBL7nWkv0rgzeRBOahMfjXz8ScVPwR1Lpz2KZ//xlJecNK4JmWbayEsPRynxW+/LEazNtJQICuW7Nh2Z2EqlJUnvTe7upjIRYg5QmzmSftR8HC7JuX1wfRT+AajONeck5CcJUvuW0xk72Cnc7xDq5jIGKnJD24t1ySwToqfyq0GFyFxRoPrVwQawOdoB0qcIDpTeHvmv0OOlG0A8xuU2pYJUmcUpc3w2LQ+XjIHwyXGCMJ6TteBQ0rFOFz037qMXpJV8VLX8TPWloMo1rkf1Wk9kzztFOiSzadDtGtWN7nV2NVIfyLryHMjWvPhl2UkwCxsWzlp4hWp9PFywZXsLkdWpode7xc85YbBOf6u3XJDlZqHSY3yYQF9CSeC0zzLUaM5JGu8+DGq4laKIsGVpzCH1nAHbic22fyOs0LIaTwL9+fIexDzaynTM+OLl+6BhiYm3nOee8QAKqrMpdBm2a0w6I7nOszwGxJ0XMdl/ASS68rCOS+kmDKnPEWaoMYicmZ13V1aK/3N/YuVosOKK+MU6z/9jsKttEm3e6PYiKn0tqQ6hjIAyblNAmLraIbKJfqyNU3N98t8SZSbx/2y1QPJeIONgrJJRvAewQsO5yjUqNpm1Ulc5m19lcCU5ONdN6R0lO8tMPGr/c81vLWsfQUztNuegVT42iHcd+Q9O9onPcBYfHE7/h+JFZy2SsRwuL622NxvD43gbw0UOsjQdqn1YKjgGul6M1zM2RWzwHo34NUgJkZGsN fn95K/PG mdmMF74iQYOidvsNKla0yxpnlODftR3LnuR3na98BSW50HL6Cwwn/ZZkwZcJlSEhkBpmFvz4Ij6ls7e/SwykdEGSxble9ygb4EJuK6vvBUQQarCWLp+0viyEsIK+o5sfoXruSAj7z23iG7PH82OeIbF4nP/D1mbQkrqwDtud7Dq2H/PnwnGxDs9pjadRxEitJyUPPHPmiJlYjOFh3xR/yZIbsI1TPlgN3/CL32IaZoZ9NhVmc72dXbQpulogWw27K+UOeFg/sll/aWDjkGaBVINi7wduzdZJSd37VS8HPWpCA7XG0DWSEbupYtXRkR+CFNofCsIqltfs4bcbo0P5dtssHgoOI/lor79S1fe9xWHio67/9zWD9Z47mP4gK/gFUprhjD8st2+GZVPKL+sReSdDu0AuB0z1cZ6JuUx9wRS8A81Lw2Achg4uGAfZOMIDPhPqP0OyjwZZWHjg8GSoZ/NXNdGA3b8NiPHsfngRh5iPV75saxs1IbGwJGX2bZLAW+NaNPRG5LGkM2LEI73jnpiKMBlKL2xWd4eguX10UUE5ydZDGmK2iFHNgMQuhzEwUnNcureQar3GTRadtsK60tMYlHjw6FFSGoM2kgzvp87oxC/b4oAxTH/QPefh5N/2cz+G5LV271bwv7scozuSP5Jg9PMPl/T2uPyHqPuTyk0X7bZ8luFstvQq2lebrHir0kFGZ1OrVStex/SbUV9rVBZui8swWbo4FQC4B 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: "Edgecombe, Rick P" writes: > On Wed, 2025-05-14 at 16:42 -0700, Ackerley Tng wrote: >> + >> +static pgoff_t kvm_gmem_compute_invalidate_bound(struct inode *inode, >> + pgoff_t bound, bool start) >> +{ >> + size_t nr_pages; >> + void *priv; >> + >> + if (!kvm_gmem_has_custom_allocator(inode)) > > General comment - It's a bit unfortunate how kvm_gmem_has_custom_allocator() is > checked all over the place across this series. There are only two allocators > after this, right? So one is implemented with callbacks presumably designed to > fit other allocators, and one has special case logic in guest_memfd.c. > > Did you consider designing struct guestmem_allocator_operations so that it could > encapsulate the special logic for both the existing and new > allocators? I did, yes. I believe it is definitely possible to make standard 4K pages become another allocator too. I would love to clean this up. Not sure if that will be a new series after this one, or part of this one though. > If it > didn't work well, could we expect that a next allocator would actually fit > struct guestmem_allocator_operations? > This was definitely designed to support allocators beyond guestmem_hugetlb, though I won't promise that it will be a perfect fit for future allocators. This is internal to the kernel and this interface can be updated for future allocators though. >> + return bound; >> + >> + priv = kvm_gmem_allocator_private(inode); >> + nr_pages = kvm_gmem_allocator_ops(inode)->nr_pages_in_folio(priv); >> + >> + if (start) >> + return round_down(bound, nr_pages); >> + else >> + return round_up(bound, nr_pages); >> +} >> + >> +static pgoff_t kvm_gmem_compute_invalidate_start(struct inode *inode, >> + pgoff_t bound) >> +{ >> + return kvm_gmem_compute_invalidate_bound(inode, bound, true); >> +} >> + >> +static pgoff_t kvm_gmem_compute_invalidate_end(struct inode *inode, >> + pgoff_t bound) >> +{ >> + return kvm_gmem_compute_invalidate_bound(inode, bound, false); >> +} >> +