* [PATCH] binder: reduce mmap_sem write-side lock
@ 2019-02-18 8:11 Minchan Kim
2019-02-18 8:32 ` Greg KH
0 siblings, 1 reply; 4+ messages in thread
From: Minchan Kim @ 2019-02-18 8:11 UTC (permalink / raw)
To: gregkh
Cc: LKML, Minchan Kim, Todd Kjos, Martijn Coenen, Arve Hjønnevåg
binder has used write-side mmap_sem semaphore to release memory
mapped at address space of the process. However, right lock to
release pages is down_read, not down_write because page table lock
already protects the race for parallel freeing.
Please do not use mmap_sem write-side lock which is well known
contented lock.
Cc: Todd Kjos <tkjos@google.com>
Cc: Martijn Coenen <maco@android.com>
Cc: Arve Hjønnevåg <arve@android.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Minchan Kim <minchan@kernel.org>
---
drivers/android/binder_alloc.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/android/binder_alloc.c b/drivers/android/binder_alloc.c
index 022cd80e80cc3..2a62553b20fcc 100644
--- a/drivers/android/binder_alloc.c
+++ b/drivers/android/binder_alloc.c
@@ -964,7 +964,7 @@ enum lru_status binder_alloc_free_page(struct list_head *item,
if (!mmget_not_zero(alloc->vma_vm_mm))
goto err_mmget;
mm = alloc->vma_vm_mm;
- if (!down_write_trylock(&mm->mmap_sem))
+ if (!down_read_trylock(&mm->mmap_sem))
goto err_down_write_mmap_sem_failed;
}
@@ -980,7 +980,7 @@ enum lru_status binder_alloc_free_page(struct list_head *item,
trace_binder_unmap_user_end(alloc, index);
- up_write(&mm->mmap_sem);
+ up_read(&mm->mmap_sem);
mmput(mm);
}
--
2.21.0.rc0.258.g878e2cd30e-goog
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] binder: reduce mmap_sem write-side lock
2019-02-18 8:11 [PATCH] binder: reduce mmap_sem write-side lock Minchan Kim
@ 2019-02-18 8:32 ` Greg KH
2019-02-18 10:47 ` Minchan Kim
0 siblings, 1 reply; 4+ messages in thread
From: Greg KH @ 2019-02-18 8:32 UTC (permalink / raw)
To: Minchan Kim; +Cc: LKML, Todd Kjos, Martijn Coenen, Arve Hjønnevåg
On Mon, Feb 18, 2019 at 05:11:45PM +0900, Minchan Kim wrote:
> binder has used write-side mmap_sem semaphore to release memory
> mapped at address space of the process. However, right lock to
> release pages is down_read, not down_write because page table lock
> already protects the race for parallel freeing.
>
> Please do not use mmap_sem write-side lock which is well known
> contented lock.
>
> Cc: Todd Kjos <tkjos@google.com>
> Cc: Martijn Coenen <maco@android.com>
> Cc: Arve Hjønnevåg <arve@android.com>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Signed-off-by: Minchan Kim <minchan@kernel.org>
> ---
> drivers/android/binder_alloc.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
Is this just needed for the recent binder changes that are in
linux-next, or for older kernels as well?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] binder: reduce mmap_sem write-side lock
2019-02-18 8:32 ` Greg KH
@ 2019-02-18 10:47 ` Minchan Kim
2019-02-19 16:54 ` Todd Kjos
0 siblings, 1 reply; 4+ messages in thread
From: Minchan Kim @ 2019-02-18 10:47 UTC (permalink / raw)
To: Greg KH; +Cc: LKML, Todd Kjos, Martijn Coenen, Arve Hjønnevåg
On Mon, Feb 18, 2019 at 09:32:08AM +0100, Greg KH wrote:
> On Mon, Feb 18, 2019 at 05:11:45PM +0900, Minchan Kim wrote:
> > binder has used write-side mmap_sem semaphore to release memory
> > mapped at address space of the process. However, right lock to
> > release pages is down_read, not down_write because page table lock
> > already protects the race for parallel freeing.
> >
> > Please do not use mmap_sem write-side lock which is well known
> > contented lock.
> >
> > Cc: Todd Kjos <tkjos@google.com>
> > Cc: Martijn Coenen <maco@android.com>
> > Cc: Arve Hjønnevåg <arve@android.com>
> > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > Signed-off-by: Minchan Kim <minchan@kernel.org>
> > ---
> > drivers/android/binder_alloc.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
>
> Is this just needed for the recent binder changes that are in
> linux-next, or for older kernels as well?
It has been there for several years but no need to fix older kernels
because down_write of mmap_sem is technically not a bug to stop the
working of binder. Rather than, it's just abuse of the lock so
it's okay to fix only recent kernel.
Thanks.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] binder: reduce mmap_sem write-side lock
2019-02-18 10:47 ` Minchan Kim
@ 2019-02-19 16:54 ` Todd Kjos
0 siblings, 0 replies; 4+ messages in thread
From: Todd Kjos @ 2019-02-19 16:54 UTC (permalink / raw)
To: Minchan Kim; +Cc: Greg KH, LKML, Martijn Coenen, Arve Hjønnevåg
On Mon, Feb 18, 2019 at 2:47 AM Minchan Kim <minchan@kernel.org> wrote:
>
> On Mon, Feb 18, 2019 at 09:32:08AM +0100, Greg KH wrote:
> > On Mon, Feb 18, 2019 at 05:11:45PM +0900, Minchan Kim wrote:
> > > binder has used write-side mmap_sem semaphore to release memory
> > > mapped at address space of the process. However, right lock to
> > > release pages is down_read, not down_write because page table lock
> > > already protects the race for parallel freeing.
> > >
> > > Please do not use mmap_sem write-side lock which is well known
> > > contented lock.
> > >
> > > Cc: Todd Kjos <tkjos@google.com>
> > > Cc: Martijn Coenen <maco@android.com>
> > > Cc: Arve Hjønnevåg <arve@android.com>
> > > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > > Signed-off-by: Minchan Kim <minchan@kernel.org>
Acked-by: Todd Kjos <tkjos@google.com>
> > > ---
> > > drivers/android/binder_alloc.c | 4 ++--
> > > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > Is this just needed for the recent binder changes that are in
> > linux-next, or for older kernels as well?
>
> It has been there for several years but no need to fix older kernels
> because down_write of mmap_sem is technically not a bug to stop the
> working of binder. Rather than, it's just abuse of the lock so
> it's okay to fix only recent kernel.
>
> Thanks.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2019-02-19 16:55 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-18 8:11 [PATCH] binder: reduce mmap_sem write-side lock Minchan Kim
2019-02-18 8:32 ` Greg KH
2019-02-18 10:47 ` Minchan Kim
2019-02-19 16:54 ` Todd Kjos
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).