linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] mm: huge_memory: move file_thp_enabled() into huge_memory.c
@ 2024-10-17 14:14 Kefeng Wang
  2024-10-17 14:14 ` [PATCH v2] mm: shmem: remove __shmem_huge_global_enabled() Kefeng Wang
  0 siblings, 1 reply; 5+ messages in thread
From: Kefeng Wang @ 2024-10-17 14:14 UTC (permalink / raw)
  To: Andrew Morton, Hugh Dickins
  Cc: David Hildenbrand, Barry Song, Ryan Roberts, Baolin Wang,
	Matthew Wilcox, linux-mm, Kefeng Wang

The file_thp_enabled() only used in __thp_vma_allowable_orders(),
so move it into huge_memory.c, also check READ_ONLY_THP_FOR_FS
ahead to avoid unnecessary code if config disabled.

Acked-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com>
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
---
v2:
- Add ACK/RB and send separately

 include/linux/huge_mm.h | 13 -------------
 mm/huge_memory.c        | 15 +++++++++++++++
 2 files changed, 15 insertions(+), 13 deletions(-)

diff --git a/include/linux/huge_mm.h b/include/linux/huge_mm.h
index d5f824d5e1c5..c59e5aa9b081 100644
--- a/include/linux/huge_mm.h
+++ b/include/linux/huge_mm.h
@@ -253,19 +253,6 @@ static inline unsigned long thp_vma_suitable_orders(struct vm_area_struct *vma,
 	return orders;
 }
 
-static inline bool file_thp_enabled(struct vm_area_struct *vma)
-{
-	struct inode *inode;
-
-	if (!vma->vm_file)
-		return false;
-
-	inode = vma->vm_file->f_inode;
-
-	return (IS_ENABLED(CONFIG_READ_ONLY_THP_FOR_FS)) &&
-	       !inode_is_open_for_write(inode) && S_ISREG(inode->i_mode);
-}
-
 unsigned long __thp_vma_allowable_orders(struct vm_area_struct *vma,
 					 unsigned long vm_flags,
 					 unsigned long tva_flags,
diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index 589876d14bb8..830d6aa5bf97 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -83,6 +83,21 @@ unsigned long huge_anon_orders_madvise __read_mostly;
 unsigned long huge_anon_orders_inherit __read_mostly;
 static bool anon_orders_configured __initdata;
 
+static inline bool file_thp_enabled(struct vm_area_struct *vma)
+{
+	struct inode *inode;
+
+	if (!IS_ENABLED(CONFIG_READ_ONLY_THP_FOR_FS))
+		return false;
+
+	if (!vma->vm_file)
+		return false;
+
+	inode = file_inode(vma->vm_file);
+
+	return !inode_is_open_for_write(inode) && S_ISREG(inode->i_mode);
+}
+
 unsigned long __thp_vma_allowable_orders(struct vm_area_struct *vma,
 					 unsigned long vm_flags,
 					 unsigned long tva_flags,
-- 
2.27.0



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2024-11-04 20:54 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-10-17 14:14 [PATCH v2] mm: huge_memory: move file_thp_enabled() into huge_memory.c Kefeng Wang
2024-10-17 14:14 ` [PATCH v2] mm: shmem: remove __shmem_huge_global_enabled() Kefeng Wang
2024-10-30 13:09   ` David Hildenbrand
2024-11-01  1:07     ` Kefeng Wang
2024-11-04 20:53       ` David Hildenbrand

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox