mirror of
https://github.com/torvalds/linux.git
synced 2025-11-05 03:00:13 +02:00
We've fixed many races in panfrost_job_timedout() but some remain.
Instead of trying to fix it again, let's simplify the logic and move
the reset bits to a separate work scheduled when one of the queue
reports a timeout.
v5:
- Simplify panfrost_scheduler_stop() (Steven Price)
- Always restart the queue in panfrost_scheduler_start() even if
the status is corrupted (Steven Price)
v4:
- Rework the logic to prevent a race between drm_sched_start()
(reset work) and drm_sched_job_timedout() (timeout work)
- Drop Steven's R-b
- Add dma_fence annotation to the panfrost_reset() function (Daniel Vetter)
v3:
- Replace the atomic_cmpxchg() by an atomic_xchg() (Robin Murphy)
- Add Steven's R-b
v2:
- Use atomic_cmpxchg() to conditionally schedule the reset work
(Steven Price)
Fixes:
|
||
|---|---|---|
| .. | ||
| Kconfig | ||
| Makefile | ||
| panfrost_devfreq.c | ||
| panfrost_devfreq.h | ||
| panfrost_device.c | ||
| panfrost_device.h | ||
| panfrost_drv.c | ||
| panfrost_features.h | ||
| panfrost_gem.c | ||
| panfrost_gem.h | ||
| panfrost_gem_shrinker.c | ||
| panfrost_gpu.c | ||
| panfrost_gpu.h | ||
| panfrost_issues.h | ||
| panfrost_job.c | ||
| panfrost_job.h | ||
| panfrost_mmu.c | ||
| panfrost_mmu.h | ||
| panfrost_perfcnt.c | ||
| panfrost_perfcnt.h | ||
| panfrost_regs.h | ||
| TODO | ||