From: Lance Yang <lance.yang@linux.dev>
To: ziy@nvidia.com, akpm@linux-foundation.org
Cc: david@kernel.org, willy@infradead.org, songliubraving@fb.com,
clm@fb.com, dsterba@suse.com, viro@zeniv.linux.org.uk,
brauner@kernel.org, jack@suse.cz, ljs@kernel.org,
baolin.wang@linux.alibaba.com, Liam.Howlett@oracle.com,
npache@redhat.com, ryan.roberts@arm.com, dev.jain@arm.com,
baohua@kernel.org, lance.yang@linux.dev, vbabka@kernel.org,
rppt@kernel.org, surenb@google.com, mhocko@suse.com,
shuah@kernel.org, linux-btrfs@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-mm@kvack.org, linux-kselftest@vger.kernel.org
Subject: Re: [PATCH v5 04/14] mm/khugepaged: remove READ_ONLY_THP_FOR_FS check in hugepage_enabled()
Date: Thu, 7 May 2026 12:49:38 +0800 [thread overview]
Message-ID: <20260507044938.12529-1-lance.yang@linux.dev> (raw)
In-Reply-To: <20260429152924.727124-5-ziy@nvidia.com>
Hi Andrew,
I just noticed that mm-new commit 83f151d1f7e3[1] links to this patch:
Link: https://lore.kernel.org/20260429152924.727124-5-ziy@nvidia.com
but the applied commit only has the include/linux/shmem_fs.h hunk ...
The mm/khugepaged.c hunk seems missing. Was this dropped unintentionally?
[1] https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git/commit/?h=mm-new&id=83f151d1f7e3429100d148fbafc65203294e9f90
Thanks, Lance
On Wed, Apr 29, 2026 at 11:29:14AM -0400, Zi Yan wrote:
>Remove the READ_ONLY_THP_FOR_FS gate and khugepaged for file-backed
>pmd-sized hugepages are enabled by the global transparent hugepage control.
>khugepaged can still be enabled by per-size control for anon and shmem when
>the global control is off.
>
>Add shmem_hpage_pmd_enabled() stub for !CONFIG_SHMEM to remove
>IS_ENABLED(SHMEM) in hugepage_enabled().
>
>Clean up hugepage_enabled() by moving anon code to anon_hpage_enabled().
>
>Signed-off-by: Zi Yan <ziy@nvidia.com>
>Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com>
>Acked-by: David Hildenbrand (Arm) <david@kernel.org>
>---
> include/linux/shmem_fs.h | 2 +-
> mm/khugepaged.c | 26 ++++++++++++++++----------
> 2 files changed, 17 insertions(+), 11 deletions(-)
>
>diff --git a/include/linux/shmem_fs.h b/include/linux/shmem_fs.h
>index 93a0ba872ebe0..acb8dd961b45c 100644
>--- a/include/linux/shmem_fs.h
>+++ b/include/linux/shmem_fs.h
>@@ -127,7 +127,7 @@ int shmem_writeout(struct folio *folio, struct swap_iocb **plug,
> void shmem_truncate_range(struct inode *inode, loff_t start, uoff_t end);
> int shmem_unuse(unsigned int type);
>
>-#ifdef CONFIG_TRANSPARENT_HUGEPAGE
>+#if defined(CONFIG_TRANSPARENT_HUGEPAGE) && defined(CONFIG_SHMEM)
> unsigned long shmem_allowable_huge_orders(struct inode *inode,
> struct vm_area_struct *vma, pgoff_t index,
> loff_t write_end, bool shmem_huge_force);
>diff --git a/mm/khugepaged.c b/mm/khugepaged.c
>index 71209a72195ab..d6971ada8f199 100644
>--- a/mm/khugepaged.c
>+++ b/mm/khugepaged.c
>@@ -524,26 +524,32 @@ static inline int collapse_test_exit_or_disable(struct mm_struct *mm)
> mm_flags_test(MMF_DISABLE_THP_COMPLETELY, mm);
> }
>
>+static inline bool anon_hpage_enabled(void)
>+{
>+ if (READ_ONCE(huge_anon_orders_always))
>+ return true;
>+ if (READ_ONCE(huge_anon_orders_madvise))
>+ return true;
>+ if (READ_ONCE(huge_anon_orders_inherit) &&
>+ hugepage_global_enabled())
>+ return true;
>+ return false;
>+}
>+
> static bool hugepage_enabled(void)
> {
> /*
> * We cover the anon, shmem and the file-backed case here; file-backed
>- * hugepages, when configured in, are determined by the global control.
>+ * hugepages are determined by the global control.
> * Anon hugepages are determined by its per-size mTHP control.
> * Shmem pmd-sized hugepages are also determined by its pmd-size control,
> * except when the global shmem_huge is set to SHMEM_HUGE_DENY.
> */
>- if (IS_ENABLED(CONFIG_READ_ONLY_THP_FOR_FS) &&
>- hugepage_global_enabled())
>- return true;
>- if (READ_ONCE(huge_anon_orders_always))
>+ if (hugepage_global_enabled())
> return true;
>- if (READ_ONCE(huge_anon_orders_madvise))
>- return true;
>- if (READ_ONCE(huge_anon_orders_inherit) &&
>- hugepage_global_enabled())
>+ if (anon_hpage_enabled())
> return true;
>- if (IS_ENABLED(CONFIG_SHMEM) && shmem_hpage_pmd_enabled())
>+ if (shmem_hpage_pmd_enabled())
> return true;
> return false;
> }
>--
>2.53.0
>
>
next prev parent reply other threads:[~2026-05-07 4:50 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-29 15:29 [PATCH v5 00/14] Remove CONFIG_READ_ONLY_THP_FOR_FS and enable file THP for writable files Zi Yan
2026-04-29 15:29 ` [PATCH v5 01/14] mm/khugepaged: remove READ_ONLY_THP_FOR_FS check Zi Yan
2026-04-30 14:37 ` Zi Yan
2026-04-30 15:04 ` Andrew Morton
2026-05-04 3:48 ` Nico Pache
2026-05-07 3:29 ` Lance Yang
2026-05-07 5:52 ` Zi Yan
2026-05-07 6:08 ` Zi Yan
2026-05-07 6:57 ` Zi Yan
2026-05-08 19:39 ` David Hildenbrand (Arm)
2026-04-29 15:29 ` [PATCH v5 02/14] mm/khugepaged: add folio dirty check after try_to_unmap() Zi Yan
2026-04-30 15:11 ` Zi Yan
2026-05-04 3:53 ` Nico Pache
2026-05-06 5:23 ` Lance Yang
2026-04-29 15:29 ` [PATCH v5 03/14] mm/huge_memory: remove READ_ONLY_THP_FOR_FS from file_thp_enabled() Zi Yan
2026-05-04 3:57 ` Nico Pache
2026-05-07 4:29 ` Lance Yang
2026-05-08 19:43 ` David Hildenbrand (Arm)
2026-04-29 15:29 ` [PATCH v5 04/14] mm/khugepaged: remove READ_ONLY_THP_FOR_FS check in hugepage_enabled() Zi Yan
2026-05-04 4:00 ` Nico Pache
2026-05-07 4:49 ` Lance Yang [this message]
2026-05-08 18:54 ` Andrew Morton
2026-05-11 7:15 ` Lance Yang
2026-04-29 15:35 ` [PATCH v5 05/14] mm: remove READ_ONLY_THP_FOR_FS Kconfig option Zi Yan
2026-05-04 4:02 ` Nico Pache
2026-05-07 12:48 ` Lance Yang
2026-05-08 2:52 ` Wei Yang
2026-05-08 3:22 ` Lance Yang
2026-04-29 15:35 ` [PATCH v5 06/14] mm: fs: remove filemap_nr_thps*() functions and their users Zi Yan
2026-05-07 12:59 ` Lance Yang
2026-04-29 15:35 ` [PATCH v5 07/14] fs: remove nr_thps from struct address_space Zi Yan
2026-05-04 4:11 ` Nico Pache
2026-04-29 15:35 ` [PATCH v5 08/14] mm/huge_memory: remove folio split check for READ_ONLY_THP_FOR_FS Zi Yan
2026-04-29 15:35 ` [PATCH v5 09/14] mm/truncate: use folio_split() in truncate_inode_partial_folio() Zi Yan
2026-04-30 15:12 ` Zi Yan
2026-05-08 7:01 ` Lance Yang
2026-05-08 19:46 ` David Hildenbrand (Arm)
2026-04-29 15:35 ` [PATCH v5 10/14] fs/btrfs: remove a comment referring to READ_ONLY_THP_FOR_FS Zi Yan
2026-04-29 15:35 ` [PATCH v5 11/14] selftests/mm: remove READ_ONLY_THP_FOR_FS in khugepaged Zi Yan
2026-04-30 15:16 ` Zi Yan
2026-04-30 15:27 ` Zi Yan
2026-05-08 19:48 ` David Hildenbrand (Arm)
2026-05-04 4:23 ` Nico Pache
2026-05-06 13:11 ` Zi Yan
2026-05-08 19:51 ` David Hildenbrand (Arm)
2026-05-18 23:43 ` Zi Yan
2026-05-04 10:11 ` Nico Pache
2026-05-06 13:15 ` Zi Yan
2026-05-07 6:35 ` Nico Pache
2026-05-07 7:21 ` Zi Yan
2026-05-07 7:24 ` Zi Yan
2026-05-08 20:06 ` David Hildenbrand (Arm)
2026-05-17 2:45 ` Zi Yan
2026-04-29 15:35 ` [PATCH v5 12/14] selftests/mm: remove READ_ONLY_THP_FOR_FS code from guard-regions Zi Yan
2026-04-29 15:35 ` [PATCH v5 13/14] mm/khugepaged: enable clean pagecache folio collapse for writable files Zi Yan
2026-04-30 15:18 ` Zi Yan
2026-05-08 20:09 ` David Hildenbrand (Arm)
2026-05-08 7:46 ` Lance Yang
2026-05-08 20:13 ` David Hildenbrand (Arm)
2026-05-17 7:29 ` Zi Yan
2026-04-29 15:35 ` [PATCH v5 14/14] selftests/mm: add writable-file collapse tests for khugepaged Zi Yan
2026-04-29 16:13 ` [PATCH v5 00/14] Remove CONFIG_READ_ONLY_THP_FOR_FS and enable file THP for writable files Andrew Morton
2026-05-09 22:10 ` Zi Yan
2026-05-11 7:19 ` David Hildenbrand (Arm)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260507044938.12529-1-lance.yang@linux.dev \
--to=lance.yang@linux.dev \
--cc=Liam.Howlett@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=baohua@kernel.org \
--cc=baolin.wang@linux.alibaba.com \
--cc=brauner@kernel.org \
--cc=clm@fb.com \
--cc=david@kernel.org \
--cc=dev.jain@arm.com \
--cc=dsterba@suse.com \
--cc=jack@suse.cz \
--cc=linux-btrfs@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=ljs@kernel.org \
--cc=mhocko@suse.com \
--cc=npache@redhat.com \
--cc=rppt@kernel.org \
--cc=ryan.roberts@arm.com \
--cc=shuah@kernel.org \
--cc=songliubraving@fb.com \
--cc=surenb@google.com \
--cc=vbabka@kernel.org \
--cc=viro@zeniv.linux.org.uk \
--cc=willy@infradead.org \
--cc=ziy@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.