x86: introduce page pool in cpa
authorThomas Gleixner <tglx@linutronix.de>
Sat, 9 Feb 2008 22:24:09 +0000 (23:24 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Sat, 9 Feb 2008 22:24:09 +0000 (23:24 +0100)
commit76ebd0548df6ee48586e9b80d8fc2f58aa5fb51c
tree10af366ea643126913cd588aa46741961be1d7cb
parenta03c2a48e02aacaaea211c94691b729be357e047
x86: introduce page pool in cpa

DEBUG_PAGEALLOC was not possible on 64-bit due to its early-bootup
hardcoded reliance on PSE pages, and the unrobustness of the runtime
splitup of large pages. The splitup ended in recursive calls to
alloc_pages() when a page for a pte split was requested.

Avoid the recursion with a preallocated page pool, which is used to
split up large mappings and gets refilled in the return path of
kernel_map_pages after the split has been done. The size of the page
pool is adjusted to the available memory.

This part just implements the page pool and the initialization w/o
using it yet.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/mm/init_32.c
arch/x86/mm/init_64.c
arch/x86/mm/pageattr.c
include/asm-x86/cacheflush.h