diff options
| author | Maíra Canal <mcanal@igalia.com> | 2026-07-06 10:29:19 -0300 |
|---|---|---|
| committer | Maíra Canal <mcanal@igalia.com> | 2026-07-07 16:58:46 -0300 |
| commit | 9cf5cbd8648102ddee6559217f43b8f5aae48a78 (patch) | |
| tree | fd4de6cab0bf535f942c3aeee685439bf6207395 /tools/perf/scripts/python/export-to-postgresql.py | |
| parent | a57c0d30f8247dcebf3b2395f12bca4191d67664 (diff) | |
drm/v3d: Serialize jobs across queues when a perfmon is attached
A non-global perfmon is meant to count events generated by a specific
submission, but the scheduler can run jobs from different queues
concurrently on the same V3D core. Without explicit serialization, an
unrelated job running in parallel with a perfmon-carrying job pollutes
the counters and generates unusable results.
To address such issue, we must enforce cross-queue serialization when we
detect a perfmon-carrying submission. It's possible to implement
serialization by enforcing two rules:
1. A job that carries a non-global perfmon must wait for every job
currently in-flight across all HW queues to finish.
2. While a perfmon-carrying job is still in-flight, all subsequently
submitted jobs must wait for it.
Note that serialization is not needed in the global perfmon case, as the
global perfmon tracks activity from all jobs, so concurrency is desirable.
Therefore, check if serialization is needed during job submission and if
so, attach fence dependences to enforce cross-queue serialization.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Link: https://patch.msgid.link/20260706-v3d-perfmon-lifetime-v4-2-d7b312ff2c83@igalia.com
Signed-off-by: Maíra Canal <mcanal@igalia.com>
Diffstat (limited to 'tools/perf/scripts/python/export-to-postgresql.py')
0 files changed, 0 insertions, 0 deletions
