Re: [PATCH] mm/debug_pagealloc: Ask users for default setting of debug_pagealloc
From: Heiko Carstens
Date: Mon Jan 25 2016 - 05:03:14 EST
On Mon, Jan 25, 2016 at 10:45:50AM +0100, Christian Borntraeger wrote:
> >> + 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?
Yes, that should be possible. "debug_pagealloc" is an early_param, which
will be evaluated before we call paging_init() (both in
arch/s390/kernel/setup.c).
So it looks like this can be trivially changed. (replace the ifdefs in
arch/s390/mm/vmem.c with debug_pagealloc_enabled()).
> > 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.
Well, given that we can change it like above... I don't care anymore ;)