[PATCH v4 0/3] Rework panthor's cache flush and soft reset locking
Nicolas Frattaroli <[email protected]>
| Newsgroups | org.kernel.vger.linux-kernel,org.freedesktop.lists.dri-devel |
|---|---|
| Message-ID | <[email protected]> |
There is a problem in panthor's cache flushing/soft reset code related to locking. They take the reqs_lock spinlock with _irqsave, even though the contended lock is never acquired in a raw interrupt handler. Only a threaded handler locks it. A new tracepoint to debug cache flushing duration without initial locking waits is thrown in for good measure as well, to complement what's in lock_stat and what the function tracer can already do. Signed-off-by: Nicolas Frattaroli <[email protected]> --- Changes in v4: - Replace flush tracepoints with just one tracepoint that has a duration and exit status argument - Link to v3: https://patch.msgid.link/[email protected] Changes in v3: - Drop new wait_event macro patch as the existing ones have a memory barrier that makes the current use valid - Rewrite fix patch to use scoped guards, and just get rid of the IRQ disabling - Add separate fix for the outside-of-lock pending_reqs clearing in soft reset path - Move tracepoint patch to before fixes for easier before/after testing - Link to v2: https://patch.msgid.link/[email protected] Changes in v2: - Use trace event template for the two tracepoints (ty Steven Rostedt) - Link to v1: https://patch.msgid.link/[email protected] --- Nicolas Frattaroli (3): drm/panthor: Add tracepoint for cache flushing drm/panthor: Revisit reqs_lock handling in flush/reset paths drm/panthor: Take reqs_lock in soft_reset for clearing pending_reqs drivers/gpu/drm/panthor/panthor_gpu.c | 89 ++++++++++++++++++++------------- drivers/gpu/drm/panthor/panthor_trace.h | 38 ++++++++++++++ 2 files changed, 93 insertions(+), 34 deletions(-) --- base-commit: 96ddbb14986632af742523e68f90d51c138c57f0 change-id: 20260728-panthor-cache-flush-fix-b36cb15f92c3 Best regards, -- Nicolas Frattaroli <[email protected]>