public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
From: Gustavo Padovan <gustavo@padovan.org>
To: "Dmitry Torokhov" <dtor@chromium.org>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	devel@driverdev.osuosl.org,
	"Andrew Bresticker" <abrestic@chromium.org>,
	"Arve Hjønnevåg" <arve@android.com>,
	dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org,
	"Riley Andrews" <riandrews@android.com>,
	linux-media@vger.kernel.org
Subject: Re: [PATCH] android: fix warning when releasing active sync point
Date: Tue, 15 Dec 2015 17:00:08 -0200	[thread overview]
Message-ID: <20151215190008.GE883@joana> (raw)
In-Reply-To: <20151215092601.GI3189@phenom.ffwll.local>

2015-12-15 Daniel Vetter <daniel@ffwll.ch>:

> On Mon, Dec 14, 2015 at 05:29:55PM -0800, Dmitry Torokhov wrote:
> > Userspace can close the sync device while there are still active fence
> > points, in which case kernel produces the following warning:
> > 
> > [   43.853176] ------------[ cut here ]------------
> > [   43.857834] WARNING: CPU: 0 PID: 892 at /mnt/host/source/src/third_party/kernel/v3.18/drivers/staging/android/sync.c:439 android_fence_release+0x88/0x104()
> > [   43.871741] CPU: 0 PID: 892 Comm: Binder_5 Tainted: G     U 3.18.0-07661-g0550ce9 #1
> > [   43.880176] Hardware name: Google Tegra210 Smaug Rev 1+ (DT)
> > [   43.885834] Call trace:
> > [   43.888294] [<ffffffc000207464>] dump_backtrace+0x0/0x10c
> > [   43.893697] [<ffffffc000207580>] show_stack+0x10/0x1c
> > [   43.898756] [<ffffffc000ab1258>] dump_stack+0x74/0xb8
> > [   43.903814] [<ffffffc00021d414>] warn_slowpath_common+0x84/0xb0
> > [   43.909736] [<ffffffc00021d530>] warn_slowpath_null+0x14/0x20
> > [   43.915482] [<ffffffc00088aefc>] android_fence_release+0x84/0x104
> > [   43.921582] [<ffffffc000671cc4>] fence_release+0x104/0x134
> > [   43.927066] [<ffffffc00088b0cc>] sync_fence_free+0x74/0x9c
> > [   43.932552] [<ffffffc00088b128>] sync_fence_release+0x34/0x48
> > [   43.938304] [<ffffffc000317bbc>] __fput+0x100/0x1b8
> > [   43.943185] [<ffffffc000317cc8>] ____fput+0x8/0x14
> > [   43.947982] [<ffffffc000237f38>] task_work_run+0xb0/0xe4
> > [   43.953297] [<ffffffc000207074>] do_notify_resume+0x44/0x5c
> > [   43.958867] ---[ end trace 5a2aa4027cc5d171 ]---
> > 
> > Let's fix it by introducing a new optional callback (disable_signaling)
> > to fence operations so that drivers can do proper clean ups when we
> > remove last callback for given fence.
> > 
> > Reviewed-by: Andrew Bresticker <abrestic@chromium.org>
> > Signed-off-by: Dmitry Torokhov <dtor@chromium.org>
> > ---
> >  drivers/dma-buf/fence.c        | 6 +++++-
> >  drivers/staging/android/sync.c | 8 ++++++++
> >  include/linux/fence.h          | 2 ++
> >  3 files changed, 15 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/dma-buf/fence.c b/drivers/dma-buf/fence.c
> > index 7b05dbe..0ed73ad 100644
> > --- a/drivers/dma-buf/fence.c
> > +++ b/drivers/dma-buf/fence.c
> > @@ -304,8 +304,12 @@ fence_remove_callback(struct fence *fence, struct fence_cb *cb)
> >  	spin_lock_irqsave(fence->lock, flags);
> >  
> >  	ret = !list_empty(&cb->node);
> > -	if (ret)
> > +	if (ret) {
> >  		list_del_init(&cb->node);
> > +		if (list_empty(&fence->cb_list))
> > +			if (fence->ops->disable_signaling)
> > +				fence->ops->disable_signaling(fence);
> 
> What exactly is the bug here? A fence with no callbacks registered any
> more shouldn't have any problem. Why exactly does this blow up?

The WARN_ON is probably this one:
https://android.googlesource.com/kernel/common/+/android-3.18/drivers/staging/android/sync.c#433

I've been wondering in the last few days if this warning is really
necessary. If the user is closing a sync_timeline that has unsignalled
fences it should probably be aware of that already. Then I think it is
okay to remove the the sync_pt from the active_list at the release-time.
In fact I've already prepared a patch doing that. Thoughts?  

	Gustavo

  parent reply	other threads:[~2015-12-15 19:00 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-15  1:29 [PATCH] android: fix warning when releasing active sync point Dmitry Torokhov
2015-12-15  9:26 ` Daniel Vetter
2015-12-15 17:17   ` Dmitry Torokhov
2015-12-15 19:00   ` Gustavo Padovan [this message]
2015-12-15 19:08     ` Dmitry Torokhov
2015-12-16 15:36       ` Daniel Vetter
2015-12-15 10:01 ` Maarten Lankhorst
2015-12-15 17:19   ` Dmitry Torokhov
2015-12-16  8:36     ` Maarten Lankhorst
2015-12-15 13:30 ` Gustavo Padovan
2015-12-15 13:50   ` Frank Binns
2015-12-15 17:21     ` Dmitry Torokhov
2015-12-15 17:22   ` Dmitry Torokhov
2015-12-16 15:37     ` Daniel Vetter

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=20151215190008.GE883@joana \
    --to=gustavo@padovan.org \
    --cc=abrestic@chromium.org \
    --cc=arve@android.com \
    --cc=devel@driverdev.osuosl.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=dtor@chromium.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=riandrews@android.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox