[PATCH] drm/i915/gt: Add delay to let engine resumes properly
Krzysztof Karas
krzysztof.karas at intel.com
Thu Apr 24 12:29:47 UTC 2025
Hi Nitin,
[...]
> - if (!stop_ring(engine)) {
> + /*
> + * Sometimes engine head failed to set to zero even after writing into it.
> + * Use wait_for_atomic() with 20ms delay to let engine resumes from
> + * correct RING_HEAD. Experimented different values and determined
> + * that 20ms works best based on testing.
> + */
> + if (wait_for_atomic((!stop_ring(engine) == 0), 20)) {
> drm_err(&engine->i915->drm,
> "failed to set %s head to zero "
> "ctl %08x head %08x tail %08x start %08x\n",
I am wondering if xcs_resume() calling stop_ring() too would
benefit from having this timeout on hand as well. That would
require moving wait_for_atomic((!stop_ring(engine) == 0), 20)
along with your comment to a separate wrapper function.
What do you think?
Best Regards
Krzysztof
More information about the Intel-gfx
mailing list