[lkml]   [2022]   [Mar]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH 1/2] mm: kfence: fix missing objcg housekeeping for SLAB
On Sat, Mar 26, 2022 at 10:19 PM Muchun Song <> wrote:
> The objcg is not cleared and put for kfence object when it is freed, which
> could lead to memory leak for struct obj_cgroup and wrong statistics of
> object's objcg is not cleared, mem_cgroup_from_obj() could return the wrong
> memcg when this kfence object, which is not charged to any objcgs, is
> reallocated to other users. A real word issue [1] is caused by this bug.

Good that this looks sorted out.

Patch 2/2 seems to still be up in the air. The patch not only causes
build errors, but it looks really very odd to me.

In particular, you do that loop with


in kfence_init_pool(), but that is *not* where you set the
MEMCG_DATA_OBJCGS, and instead do that virt_to_slab(addr) dance later.

That looks very odd to me. I think the two should go hand-in-hand,
since that __SetPageSlab() really is what makes it a slab thing, and I
think it should go together with setting the slab state correctly.

Finally, is there a syzbot report for that second problem?

Anyway, should I apply this PATCH 1/2 now directly as the solution for
the dentry issue, or should I wait for that second patch? They seem to
be related only indirectly, in that the problems were both introduced
by the same commit.


 \ /
  Last update: 2022-03-27 23:09    [W:0.063 / U:0.080 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site