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 6E090C5B552 for ; Thu, 5 Jun 2025 17:16:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 062BC6B00B7; Thu, 5 Jun 2025 13:16:02 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 014006B00B8; Thu, 5 Jun 2025 13:16:01 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E1DDE6B00B9; Thu, 5 Jun 2025 13:16:01 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id BC9B26B00B7 for ; Thu, 5 Jun 2025 13:16:01 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 5CB5814109A for ; Thu, 5 Jun 2025 17:16:01 +0000 (UTC) X-FDA: 83521999722.10.98380AE Received: from mail-pf1-f201.google.com (mail-pf1-f201.google.com [209.85.210.201]) by imf13.hostedemail.com (Postfix) with ESMTP id 48F4C20016 for ; Thu, 5 Jun 2025 17:15:59 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=YAG0le5T; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf13.hostedemail.com: domain of 3zdBBaAsKCL4egoivpi2xrkksskpi.gsqpmry1-qqozego.svk@flex--ackerleytng.bounces.google.com designates 209.85.210.201 as permitted sender) smtp.mailfrom=3zdBBaAsKCL4egoivpi2xrkksskpi.gsqpmry1-qqozego.svk@flex--ackerleytng.bounces.google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1749143759; 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=SSVYQ6jDIzMP1h49cjWCLnK2DseIKfFH2zMdtqnsdf/nQzopWt2OZOySFuDkYedr48UlHb PXEquV0q0QygwP/GPyLsllj9ecpyPHv1tbSjbU1UtDL0c6p4E8Y1ig2kub9VO6VkbENq3v Vpz8/0yq3PVnJBQZ5oUh3FfhgTMAopM= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=YAG0le5T; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf13.hostedemail.com: domain of 3zdBBaAsKCL4egoivpi2xrkksskpi.gsqpmry1-qqozego.svk@flex--ackerleytng.bounces.google.com designates 209.85.210.201 as permitted sender) smtp.mailfrom=3zdBBaAsKCL4egoivpi2xrkksskpi.gsqpmry1-qqozego.svk@flex--ackerleytng.bounces.google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1749143759; a=rsa-sha256; cv=none; b=CFAywNoTPr+Nv0Nqff98z79brz8zgLS/h9PkM3gWfmAo25qAQFwnaMbQVCh7xRMVGQDkzt 8OmYUvwg6L+bu1d+Dd2twiZP3OQpD/rVuYD96ufGci2PZqMcXY6qbr3TuOHlgr5UC5CPrG HAu0Z4uBJzgyXC8DxVVB0ut057QURFk= Received: by mail-pf1-f201.google.com with SMTP id d2e1a72fcca58-73bfc657aefso929905b3a.1 for ; Thu, 05 Jun 2025 10:15:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1749143758; x=1749748558; 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=YAG0le5TeXbwaV1ed8WSvtFfKcHnEGzWPvecIGEaq5V+1HmiwSk9qAarGnhyo/ObyR k4vX21+Etg0hFR2LB5NTGdpz2xXvO2jBFXmBnZ5wPq8So6d1UmtT4jxJgRackUlmIokB C9xYLHRPkOjRNifAFAcCTHmDgTYo/zWI+iw4LCOMCI7RN5zlb+MhsM2jiiR/o+e2/jfi i0/IV8Xu/a1CGq/KFlZPOlEfHGFc3oHLTDJaDsYWFxMr1RNA8Qqo4OLTYrjGDz7DfqFd 6VMlU1lGs/BCWdkX6kI/r7KSFRQJ6djvJxAlseJqQRijzhHevjdYuaPyLuQvYdwFMub2 jZPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749143758; x=1749748558; 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=gAH26ub7OfQFAOdmDsNP1O3Uddc2WH2BfyinCU9UK5jlVUw3pjjTnH541nHMCAesfa nUGVM7oeSnCZf5K4ATq3WiuusnGhivEsMpv1u2GTERe+nxC94EUXoiVx3ny1VUEKw7q6 /uoRpre0dnNbjS55i9QQ/fvVb30qQTuP7QRs2mNeh7/X44Kts9CeOThCnTsoTWQin33G fVOL/vY04QtqKvZcxdiN1OcGhYFKKrViPJIJkgamZq9FHqFERGE91bxq25UoM+XkUyOh VrTOAg8SFKN61itQ0BcyzsBeypE4nDciSl+Hvh0fEaiI5K0Ns/5g/rSs2s9IIeAGfyVT bhRg== X-Forwarded-Encrypted: i=1; AJvYcCUBR3Fx2f9q0EB5rT9zZsssRGVWyCwfDpIrQdp/ntlFfl5oCXniUe5OYqJBYnkq4hSWXzKeij18Bg==@kvack.org X-Gm-Message-State: AOJu0Yxwn/HNeaMAJFiM5f+UR4M5PopOAmQJcwVaCjEGszE8db/mQrQS o3JcvxEbW18pM/py7JJt5i2W2Ik4nct2VGTjSAKgo2LA/WIlGOtrqF3IRx3ZjJtfjjQO/ryBdRp ycYDViAtuUM1ZVUlvbiTbuhHE2g== X-Google-Smtp-Source: AGHT+IHR3VOIiMaXef3dSyiefFvR0BSAkbNXMc/PNNBHc5HJZyLp7dkRgDqMefJVOModcnjrV8QSGFx91L6zxAGgtw== X-Received: from pfef13.prod.google.com ([2002:a05:6a00:228d:b0:746:301b:10ca]) (user=ackerleytng job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:6ca3:b0:736:34a2:8a23 with SMTP id d2e1a72fcca58-74827f10b6bmr586610b3a.15.1749143757947; Thu, 05 Jun 2025 10:15:57 -0700 (PDT) Date: Thu, 05 Jun 2025 10:15:56 -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-Server: rspam05 X-Rspamd-Queue-Id: 48F4C20016 X-Stat-Signature: hwws6qdehy83uppub7i4e5e96jj3b3qi X-Rspam-User: X-HE-Tag: 1749143759-168652 X-HE-Meta: U2FsdGVkX18CncI8QBweDAU8ixssMyk60jB+bPFaqdgGdoVkIknZMQLs+4SGUENX0hh36WKCrpmwd0isuWWXTskUqYfG7NVL1gFe1vPIHoQ/1m1vPY6w5w75yNHq4Jqt+iCf3qef6P9G4Oll2HvfxY/Aj2sjpbzla7MxNtvN3RO/rJnQ5emsHGAS8rU6yKFCCpP8OpX9oxtOHSbgQxYYQWQVl4PjbwXSmTQ8pnHSkuw3rHeZJxdsT3v+5LsR74LFc+wPiGSInIRL2bbe5ajkkxLNW4EZjm0UenJVKTRkMibvhzHy2PnYC8oRIqxvQi/73PHAu69UKk4uZIDHrQH7KFZBVhmAYVBLSaxWihjz3DBZCqZ+bac2yL5AUKUfkvoyakV27PhpqA/BcHv2+p6+eX+rZU+QbwgOLIGYA1f91YBjmu/l6HNFU/3HmIRPMWgGYhRJXvrJGF2Iq20H+qWBZX/6Ix4RQOk3Nee+kFNWtuJ8s56O/woDWXHfKyYIFmgT+2m0TExQFYmftgcthV0CkSJPBZIj1anxDA+H4rkFbuDpmBziigQGPBsJG9n6xzLdmyOEMqZdkOD+NOgPfYu4bnG5P48+md3VR4eF7QGODH3Oqp+Xcix0A50CwmklpdloEmDtn9rXRNQvGwKLKQ7yzN4DkUVz1Rdvu3j2cAKafSxA/deiBh/xnfEIQtuiA0041AR7OjdpH8gReF3Tn15ouLpgHmVEyso3059tIOvvwazawb1OnfQh2pRQMZ3PneWOEQMD3ccYk7WSpq3oEj1OVWcmMbE9G2pTrCPArjNsmkvKHl+oUTBQ5qmQtY7FtgN8+nLn0YcfDaiWCA0QmkjCKy2aQABvdGEmduAq2zQWJgyT4LHdxmJ8FnsBGLLha9ZgHNtm3Sf1egnKxMzJPAZBX7oxaHtF8WcpqJ8Y4QV1DzOEMTqarRukeQ1UeUG7QwSKv4zDjywqOFrQ9IuLl6Q MSJfz+uF Y4JUoO7o5h9TCLRkmZTmge5j4rI4bvme4L8Osu1fxl68gCkIlEb7eJ206WwnpJf9ubXmdjmX+Fz615X4StClWVijhriId2zb4Ye5BEKKdWAuHzD/xKD0mvMcCq8uA9OtbemWO+GqGZjhxnP2VLwSHWuVjhEpbgIgiRTLcqUWEO6UM5y3aYUmzxD7tY5oc22UJMq+bY10oooZIXVxEOodtwsgOTi/PAYq+NB8VaAvO2Q+BUMacFzo4ZvMjXqOmcsBAO7sN3E+d2h2LTAQW9OwKQq7KmFHI2Z7X9YCW9B2O3AU19jn7FGeoNqA0ZmxNeDNlwouI9WbVOpnYq262VG9UHh3KnrRd+OVZRU3ojb5qXHqNmCi4CU5RTow+W1wT/Zk7CCczDwQwJiZLkOV/gpYMrFshSvWM95rib7ylOgLzykyUekCIR/CqcPgiUrkvpmBcwxXFUqJRRY1uL+TRaMGOAgHn+PkWRsuMtPMGvJdq7KCdTwWJVbV4jPJbOBbkuq0L088JPaxqWlNbhiOG/vrXxB8cGkKZb8Wuzo8RcDpk0TcryHNVjg6TojevfVRiheN7N6nyA/XHp9Y9xpnUQYHYglV5l6mNAv/ivAgxC85xoEa2dozLbJl6DThgSKOWc5GPmchrWsjJelhFOcbZopFSDzLE29RUGofGANn9hJG5r3gjd3+d1Z0EKBf2W/R4P16ip3IaAdX9V4Fpys4jwwjef4okTy4+9B48bkzg 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); >> +} >> +