mm: Make large folios depend on THP
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Sun, 16 Jan 2022 04:27:08 +0000 (23:27 -0500)
committerMatthew Wilcox (Oracle) <willy@infradead.org>
Mon, 21 Mar 2022 17:01:36 +0000 (13:01 -0400)
Some parts of the VM still depend on THP to handle large folios
correctly.  Until those are fixed, prevent creating large folios
if THP are disabled.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
include/linux/pagemap.h

index 0a2417f..20d7cba 100644 (file)
@@ -306,9 +306,14 @@ static inline void mapping_set_large_folios(struct address_space *mapping)
        __set_bit(AS_LARGE_FOLIO_SUPPORT, &mapping->flags);
 }
 
+/*
+ * Large folio support currently depends on THP.  These dependencies are
+ * being worked on but are not yet fixed.
+ */
 static inline bool mapping_large_folio_support(struct address_space *mapping)
 {
-       return test_bit(AS_LARGE_FOLIO_SUPPORT, &mapping->flags);
+       return IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE) &&
+               test_bit(AS_LARGE_FOLIO_SUPPORT, &mapping->flags);
 }
 
 static inline int filemap_nr_thps(struct address_space *mapping)