Re: [PATCH v2 2/3] mm, page_owner: decouple freeing stack trace from debug_pagealloc

From: Vlastimil Babka
Date: Mon Sep 30 2019 - 17:43:41 EST


On 9/30/19 2:49 PM, Qian Cai wrote:
>> --- a/Documentation/admin-guide/kernel-parameters.txt
>> +++ b/Documentation/admin-guide/kernel-parameters.txt
>> @@ -3237,6 +3237,14 @@
>> we can turn it on.
>> on: enable the feature
>>
>> + page_owner_free=
>> + [KNL] When enabled together with page_owner, store also
>> + the stack of who frees a page, for error page dump
>> + purposes. This is also implicitly enabled by
>> + debug_pagealloc=on or KASAN, so only page_owner=on is
>> + sufficient in those cases.
>> + on: enable the feature
>> +
>
> If users are willing to set page_owner=on, what prevent them from enabling KASAN
> as well? That way, we don't need this additional parameter.

Well, my use case is shipping production kernels with CONFIG_PAGE_OWNER
and CONFIG_DEBUG_PAGEALLOC enabled, and instructing users to boot-time
enable only for troubleshooting a crash or memory leak, without a need
to install a debug kernel. Things like static keys and page_ext
allocations makes this possible without CPU and memory overhead when not
boot-time enabled. I don't know too much about KASAN internals, but I
assume it's not possible to use it that way on production kernels yet?

> I read that KASAN
> supposes to be semi-production use ready, so the overhead is relatively low.
> There is even a choice to have KASAN_SW_TAGS on arm64 to work better with small
> devices.