]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
mm/thp: make ALLOC_SPLIT_PTLOCKS dependent on USE_SPLIT_PTE_PTLOCKS
authorAnshuman Khandual <anshuman.khandual@arm.com>
Mon, 23 Aug 2021 23:59:37 +0000 (09:59 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Wed, 25 Aug 2021 23:34:18 +0000 (09:34 +1000)
Split ptlocks need not be defined and allocated unless they are being
used.  ALLOC_SPLIT_PTLOCKS is inherently dependent on
USE_SPLIT_PTE_PTLOCKS.  This just makes it explicit and clear.  While here
drop the spinlock_t element from the struct page when
USE_SPLIT_PTE_PTLOCKS is not enabled.

Link: https://lkml.kernel.org/r/1621409586-5555-1-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Acked-by: Randy Dunlap <rdunlap@infradead.org> # build-tested
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
include/linux/mm_types.h
include/linux/mm_types_task.h
mm/memory.c

index 52bbd2b7cb4658acfbc480e762123158b0b1e3d4..f37abb2d222e88f1227f914a8ae1edb07f547017 100644 (file)
@@ -159,10 +159,12 @@ struct page {
                                struct mm_struct *pt_mm; /* x86 pgds only */
                                atomic_t pt_frag_refcount; /* powerpc */
                        };
+#if USE_SPLIT_PTE_PTLOCKS
 #if ALLOC_SPLIT_PTLOCKS
                        spinlock_t *ptl;
 #else
                        spinlock_t ptl;
+#endif
 #endif
                };
                struct {        /* ZONE_DEVICE pages */
index c1bc6731125cbbeb99b2bbe0d4757fad6bf5031f..1b222f8039d1088db4bb3e375d4f8adc8f673a26 100644 (file)
 #define USE_SPLIT_PTE_PTLOCKS  (NR_CPUS >= CONFIG_SPLIT_PTLOCK_CPUS)
 #define USE_SPLIT_PMD_PTLOCKS  (USE_SPLIT_PTE_PTLOCKS && \
                IS_ENABLED(CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK))
+
+#if USE_SPLIT_PTE_PTLOCKS
 #define ALLOC_SPLIT_PTLOCKS    (SPINLOCK_SIZE > BITS_PER_LONG/8)
+#else
+#define ALLOC_SPLIT_PTLOCKS    0
+#endif
 
 /*
  * The per task VMA cache array:
index 25fc46e872142a11692e3b44402cab89ca644fb3..94a17a9a48ab23fc799a5520152fe16fedb82021 100644 (file)
@@ -5441,7 +5441,7 @@ long copy_huge_page_from_user(struct page *dst_page,
 }
 #endif /* CONFIG_TRANSPARENT_HUGEPAGE || CONFIG_HUGETLBFS */
 
-#if USE_SPLIT_PTE_PTLOCKS && ALLOC_SPLIT_PTLOCKS
+#if ALLOC_SPLIT_PTLOCKS
 
 static struct kmem_cache *page_ptl_cachep;