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 0E88EC2D0CD for ; Wed, 21 May 2025 18:05:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 626026B008C; Wed, 21 May 2025 14:05:50 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5B0376B0093; Wed, 21 May 2025 14:05:50 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 477F46B0095; Wed, 21 May 2025 14:05:50 -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 29F926B008C for ; Wed, 21 May 2025 14:05:50 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 61859120F54 for ; Wed, 21 May 2025 18:05:49 +0000 (UTC) X-FDA: 83467693218.14.24A2484 Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) by imf06.hostedemail.com (Postfix) with ESMTP id 6B0BD180015 for ; Wed, 21 May 2025 18:05:47 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=ETfOYUPc; spf=pass (imf06.hostedemail.com: domain of vannapurve@google.com designates 209.85.214.173 as permitted sender) smtp.mailfrom=vannapurve@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=1747850747; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=ubZduvx/cYHhuXsc0YXgIW6eAhMzKqsU08W4pEGJ/Pc=; b=cBuPeJWfH7aqOzuEjvXlKE2LbReFOaBuwlD3h1MzIt087JF0GwVIlWWlbJ2M2Hp3BFkhKh gsYrcbuFJURTSrN20ubSnkzijlUK6GAyVLUwML2dpAHAdAlMJ/WsFUugGu6GXBdI9zguop O6NG4o5vZGgCCYeOsGRnDl5r8Hjcc0Q= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=ETfOYUPc; spf=pass (imf06.hostedemail.com: domain of vannapurve@google.com designates 209.85.214.173 as permitted sender) smtp.mailfrom=vannapurve@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1747850747; a=rsa-sha256; cv=none; b=Xo3ZEG2gbzaEsTgAJEEnUXfFH8PgpGEXVg763erzyUp5yb7bXy8FCKXhULGoTfHMGwvLJf KsqcyhlYPMcv9rAwZ5MfeDeK408cnY4Ka7HcZaopDHWulrXBErsDBw9n+vNPoiPq5nUxNf FLfDQ4zu9l7JphvPrje5hGcANewOdtM= Received: by mail-pl1-f173.google.com with SMTP id d9443c01a7336-231f61dc510so1110445ad.0 for ; Wed, 21 May 2025 11:05:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1747850746; x=1748455546; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=ubZduvx/cYHhuXsc0YXgIW6eAhMzKqsU08W4pEGJ/Pc=; b=ETfOYUPcpjE9EuIDhKonxpTTNpycj3pdxKxYq/26XNu40ivJ0jrSZomh4fC3EwWURc L8NDqxkly4KY06Y2y5bRJDmvtcVPyOq1SoZXBQ+HqSCCk6oRtMrLxBON3f0ezZplsx4g 8Z4a9jtBHTWwCgaFz7pK/Yxl5X1bqw1TSgHZuNnzee0t5SuqT73k+10vftqL85jCk+Xc GnwtHI5Ps3veg//EmPq6NhG/nspCSu8sb62DJmo+GmF+JKlbCEglJnZAAYglUf+fifxy e9JMVw27pZ1F+m0AosZHbQtvARGtPYyLw7mJ3nAkT/QZr4y1XoCg8Kd4FJcvVSp7JxCx xkJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747850746; x=1748455546; h=content-transfer-encoding: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=ubZduvx/cYHhuXsc0YXgIW6eAhMzKqsU08W4pEGJ/Pc=; b=bBz2dAdujUuSrUnyRcWyiiJthRpHPPu7+LOdkDTDm9zx81fkYaQ3zgv6wVZ2UnHWcr 1hIKCBxhCsXtOtbdAv0y8K7D85FRrv7Tloe9T30OUHiXGFRz0d77Svt/aspEabkyftBu g3M4V2LsC/PbVx3gSzsDfkxj6K8EZH+StVYMZbbzTB5MZW0BqqiWWcBc4kWzzfIkrQ6M UxieC0fUwIoK1PpR7DL8FoqWTZGGf9r7AJ+r5IwDl+TIKt1jKWzuTe9TEQzHSsG/ggJz S1M8HsTyqx9kimQiEMgow5HVUb/ucFZSw7Hba8MClypNZ00kE6pAJs46/ToWy+k8bDEE /5Pg== X-Forwarded-Encrypted: i=1; AJvYcCUhsZIv++bESN2EE2PJXceMC8Lbog6Q48kktb/2ppVHvPKfERNcxUZtTBEcOfbXOa1I0pT1SwFplA==@kvack.org X-Gm-Message-State: AOJu0YxPwXiJa+CB6AQqOO/kD3CSzJA0ffZTrzPj5Yb97ciC12dhGy6y hXGAhO3y4S9y/8azDF+FlFqYvjCuav1VD45Ia+jDf22n9QWGtn7qN4fjhtmhiw6Qly1q1Rqxed5 hwRiursCNZBzqTKAsuLJlA8pb7nsgDJPgcCVz3R/L X-Gm-Gg: ASbGnctp6+qVofwBZ83kRX46Cb0TnmiK7epL4Ffe3Y0sTw2q5CGCA6rnDIKoXTahT9x y+8ygcH7uUl07H87nqBSfbGkDVo5LSt1tjLdMVf/ShAdsSk5Q+4n0tMR0B01Vx5X2MjmQC28Cxq xKNnSox6xcWNK/qTksC3N0IlW0r757eKo3t5DTUnImdhNGkeFXQ2ASh86N7EEs5+4t79ZqSA0in Q== X-Google-Smtp-Source: AGHT+IHmVPisOoELNyl8TlIo/1z2Gy2JQdvRF1i2iTDr537dKpeYFIvLF3liBXDQzvSnoGIzUR4n3Bcy350EhBXDWOw= X-Received: by 2002:a17:902:f545:b0:231:e0d0:bf65 with SMTP id d9443c01a7336-23204143657mr12533785ad.7.1747850745624; Wed, 21 May 2025 11:05:45 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Vishal Annapurve Date: Wed, 21 May 2025 11:05:32 -0700 X-Gm-Features: AX0GCFvVdSODjor7OXlVRx2yQTS_EDakZDYyd8FkQ0_ENzjc8DIITkJ6cFhT2Qk Message-ID: Subject: Re: [RFC PATCH v2 33/51] KVM: guest_memfd: Allocate and truncate from custom allocator To: Ackerley Tng Cc: kvm@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, x86@kernel.org, linux-fsdevel@vger.kernel.org, aik@amd.com, ajones@ventanamicro.com, akpm@linux-foundation.org, amoorthy@google.com, anthony.yznaga@oracle.com, anup@brainfault.org, aou@eecs.berkeley.edu, bfoster@redhat.com, binbin.wu@linux.intel.com, brauner@kernel.org, catalin.marinas@arm.com, chao.p.peng@intel.com, chenhuacai@kernel.org, dave.hansen@intel.com, david@redhat.com, dmatlack@google.com, dwmw@amazon.co.uk, erdemaktas@google.com, fan.du@intel.com, fvdl@google.com, graf@amazon.com, haibo1.xu@intel.com, hch@infradead.org, hughd@google.com, ira.weiny@intel.com, isaku.yamahata@intel.com, jack@suse.cz, james.morse@arm.com, jarkko@kernel.org, jgg@ziepe.ca, jgowans@amazon.com, jhubbard@nvidia.com, jroedel@suse.de, jthoughton@google.com, jun.miao@intel.com, kai.huang@intel.com, keirf@google.com, kent.overstreet@linux.dev, kirill.shutemov@intel.com, liam.merwick@oracle.com, maciej.wieczor-retman@intel.com, mail@maciej.szmigiero.name, maz@kernel.org, mic@digikod.net, michael.roth@amd.com, mpe@ellerman.id.au, muchun.song@linux.dev, nikunj@amd.com, nsaenz@amazon.es, oliver.upton@linux.dev, palmer@dabbelt.com, pankaj.gupta@amd.com, paul.walmsley@sifive.com, pbonzini@redhat.com, pdurrant@amazon.co.uk, peterx@redhat.com, pgonda@google.com, pvorel@suse.cz, qperret@google.com, quic_cvanscha@quicinc.com, quic_eberman@quicinc.com, quic_mnalajal@quicinc.com, quic_pderrin@quicinc.com, quic_pheragu@quicinc.com, quic_svaddagi@quicinc.com, quic_tsoni@quicinc.com, richard.weiyang@gmail.com, rick.p.edgecombe@intel.com, rientjes@google.com, roypat@amazon.co.uk, rppt@kernel.org, seanjc@google.com, shuah@kernel.org, steven.price@arm.com, steven.sistare@oracle.com, suzuki.poulose@arm.com, tabba@google.com, thomas.lendacky@amd.com, usama.arif@bytedance.com, vbabka@suse.cz, viro@zeniv.linux.org.uk, vkuznets@redhat.com, wei.w.wang@intel.com, will@kernel.org, willy@infradead.org, xiaoyao.li@intel.com, yan.y.zhao@intel.com, yilun.xu@intel.com, yuzenghui@huawei.com, zhiquan1.li@intel.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: qprkqaf1emu7b5t4dwrb3tx1hnf81kqa X-Rspam-User: X-Rspamd-Queue-Id: 6B0BD180015 X-Rspamd-Server: rspam01 X-HE-Tag: 1747850747-32524 X-HE-Meta: U2FsdGVkX1//wQKPZ2GT3tfa9VBn9dRl6qWb7C7m+NKV46e/7XyAsAS0ly5BkqplTvfBV9fS2YPOr3EoijFBXDikOfXvr7TuFeDASH3spGNAsL74ZmMDlWMfWjc7zFrIWguSeHBddp/7Q+9YgkDpIIcxRVRfRVoBlkPIDSlx/52ZIXEAJgfGSozYXOFaiwkd04Jg6M2hhV1bh1Ty5Q2iAsp8o7qUIvFpg5xUqV8FutVieJ22UWYXrCXDYPwxPj4K+wbrV9CPkSufk6c8pC539O1UTcSR7/vfgBM68sVeKhTRE5QPQzExoJ4wDFGlcoBOksehyzaG3QT7wAyTI10J/2gpDJwQcz2HNt8stVunubi5ss2DynLJiJru/gVg4akJ9RwptAbpM92ADSz1iI+p+vvIbfhH3DN/jVeVJX+E2Fa3PWwmbBuUfn+llhCCD6kpNLEQ47BSQHj9d/cehIMWGFi6MVV1eOeTqJVYZJjzLk9ZWGx+xvBQ+enUfaQkcAZDI3sjBAAlkvo1EMgJkTtJikvxUCz8yOybUPD+tvD+nsNBwChDuznUv/PQtzrcC4Dt0GiAXD+ZStqlKyrhP7uYdRIx+Lqh6NryFl7zUMtkALWaaJcbokWt2XZdjoMIk+kTMhCj8dGtI+MFBMzHADNWUa8Sg9OxFRoD7YrR20OLbrixlJfdgEs2XA6vt5ut1a7PS0PFsLFGc1b8FZrt2BzD+X+yM2D1sJ01vVbTaeVytDphFwLsRjZztMwgp4EB27HtfZRndcv0tlu+GLxHERjWv77GHnfY5ovkCDo1p+kj1GWBAc37X2uqhl7e+Sw/KhQkvAkbaOU48M41tjTUdwrhbCzmX3/qxj8DInULYfASIE8Hy/rcANQ+G1FpG3GLdKsqRfzKajSY0hxZmXhdISyDoAgSagI9zi1ki4aNeEinPBky3zJHTFN8b1hFMoJTiBvpAkbuBPrg+Kt66y8+Xve q6YySsVJ K82gSCCaZ6Fr4jm0UXjw0wd0HuRlYoPlyiZuTlFd6jSgbRiSrdYVDzs2a4K8yFcf7105E+sXRskf1C76kvqdL69zlfisbKDXRla0g5djW+ORnBNZxYDDguowPgkWu2Q87cJAoRnC0fgMviCiq20z0NZWzLKoo4AMiVyJ8mP95knwKLkUtxOE/j5O7TnlozFWxFV9bkRpR7cwLn9Mr8UOYRozahaS+KGJaP7gQts2mhzRhXr8j1Uw9DKKYta2tZNefj8B9BoyHbZ2Ayu2ADW2OtK1pFi+lY0SenMOXuVwOIYNDrEAPU0ikCw9PNFym0KRKbJkNlIW3nlWdij02T6BVN5DVsg== 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 Wed, May 14, 2025 at 4:43=E2=80=AFPM Ackerley Tng wrote: > ... > +/** > + * kvm_gmem_zero_range() - Zeroes all sub-pages in range [@start, @end). > + * > + * @mapping: the filemap to remove this range from. > + * @start: index in filemap for start of range (inclusive). > + * @end: index in filemap for end of range (exclusive). > + * > + * The pages in range may be split. truncate_inode_pages_range() isn't t= he right > + * function because it removes pages from the page cache; this function = only > + * zeroes the pages. > + */ > +static void kvm_gmem_zero_range(struct address_space *mapping, > + pgoff_t start, pgoff_t end) > +{ > + struct folio_batch fbatch; > + > + folio_batch_init(&fbatch); > + while (filemap_get_folios(mapping, &start, end - 1, &fbatch)) { > + unsigned int i; > + > + for (i =3D 0; i < folio_batch_count(&fbatch); ++i) { > + struct folio *f; > + size_t nr_bytes; > + > + f =3D fbatch.folios[i]; > + nr_bytes =3D offset_in_folio(f, end << PAGE_SHIFT= ); > + if (nr_bytes =3D=3D 0) > + nr_bytes =3D folio_size(f); > + > + folio_zero_segment(f, 0, nr_bytes); folio_zero_segment takes byte offset and number of bytes within the folio. This invocation needs to operate on the folio range that is overlapping with [Start, end) and instead it's always starting from 0 and ending at an unaligned offset within the folio. This will result in zeroing more than requested or lesser than requested or both depending on the request and folio size. > + } > + > + folio_batch_release(&fbatch); > + cond_resched(); > + } > +} > +