On 01/25/2016 10:41 AM, Heiko Carstens wrote: > On Mon, Jan 25, 2016 at 10:19:48AM +0100, Christian Borntraeger wrote: >> since commit 031bc5743f158 ("mm/debug-pagealloc: make debug-pagealloc >> boottime configurable") CONFIG_DEBUG_PAGEALLOC is by default a no-op. >> >> This resulted in several unnoticed bugs, e.g. >> >> https://lkml.kernel.org/g/<569F5E29.3090107@xxxxxxxxxx> >> or >> https://lkml.kernel.org/g/<56A20F30.4050705@xxxxxxxxxx> >> >> as this behaviour change was not even documented in Kconfig. >> >> Let's provide a new Kconfig symbol that allows to change the default >> back to enabled, e.g. for debug kernels. This also makes the change >> obvious to kernel packagers. >> >> Let's also change the Kconfig description for CONFIG_DEBUG_PAGEALLOC, >> to indicate that it is ok to enable this by default. >> >> Cc: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx> >> Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> >> Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> >> --- >> mm/Kconfig.debug | 17 +++++++++++++++++ >> mm/page_alloc.c | 6 +++++- >> 2 files changed, 22 insertions(+), 1 deletion(-) >> >> diff --git a/mm/Kconfig.debug b/mm/Kconfig.debug >> index 957d3da..4cf1212 100644 >> --- a/mm/Kconfig.debug >> +++ b/mm/Kconfig.debug >> @@ -26,5 +26,22 @@ config DEBUG_PAGEALLOC >> that would result in incorrect warnings of memory corruption after >> a resume because free pages are not saved to the suspend image. >> >> + By default this option will be almost for free and can be activated >> + in distribution kernels. The overhead and the debugging can be enabled >> + by DEBUG_PAGEALLOC_ENABLE_DEFAULT or the debug_pagealloc command line >> + parameter. > > Sorry, but it's not almost for free and should not be used by distribution > kernels. If we have DEBUG_PAGEALLOC enabled, at least on s390 we will not > make use of 2GB and 1MB pagetable entries for the identy mapping anymore. > Instead we will only use 4K mappings. Hmmm, can we change these code areas to use debug_pagealloc_enabled? I guess this evaluated too late? > I assume this is true for all architectures since freeing pages can happen > in any context and therefore we can't allocate memory in order to split > page tables. > > So enabling this will cost memory and put more pressure on the TLB. So I will change the description and drop the "if unsure" statement. Christian -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>