[PATCH v5 1/2] drm/panthor: Reset queue slots if termination fails
Ashley Smith
ashley.smith at collabora.com
Wed Jun 4 10:01:27 UTC 2025
On Tue, 03 Jun 2025 12:09:44 +0100 Liviu Dudau <liviu.dudau at arm.com> wrote:
> On Tue, Jun 03, 2025 at 10:49:31AM +0100, Ashley Smith wrote:
> > This fixes a bug where if we timeout after a suspend and the termination
> > fails, due to waiting on a fence that will never be signalled for
> > example, we do not resume the group correctly. The fix forces a reset
> > for groups that are not terminated correctly.
>
> I have a question on the commit message: you're describing a situation where
> a fence will *never* be signalled. Is that a real example? I thought this is
> not supposed to ever happen! Or are you trying to say that the fence signalling
> happens after the timeout?
This covers cases where a fence is never signalled. It shouldn't happen, but we have found this in some situations with a FW hang. Since queue_suspend_timeout() is only called on state update, if a suspend/terminate fails due to a FW hang for example this will leave delayed work, possibly leading to an incorrect queue_timeout_work(). Maybe I should not have used the word bug, it's more choosing a failsafe path.
More information about the dri-devel
mailing list