Re: [PATCH v2] mm, slab: clean up slab->obj_exts always

From: Andy Shevchenko
Date: Thu Apr 24 2025 - 12:36:39 EST


On Mon, Apr 21, 2025 at 03:52:32PM +0800, Zhenhua Huang wrote:
> When memory allocation profiling is disabled at runtime or due to an
> error, shutdown_mem_profiling() is called: slab->obj_exts which
> previously allocated remains.
> It won't be cleared by unaccount_slab() because of
> mem_alloc_profiling_enabled() not true. It's incorrect, slab->obj_exts
> should always be cleaned up in unaccount_slab() to avoid following error:
>
> [...]BUG: Bad page state in process...
> ..
> [...]page dumped because: page still charged to cgroup

Please, always compile test with `make W=1`. Since CONFIG_WERROR=y this
effectively breaks the build with Clang.

--
With Best Regards,
Andy Shevchenko