Re: [PATCH] binder_alloc: Add missing mmap_lock calls when using the VMA

From: Liam Howlett
Date: Tue Aug 09 2022 - 22:05:19 EST


* Carlos Llamas <cmllamas@xxxxxxxxxx> [220809 17:02]:
> On Tue, Aug 09, 2022 at 07:02:17PM +0000, Liam Howlett wrote:
> > >
> > > do we need to hold on to the lock while we loop through the pages here?
> >
> > I think we do? Holding this lock will ensure the pages don't go away, I
> > believe (looking at mm/rmap.c comments on locking at the top)?
> >
> > In any case, this function is called from print_binder_proc_stats()
> > which looks to be a debugfs/debugging call so I thought safer would be
> > better than faster and with a potential race.
>
> The pages are protected by alloc->mutex, so you could immediately
> release the mmap lock after binder_alloc_get_vma() call. I agree this
> is a debugging call so it would be nice to reduce contention.

Oh, I see. The reuse of page confused me here. Yes, you are correct.

I can re-spin this patch.

Thanks,
Liam