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 30219C2BD09 for ; Tue, 9 Jul 2024 16:29:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8F6C36B0095; Tue, 9 Jul 2024 12:29:20 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8A7D46B0098; Tue, 9 Jul 2024 12:29:20 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 752136B0095; Tue, 9 Jul 2024 12:29:20 -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 56A9E6B0095 for ; Tue, 9 Jul 2024 12:29:20 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id ADAEF141A20 for ; Tue, 9 Jul 2024 16:29:19 +0000 (UTC) X-FDA: 82320749238.11.A11522F Received: from mout-p-202.mailbox.org (mout-p-202.mailbox.org [80.241.56.172]) by imf03.hostedemail.com (Postfix) with ESMTP id 895CD20005 for ; Tue, 9 Jul 2024 16:29:17 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=pankajraghav.com header.s=MBO0001 header.b=ywLRd9ti; spf=pass (imf03.hostedemail.com: domain of kernel@pankajraghav.com designates 80.241.56.172 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=1720542528; 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=hMN5EYeTIpPEIty7JnyHmAV09HNDOPhhuiUc4fcA8Kg=; b=LZ4PAglyyC87iwTfL9wbnJm7TM7SXi1CwWTY4Al6fnqB5tL2cJqxrCv14SBHHm8j7sNCr3 m/GSX1nthrSs5st3Et7SBkw8XVC2I3gt4FGv/PcEcrwuGrsqvjLJQ7aDEUaOaR6EXYKdiK be6xqbkvDDek9dQ0NwKWQPiSsTLbzEE= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1720542528; a=rsa-sha256; cv=none; b=urxoRv2iCezw3Khm+B0jVWDz6FQmPntijuk+irVsA3+0m2bEXjM+B43nqxZqtdO8FyGqR7 paRlfY1vwCcg3qIsO3i6D2ErJ9QbneP8AFLW0wOl+AwAr6NcJEpIjZDJBpU17IuXm0FFIh IPsbYgCCP3tC+UbhWnf3QgSX7cjvS+4= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=pankajraghav.com header.s=MBO0001 header.b=ywLRd9ti; spf=pass (imf03.hostedemail.com: domain of kernel@pankajraghav.com designates 80.241.56.172 as permitted sender) smtp.mailfrom=kernel@pankajraghav.com; dmarc=pass (policy=quarantine) header.from=pankajraghav.com Received: from smtp102.mailbox.org (smtp102.mailbox.org [IPv6:2001:67c:2050:b231:465::102]) (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-202.mailbox.org (Postfix) with ESMTPS id 4WJRJm2fVFz9sZq; Tue, 9 Jul 2024 18:29:12 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pankajraghav.com; s=MBO0001; t=1720542552; 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=hMN5EYeTIpPEIty7JnyHmAV09HNDOPhhuiUc4fcA8Kg=; b=ywLRd9tisZo5XSSl4UArOgl3V9/+GSA2V7Qm1iabardoueztN4qHS1RNkBAHDtSTCijfWz HNOXXh/PSOqAJ/GyZHhf1VtCjsd3KSyV71nNJQv/k1NX980gReU+YRx+X+gXWBQsRugO2x fGK1q1NAMxWolVCYJlY9BmkO0C9T4x+fcr2DrkFhkei8a8nsy2h92ICViJbGrWdcy34+eL P/LjWTzvBOsBwSwGFx+LfeyU/Ls3CzY9dfyNEdbJY7Zu5AInhjON7kL9rduwrfEnZaxggV 4mKliB31DWgpZwPzUhdvaHlzfX24RMs0Tb8Kg7Dz+IXo/AYPSsZ82l3GfKaZ4A== Date: Tue, 9 Jul 2024 16:29:07 +0000 From: "Pankaj Raghav (Samsung)" To: david@fromorbit.com, willy@infradead.org, ryan.roberts@arm.com, djwong@kernel.org Cc: linux-kernel@vger.kernel.org, yang@os.amperecomputing.com, linux-mm@kvack.org, john.g.garry@oracle.com, linux-fsdevel@vger.kernel.org, hare@suse.de, p.raghav@samsung.com, mcgrof@kernel.org, gost.dev@samsung.com, cl@os.amperecomputing.com, linux-xfs@vger.kernel.org, hch@lst.de, Zi Yan , akpm@linux-foundation.org, chandan.babu@oracle.com Subject: Re: [PATCH v8 01/10] fs: Allow fine-grained control of folio sizes Message-ID: <20240709162907.gsd5nf33teoss5ir@quentin> References: <20240625114420.719014-1-kernel@pankajraghav.com> <20240625114420.719014-2-kernel@pankajraghav.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240625114420.719014-2-kernel@pankajraghav.com> X-Rspamd-Queue-Id: 895CD20005 X-Stat-Signature: irt6ouk36y1jgz9dk4ciagydrkmq1obx X-Rspamd-Server: rspam09 X-Rspam-User: X-HE-Tag: 1720542557-903391 X-HE-Meta: U2FsdGVkX1+Es9g1IigPN7Jr5D++TbVBDZLPIp+F/Hl9osQp6kqdBn5exEZLzS0wgjOZk/h9n8l7nuLX1mS4kmYtJf2jRQ1tajCmeqCdNk/aSjLUEh2w300eGNoOrIN1dNp03g5OJxsBL9WX83eE5gaZqVSF4wl87LQGqW0ofMzbB0p4YPf+KPqj2aLZYmnfzggJmLzE/PyfERP3xIbHze9WKuRIB+DPmj3xxTxzLvTEOa1I50vjnk3UbtHLaAS9Nm8GwOpG7Zq0/9dfYPUrv/PBmQVHs8YtiBXizAXDMoI+HBvIpmLhwXCLbvDX0J1x/+1vrA/SXygM/RmfrKUsSiQE+hQ0g9ApKAaztRu8TZcAgQkoILrQAAUMcXmQOoOCr9RFGZPvqbDXx0QTMgk52kGhLGOPzDiOk2jYXrtZhsV4WkH4rfZp0whjkmK9v2RVhHtyFQxFneE5DgrFXaEzS/Olql3qUigrIjUwxCzymFRUxd2q8Z3JkDRf13mnCjQa5fmMu3+3YzTTlQAwDePYRBJjPFz/5XO+xjGs99wNCWCkhdMbzJ8xWdyNZ1/fSwOoppJLkF9ZUTbPzvJU0zunoocizBkiyp0JWAShDvnhRID/RjLV+4lKxUjw7HN1kx0ziMpcB2mupqMoiudEQdcQkT7hFOphDp/tVS9aFabKIgbIMw89YBzgbmwOWq2N+Vk3aoeGKB/vy30hBgCzKgSEMmSaeZnDKX0Xh/ujaEAYuBBxoOcLX3RyfiDdmvjUeyi2XDZKZgj9ef9HoUeXLVAAP1x/BT3MgidzVO5+Fo4oLv+ryey4S0CQjOFoCoocU/NfviWqmtqYpWjzH/tqVhNAfLi31iG7vqfvcJsL9++THlUCoMXqPaXuEO6iESPScbTiIZqemkNZgi6TraxVxImeg1TbrNOyRG5YQtAogJkc0P0ZgVStLLgxs2Zwr0UZExzvawF8BKDMwSLLd7uplQk dIuYokJg 5pi7rZ2HPoPOzmsw5r/wRtUuF2YnUqbpR22hItmIkNQUps4Io7ZZgw1diz5lX071V+Rfk2QN5TwwFaFHli+NhXRKGt2k6imzHycZPAkQlcTOLVXHWouMRFhvKj8/8mydLUMJvUvs2ihjGQvOca2TaORvfjOf2PeIszWEs9xiIu5ir4MbEmxsiH6M58VovPGUYok8nTjaEyRRR7PS+7NBdz9MWmIZ4GGNEosXiS9m3J9fOt1TURExxPSV7tQ== 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: For now, this is the only patch that is blocking for the next version. Based on the discussion, is the following logical @ryan, @dave and @willy? - We give explicit VM_WARN_ONCE if we try to set folio order range if the THP is disabled, min and max is greater than MAX_PAGECACHE_ORDER. diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index 14e1415f7dcf4..313c9fad61859 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h @@ -394,13 +394,24 @@ static inline void mapping_set_folio_order_range(struct address_space *mapping, unsigned int min, unsigned int max) { - if (!IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE)) + if (!IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE)) { + VM_WARN_ONCE(1, + "THP needs to be enabled to support mapping folio order range"); return; + } - if (min > MAX_PAGECACHE_ORDER) + if (min > MAX_PAGECACHE_ORDER) { + VM_WARN_ONCE(1, + "min order > MAX_PAGECACHE_ORDER. Setting min_order to MAX_PAGECACHE_ORDER"); min = MAX_PAGECACHE_ORDER; - if (max > MAX_PAGECACHE_ORDER) + } + + if (max > MAX_PAGECACHE_ORDER) { + VM_WARN_ONCE(1, + "max order > MAX_PAGECACHE_ORDER. Setting max_order to MAX_PAGECACHE_ORDER"); max = MAX_PAGECACHE_ORDER; + } + if (max < min) max = min; - We make THP an explicit dependency for XFS: diff --git a/fs/xfs/Kconfig b/fs/xfs/Kconfig index d41edd30388b7..be2c1c0e9fe8b 100644 --- a/fs/xfs/Kconfig +++ b/fs/xfs/Kconfig @@ -5,6 +5,7 @@ config XFS_FS select EXPORTFS select LIBCRC32C select FS_IOMAP + select TRANSPARENT_HUGEPAGE help XFS is a high performance journaling filesystem which originated on the SGI IRIX platform. It is completely multi-threaded, can OR We create a helper in page cache that FSs can use to check if a specific order can be supported at mount time: diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index 14e1415f7dcf..9be775ef11a5 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h @@ -374,6 +374,14 @@ static inline void mapping_set_gfp_mask(struct address_space *m, gfp_t mask) #define MAX_XAS_ORDER (XA_CHUNK_SHIFT * 2 - 1) #define MAX_PAGECACHE_ORDER min(MAX_XAS_ORDER, PREFERRED_MAX_PAGECACHE_ORDER) + +static inline unsigned int mapping_max_folio_order_supported() +{ + if (!IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE)) + return 0; + return MAX_PAGECACHE_ORDER; +} + diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c index b8a93a8f35cac..e2be8743c2c20 100644 --- a/fs/xfs/xfs_super.c +++ b/fs/xfs/xfs_super.c @@ -1647,6 +1647,15 @@ xfs_fs_fill_super( goto out_free_sb; } + if (mp->m_sb.sb_blocklog - PAGE_SHIFT > + mapping_max_folio_order_supported()) { + xfs_warn(mp, +"Block Size (%d bytes) is not supported. Check MAX_PAGECACHE_ORDER", + mp->m_sb.sb_blocksize); + error = -ENOSYS; + goto out_free_sb; + } + xfs_warn(mp, "EXPERIMENTAL: V5 Filesystem with Large Block Size (%d bytes) enabled.", mp->m_sb.sb_blocksize); -- Pankaj