Re: [PATCH v2 4/4] mm, page_owner, debug_pagealloc: save and dump freeing stack trace

From: Vlastimil Babka
Date: Tue Sep 24 2019 - 11:15:06 EST


On 9/24/19 1:42 PM, Kirill A. Shutemov wrote:
>> --- a/mm/page_owner.c
>> +++ b/mm/page_owner.c
>> @@ -24,6 +24,9 @@ struct page_owner {
>> short last_migrate_reason;
>> gfp_t gfp_mask;
>> depot_stack_handle_t handle;
>> +#ifdef CONFIG_DEBUG_PAGEALLOC
>> + depot_stack_handle_t free_handle;
>> +#endif
>
> I think it's possible to add space for the second stack handle at runtime:
> adjust page_owner_ops->size inside the ->need().

Uh that would complicate the code needlessly? The extra memory overhead
isn't that much for a scenario that's already a debugging one
(page_owner), I was more concerned about the cpu overhead, thus the
static key.

> The second stack might be
> useful beyond CONFIG_DEBUG_PAGEALLOC. We probably should not tie these
> features.

Yeah I generalized it later, as KASAN guys wanted the same thing:

https://lore.kernel.org/linux-arm-kernel/d98bf550-367d-0744-025a-52307248ec82@xxxxxxx/

Perhaps as it's still mmotm I can squash it here.