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.