From: Greg KH <gregkh@linuxfoundation.org>
To: YiPing Xu <xuyiping@hisilicon.com>
Cc: Laura Abbott <labbott@redhat.com>,
sumit.semwal@linaro.org, arve@android.com, riandrews@android.com,
devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org,
puck.chen@hisilicon.com, lili53@huawei.com,
suzhuangluan@hisilicon.com
Subject: Re: [patch] staging: ion: use two separate locks for heaps and clients in ion_device
Date: Sun, 9 Oct 2016 15:58:43 +0200 [thread overview]
Message-ID: <20161009135842.GD30914@kroah.com> (raw)
In-Reply-To: <57F75C85.5050406@hisilicon.com>
On Fri, Oct 07, 2016 at 04:27:49PM +0800, YiPing Xu wrote:
>
>
> On 2016/10/5 2:02, Laura Abbott wrote:
> > On 09/30/2016 01:18 AM, Xu YiPing wrote:
> > > ion_alloc may get into slow path to get free page,
> > > the call stack:
> > >
> > > __alloc_pages_slowpath
> > > ion_page_pool_alloc_pages
> > > alloc_buffer_page
> > > ion_system_heap_allocate
> > > ion_buffer_create <-- hold ion_device->lock
> > > ion_alloc
> > >
> > > after that, kernel invokes low-memory killer to kill some apps in
> > > order to free memory in android system. However, sometimes, the
> > > killing is blocked,
> > > the app's call stack:
> > >
> > > rwsem_down_write_failed
> > > down_write
> > > ion_client_destroy
> > > ion_release
> > > fput
> > > do_signal
> > >
> > > the killing is blocked because ion_device->lock is held by ion_alloc.
> > >
> > > ion_alloc hold the lock for accessing the heaps list,
> > > ion_destroy_client hold the lock for accessing the clients list.
> > >
> > > so, we can use two separate locks for heaps and clients, to avoid the
> > > unnecessary race.
> > >
> >
> > I've reviewed this and it looks okay at first pass but I don't want it
> > applied just yet. Ion locking is a bit of a mess and has been added
>
> yes, and now "debugfs_mutex" and "ion_root_client" is redundant, after
> commit 49d200deaa680501f19a247b1fffb29301e51d2b and
> 9fd4dcece43a53e5a9e65a973df5693702ee6401.
Ok, now dropping this patch from my queue.
thanks,
greg k-h
prev parent reply other threads:[~2016-10-09 13:58 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-30 8:18 [patch] staging: ion: use two separate locks for heaps and clients in ion_device Xu YiPing
2016-10-04 18:02 ` Laura Abbott
2016-10-07 8:27 ` YiPing Xu
2016-10-09 13:58 ` Greg KH [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20161009135842.GD30914@kroah.com \
--to=gregkh@linuxfoundation.org \
--cc=arve@android.com \
--cc=devel@driverdev.osuosl.org \
--cc=labbott@redhat.com \
--cc=lili53@huawei.com \
--cc=linux-kernel@vger.kernel.org \
--cc=puck.chen@hisilicon.com \
--cc=riandrews@android.com \
--cc=sumit.semwal@linaro.org \
--cc=suzhuangluan@hisilicon.com \
--cc=xuyiping@hisilicon.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.