[PATCH] mm: update split ptlock Kconfig

Closer attention to the arithmetic shows that neither ppc64 nor sparc really
uses one page for multiple page tables: how on earth could they, while
pte_alloc_one returns just a struct page pointer, with no offset?

Well, arm26 manages it by returning a pte_t pointer cast to a struct page
pointer, harumph, then compensating in its pmd_populate. But arm26 is never
SMP, so it's not a problem for split ptlock either.

And the PA-RISC situation has been recently improved: CONFIG_PA20 works
without the 16-byte alignment which inflated its spinlock_t. But the current
union of spinlock_t with private does make the 7xxx struct page significantly
larger, even without debug, so disable its split ptlock.

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by Hugh Dickins and committed by Linus Torvalds 7b6ac9df c101e773

+2 -4
+2 -4
mm/Kconfig
··· 125 125 # space can be handled with less contention: split it at this NR_CPUS. 126 126 # Default to 4 for wider testing, though 8 might be more appropriate. 127 127 # ARM's adjust_pte (unused if VIPT) depends on mm-wide page_table_lock. 128 - # PA-RISC's debug spinlock_t is too large for the 32-bit struct page. 129 - # ARM26 and SPARC32 and PPC64 may use one page for multiple page tables. 128 + # PA-RISC 7xxx's spinlock_t would enlarge struct page from 32 to 44 bytes. 130 129 # 131 130 config SPLIT_PTLOCK_CPUS 132 131 int 133 132 default "4096" if ARM && !CPU_CACHE_VIPT 134 - default "4096" if PARISC && DEBUG_SPINLOCK && !64BIT 135 - default "4096" if ARM26 || SPARC32 || PPC64 133 + default "4096" if PARISC && !PA20 136 134 default "4"