Messages in this thread | | | From | Arve Hjønnevåg <> | Date | Wed, 13 Sep 2017 17:08:47 -0700 | Subject | Re: [PATCH] mm: Restore mmput_async |
| |
On Wed, Sep 13, 2017 at 3:57 PM, Andrew Morton <akpm@linux-foundation.org> wrote: > On Wed, 13 Sep 2017 18:44:11 -0400 Sherry Yang <sherryy@android.com> wrote: > >> On Wed, Sep 13, 2017 at 6:09 PM, Andrew Morton >> <akpm@linux-foundation.org> wrote: >> > On Wed, 13 Sep 2017 17:59:27 -0400 Sherry Yang <sherryy@android.com> 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? >
alloc->tsk can exit during binder_alloc_free_page. We don't hold a reference to the task's mm struct while we don't actively use it, as this would prevent the driver from getting closed when a process dies.
-- Arve Hjønnevåg
| |