Re: [PATCH] mm: Restore mmput_async

From: Andrew Morton
Date: Wed Sep 13 2017 - 18:58:05 EST


On Wed, 13 Sep 2017 18:44:11 -0400 Sherry Yang <sherryy@xxxxxxxxxxx> wrote:

> On Wed, Sep 13, 2017 at 6:09 PM, Andrew Morton
> <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
> > On Wed, 13 Sep 2017 17:59:27 -0400 Sherry Yang <sherryy@xxxxxxxxxxx> wrote:
> >
> >> Restore asynchronous mmput, allowing mmput_async to be called
> >> from an atomic context in Android binder shrinker callback.
> >>
> >> mmput_async was initially introduced in ec8d7c14e
> >> ("mm, oom_reaper: do not mmput synchronously from the
> >> oom reaper context"), and was removed in 212925802
> >> ("mm: oom: let oom_reap_task and exit_mmap run concurrently")
> >
> > Presumably there's a patch somewhere which adds a call to mmput_async()
> > into drivers/android/binder.c? Where is that patch?
>
> The patch that uses mmput_async() is
> https://lkml.org/lkml/2017/9/8/785. Gmail doesn't seem to respect
> in-reply-to.

(Top-posting repaired. Please don't!)

Is it necessary for binder_alloc_free_page() to take a ref on the mm?
As long as alloc->tsk doesn't exit during binder_alloc_free_page()'s
execution, that task's reference on the mm should be sufficient to keep
the mm alive?