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 5DF82C4345F for ; Thu, 25 Apr 2024 14:47:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DE9596B0092; Thu, 25 Apr 2024 10:47:57 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D71D26B0093; Thu, 25 Apr 2024 10:47:57 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C13986B0095; Thu, 25 Apr 2024 10:47:57 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id A3CF76B0092 for ; Thu, 25 Apr 2024 10:47:57 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id F31531605D1 for ; Thu, 25 Apr 2024 14:47:56 +0000 (UTC) X-FDA: 82048333752.18.17BFEA6 Received: from mout-p-201.mailbox.org (mout-p-201.mailbox.org [80.241.56.171]) by imf26.hostedemail.com (Postfix) with ESMTP id F1AD214001E for ; Thu, 25 Apr 2024 14:47:54 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=pankajraghav.com header.s=MBO0001 header.b=lGc1j8mm; spf=pass (imf26.hostedemail.com: domain of kernel@pankajraghav.com designates 80.241.56.171 as permitted sender) smtp.mailfrom=kernel@pankajraghav.com; dmarc=pass (policy=quarantine) header.from=pankajraghav.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1714056475; 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=2uONcSOBmYm/zEIn/RVoq3cLXjOll3fnF/QGfQtQU1Y=; b=XKFbc9oQkkRYA+fwQTTsgzLCfcXfvKyQkD4lrUcnb+ydFotBiEkbk79Vj42/8O8VsbddCI gJCXazTtK1Hq1opWyR6LcUVAgn/+hpjVKzx2pqHygHiJIpAG1fJvrvWatdlkGlWxcIdDAT nSLCpZVDvU/hW6k9Revcf4bzjmH2GXg= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1714056475; a=rsa-sha256; cv=none; b=wqbfSdJcUCz6cPlgn0pcoIoCNRFJTqpPoQqkEFcwmx5AECVFDzul5dpZnk8LgTowXrO6jm aZ7W0oMKrdNCCSyW1JqQX+LkI7KiOL+cR8a9jHx1FEAYc4TbYQt8yG5BU0bbKdn9WPUuT9 bzxyntsSV1wWyfVtDY0g7yI3DGM9IlY= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=pankajraghav.com header.s=MBO0001 header.b=lGc1j8mm; spf=pass (imf26.hostedemail.com: domain of kernel@pankajraghav.com designates 80.241.56.171 as permitted sender) smtp.mailfrom=kernel@pankajraghav.com; dmarc=pass (policy=quarantine) header.from=pankajraghav.com Received: from smtp1.mailbox.org (smtp1.mailbox.org [10.196.197.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-201.mailbox.org (Postfix) with ESMTPS id 4VQJcN6X9fz9sn3; Thu, 25 Apr 2024 16:47:48 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pankajraghav.com; s=MBO0001; t=1714056468; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=2uONcSOBmYm/zEIn/RVoq3cLXjOll3fnF/QGfQtQU1Y=; b=lGc1j8mmeffOqT4NiHrF7eoMXpDqgwvRCENRJJWBxgfN5pSWO/HKcAt9zSSDb0c3D4pvJa CW6TS2aHiXV16VOTzsX0x0YtSjv3SeljbDFVXOO0oBtzZlm3AKnobxFZNd+vYqbV+CTv+r tDnFzSd69F+bXUA01ebmZrATefPMztZaphHe2zCk2EPxMjAp1uVd2CxW+wi1v7nyguDKUF ilTj3f3nl4coS3k23fbERU7i/f9+ZZpVVbPonTUT8gMYTpCLASLFCxl8ogCRmONnG+BEp+ ms5v36t6TERhrtEjb3ArfqGDXTEBZXNQypQOQNRA10K2e/IqwM7sSzZdT0ezWQ== Date: Thu, 25 Apr 2024 14:47:41 +0000 From: "Pankaj Raghav (Samsung)" To: John Garry Cc: axboe@kernel.dk, brauner@kernel.org, djwong@kernel.org, viro@zeniv.linux.org.uk, jack@suse.cz, akpm@linux-foundation.org, willy@infradead.org, dchinner@redhat.com, tytso@mit.edu, hch@lst.de, martin.petersen@oracle.com, nilay@linux.ibm.com, ritesh.list@gmail.com, mcgrof@kernel.org, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, linux-xfs@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, ojaswin@linux.ibm.com, p.raghav@samsung.com, jbongio@google.com, okiselev@amazon.com Subject: Re: [PATCH RFC 2/7] filemap: Change mapping_set_folio_min_order() -> mapping_set_folio_orders() Message-ID: <20240425144741.houv6uoflhwmcc2u@quentin> References: <20240422143923.3927601-1-john.g.garry@oracle.com> <20240422143923.3927601-3-john.g.garry@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240422143923.3927601-3-john.g.garry@oracle.com> X-Stat-Signature: q9tujd7qq5hxs6q3prf8funf7frr4jds X-Rspamd-Queue-Id: F1AD214001E X-Rspamd-Server: rspam06 X-Rspam-User: X-HE-Tag: 1714056474-762256 X-HE-Meta: U2FsdGVkX1+bc4hqAmWw/RYghJhPC+g+Vnl+edzbrEfsqGWi3E9mT7MOkABngB80X4/gZwDuNwt+XrRnIFp9xj20zBmTfjI28hPZVeir3MYBnoUWI+9rOnMdpn6KpC6/w4s3+/Kx7O0nSc+fXdKV/PigWU+MCL0CWFngtzGveQQ/FsXjxn0/R/MRfeFNHnz+sVHayhk4GJtKz4mfc60c1JoMDjvN6HIt8meBcOmEDvNi4yNFyU5Zx/hiFEWbEvMGkK3yu/ETKsiuqlytHQtbNYiAWBo1QCDzjZfYYZAv5alCaDaoWB+hCfHpeOXZ+yDkHxEPBhRHFzzOkTqGAybG7pUVJthZtjO1gcb3HVrRAmjN1a5+/BWI1KXSJ4Qkn7JJcu92gww3EOsP9r0BRzs1wy/X7bD2fRRaAsXKBq+Lesi+Sm9pN9taxdnZb5ZPrHKX7q6tHGGjqNYz9JyCRIfhP/EztpZx+GcCSAr2XPOWYj3LGgxOaXGXQ44Z/UZj9559kKwDe9u6BiUJbrOEsjLXKSB5EjZey3a7+lQWnad1hIduW1lGKvunRvwXizuRQuE2As4YZg8ScViXwwB8913BwumHKUYyHaz3ugYiippK7wWRWXctvh5Oca5aTPi9CLtc50e5NFBGwUU49txTSvB2ynIWsFCBNQMTilhNufcaRNkOyDlAUvaywPiXaEP3v+KQuno4QnW1qzcGiJCgeOfCoO0zRO7glaZ3SiKR9HnGBRdunlzGw5sKKxQOim3rHCSw7Y4Rs0rxpu+Iw+NU3WmjNFZvh00uQJ0uwVTZrFYZfZjyuksbGkciXRVIGG0E4KiCvgMe1NB8JsoIcqsQ/HwBlSx2gNUcUN9ZiMoFtHssKj9wp9hRylISkJyebUQsFTBbd45ljYZrhvNms8SjpayTTYugR+z54+89rTXgKLZazWxqyYQi5P3dEB2Fes40PeklpfzoG0JN+1d+xZriqGK b5wZk6CA xZWbQwfaPwMwhOR6wm0VT/m5ozQrDoYvr6zeWZ0KZ//EJQdupiWmsLku2dEG+VzW6INAbLBDng+Cxj44tXE/7ThZE6LkQ27y27DTV/s5MIgQRa13v9I3TqPpc+8yZ16sxzwHbsh6+/8BPZSO8EV3MhaLOkadpDVUZyVDFMClpzmKxPpPocLfdRrZYh0xDepDp7cOuwbqI0TuL4+a1tfh8MtAUfXmX0akMoRJVHTM5+DmXDSgZgW5DIdC5oVffoX3sJPJ4imlOvdmeflQwECMGIrfUgu6JlTLmkuc202PTvoJxKcKPmR7GfQmLAB18oFYb5c+kPNmeQWwTysQtwHQ2QIQGsOZUdhfvR8tEdHJTmPJ6lViQy6GbUYDv4eivNdHvWmgoK8jr1SDx/t3ZPbzKanCQhXPYk12SIBQzWOXXzdnK3xY= 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 Mon, Apr 22, 2024 at 02:39:18PM +0000, John Garry wrote: > Borrowed from: > > https://lore.kernel.org/linux-fsdevel/20240213093713.1753368-2-kernel@pankajraghav.com/ > (credit given in due course) > > We will need to be able to only use a single folio order for buffered > atomic writes, so allow the mapping folio order min and max be set. > > We still have the restriction of not being able to support order-1 > folios - it will be required to lift this limit at some stage. This is already supported upstream for file-backed folios: commit: 8897277acfef7f70fdecc054073bea2542fc7a1b > index fc8eb9c94e9c..c22455fa28a1 100644 > --- a/include/linux/pagemap.h > +++ b/include/linux/pagemap.h > @@ -363,9 +363,10 @@ static inline void mapping_set_gfp_mask(struct address_space *m, gfp_t mask) > #endif > > /* > - * mapping_set_folio_min_order() - Set the minimum folio order > + * mapping_set_folio_orders() - Set the minimum and max folio order In the new series (sorry forgot to CC you), I added a new helper called mapping_set_folio_order_range() which does something similar to avoid confusion based on willy's suggestion: https://lore.kernel.org/linux-xfs/20240425113746.335530-3-kernel@pankajraghav.com/ mapping_set_folio_min_order() also sets max folio order to be MAX_PAGECACHE_ORDER order anyway. So no need of explicitly calling it here? > /** > @@ -400,7 +406,7 @@ static inline void mapping_set_folio_min_order(struct address_space *mapping, > */ > static inline void mapping_set_large_folios(struct address_space *mapping) > { > - mapping_set_folio_min_order(mapping, 0); > + mapping_set_folio_orders(mapping, 0, MAX_PAGECACHE_ORDER); > } > > static inline unsigned int mapping_max_folio_order(struct address_space *mapping) > diff --git a/mm/filemap.c b/mm/filemap.c > index d81530b0aac0..d5effe50ddcb 100644 > --- a/mm/filemap.c > +++ b/mm/filemap.c > @@ -1898,9 +1898,15 @@ struct folio *__filemap_get_folio(struct address_space *mapping, pgoff_t index, > no_page: > if (!folio && (fgp_flags & FGP_CREAT)) { > unsigned int min_order = mapping_min_folio_order(mapping); > - unsigned int order = max(min_order, FGF_GET_ORDER(fgp_flags)); > + unsigned int max_order = mapping_max_folio_order(mapping); > + unsigned int order = FGF_GET_ORDER(fgp_flags); > int err; > > + if (order > max_order) > + order = max_order; > + else if (order < min_order) > + order = max_order; order = min_order; ? -- Pankaj