Hi Iago,

Thanks for your review!

On 6/1/26 08:52, Iago Toral wrote:
El dom, 31-05-2026 a las 17:18 -0300, Maíra Canal escribió:

(...)
diff --git a/drivers/gpu/drm/v3d/v3d_gem.c
b/drivers/gpu/drm/v3d/v3d_gem.c
index 1ee3c038d5f6..9487ab7acd03 100644
--- a/drivers/gpu/drm/v3d/v3d_gem.c
+++ b/drivers/gpu/drm/v3d/v3d_gem.c
@@ -137,7 +137,8 @@ v3d_reset(struct v3d_dev *v3d)
        v3d_mmu_set_page_table(v3d);
        v3d_irq_reset(v3d);
- v3d_perfmon_stop(v3d, v3d->active_perfmon, false);
+       /* Re-arm the global perfmon HW counters that the reset
zeroed. */
+       v3d_perfmon_resume(v3d);

What would happen if the reset happens when a non-global perfmon is
active?


Nothing. In v3d_gpu_reset_for_timeout(), before calling v3d_reset(), we
stop job->perfmon and set v3d->perfmon_state.active = NULL.

@@ -711,6 +693,8 @@ v3d_gpu_reset_for_timeout(struct v3d_dev *v3d, struct drm_sched_job *sched_job,
        if (sched_job)
                drm_sched_increase_karma(sched_job);

+       v3d_perfmon_stop(v3d, job->perfmon, false);
+
        /* get the GPU back into the init state */
        v3d_reset(v3d);

Best regards,
- Maíra

Iago


Reply via email to