[PATCH v2 2/2] dma-buf/sw_sync: force signal all unsignaled fences on dying timeline
Chris Wilson
chris at chris-wilson.co.uk
Fri Sep 8 13:07:00 UTC 2017
Quoting Gustavo Padovan (2017-09-08 14:03:00)
> Hi Chris,
>
> 2017-09-07 Chris Wilson <chris at chris-wilson.co.uk>:
>
> > Quoting Gustavo Padovan (2017-09-07 20:02:46)
> > > From: Dominik Behr <dbehr at chromium.org>
> > >
> > > To avoid hanging userspace components that might have been waiting on the
> > > active fences of the destroyed timeline we need to signal with error all
> > > remaining fences on such timeline.
> > >
> > > This restore the default behaviour of the Android sw_sync framework, which
> > > Android still relies on. It was broken on the dma fence conversion a few
> > > years ago and never fixed.
> > >
> > > v2: Do not bother with cleanup do the list (Chris Wilson)
> > >
> > > Signed-off-by: Dominik Behr <dbehr at chromium.org>
> > > Signed-off-by: Gustavo Padovan <gustavo.padovan at collabora.com>
> > Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
> >
> > > ---
> > > drivers/dma-buf/sw_sync.c | 10 ++++++++++
> > > 1 file changed, 10 insertions(+)
> > >
> > > diff --git a/drivers/dma-buf/sw_sync.c b/drivers/dma-buf/sw_sync.c
> > > index 38cc7389a6c1..f183eef074fd 100644
> > > --- a/drivers/dma-buf/sw_sync.c
> > > +++ b/drivers/dma-buf/sw_sync.c
> > > @@ -321,9 +321,19 @@ static int sw_sync_debugfs_open(struct inode *inode, struct file *file)
> > > static int sw_sync_debugfs_release(struct inode *inode, struct file *file)
> > > {
> > > struct sync_timeline *obj = file->private_data;
> > > + struct sync_pt *pt, *next;
> > >
> > > smp_wmb();
> > >
> > > + spin_lock_irq(&obj->lock);
> >
> > Given the spinlock, that uncommented barrier (what is it paired with?)
> > above is redundant.
>
> Okay, I'll remove the barrier and push that patch, I assume your r-b
> will comtemplate that as well?
No worries, either as one patch or two, slap my r-b on it.
-Chris
More information about the dri-devel
mailing list