gnome-shell stuck because of amdgpu driver [5.3 RC5]
Hillf Danton
hdanton at sina.com
Fri Aug 30 03:29:48 UTC 2019
On Fri, 30 Aug 2019 06:04:06 +0800 Mikhail Gavrilov wrote:
> On Sun, Aug 25, 2019 at 10:13:05PM +0800, Hillf Danton wrote:
> > Can we try to add the fallback timer manually?
> >
> > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
> > @@ -322,6 +322,10 @@ int amdgpu_fence_wait_empty(struct amdgp
> > }
> > rcu_read_unlock();
> >
> > + if (!timer_pending(&ring->fence_drv.fallback_timer))
> > + mod_timer(&ring->fence_drv.fallback_timer,
> > + jiffies + (AMDGPU_FENCE_JIFFIES_TIMEOUT << 1));
> > +
> > r = dma_fence_wait(fence, false);
> > dma_fence_put(fence);
> > return r;
> > --
> >
> > Or simply wait with an ear on signal and timeout if adding timer
> > seems to go a bit too far?
> >
> > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
> > @@ -322,7 +322,12 @@ int amdgpu_fence_wait_empty(struct amdgp
> > }
> > rcu_read_unlock();
> >
> > - r = dma_fence_wait(fence, false);
> > + if (0 < dma_fence_wait_timeout(fence, true,
> > + AMDGPU_FENCE_JIFFIES_TIMEOUT +
> > + (AMDGPU_FENCE_JIFFIES_TIMEOUT >> 3)))
> > + r = 0;
> > + else
> > + r = -EINVAL;
> > dma_fence_put(fence);
WARN(r, "gnome shell stuck warning\n");
> > return r;
> > }
>
> I tested both patches on top of 5.3 RC6. Each patch I was tested more
> than 24 hours and I don't seen any regressions or problems with them.
>
Add a warning to show if it makes sense in field: neither regression nor
problem will have been observed with the warning printed.
Thanks
Hillf
More information about the dri-devel
mailing list