Re: [PATCH] mm/debug_pagealloc: Ask users for default setting of debug_pagealloc

From: Christian Borntraeger
Date: Mon Jan 25 2016 - 05:07:19 EST


On 01/25/2016 11:02 AM, Heiko Carstens wrote:
> 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 ;)

Ok, I will give it a try, and come back with a rewording or an s390 patch.