Re: [V2][PATCH] cgroup: fix memory leak caused by missing cgroup_bpf_offline

From: Quanyang Wang
Date: Fri Oct 22 2021 - 07:04:32 EST


Hi Michal,

On 10/21/21 1:28 AM, Michal Koutný wrote:
On Wed, Oct 20, 2021 at 01:22:06PM +0800, Quanyang Wang <quanyang.wang@xxxxxxxxxxxxx> wrote:
If only precpu_ref data is leaked, it is fine to add "Fixes: 2b0d3d3e4fcf",
I thought cgroup_bpf_release() needs to release more for root cgroup, but
looks not true.
For now, I can only observe that precpu_ref data is leaked when running ltp
testsuite.

I assume you refer to ref->data. I considered the ref->percpu_count_ptr
allocated with __alloc_percpu_gfp(). Could it be that kmemleak won't
detect leaked percpu allocations?
Yes, kmemleak can't detect percpu allocations. I find some message about this:

commit f528f0b8e53d
Author: Catalin Marinas <catalin.marinas@xxxxxxx>
Date: Mon Sep 26 17:12:53 2011 +0100

kmemleak: Handle percpu memory allocation

This patch adds kmemleak callbacks from the percpu allocator, reducing a
number of false positives caused by kmemleak not scanning such memory
blocks. The percpu chunks are never reported as leaks because of current
kmemleak limitations with the __percpu pointer not pointing directly to
the actual chunks.

Thanks,
Quanyang

(The patch you sent resolves this as well, I'm just curious.)

Michal