Re: [PATCH] mm: mmap_lock: fix use-after-free race and css ref leak in tracepoints

From: Shakeel Butt
Date: Wed Dec 02 2020 - 18:25:07 EST


On Wed, Dec 2, 2020 at 11:01 AM Tejun Heo <tj@xxxxxxxxxx> wrote:
>
> Hello,
>
> On Tue, Dec 01, 2020 at 12:53:46PM -0800, Shakeel Butt wrote:
> > The writeback tracepoint in include/trace/events/writeback.h is
> > already using the cgroup IDs. Actually it used to use cgroup_path but
> > converted to cgroup_ino.
> >
> > Tejun, how do you use these tracepoints?
>

Thanks Tejun, I really appreciate the example you provided. I do have one query.

> There've been some changes to cgroup ids recently and now cgroup id, ino and
> its file_handle are all compatible. On 64bit ino machines, they're all the
> same and won't be reused. On 32bit ino machines, the lower 32bit of full id
> is used as ino. ino may be reused but not the full 64bit id.

__kernfs_new_node() is using idr_alloc_cyclic() which will return
32bit ID. If I am understanding this correctly the full ID is
generated similarly for 32bit and 64bit machines but for 64bit
machines the whole ID is inode number while on 32bit machines the
lower 32bits contains the inode number. Is that correct?