This looks good to me, I asked a couple of questions about patches 1
and 5, everything else is:

Reviewed-by: Iago Toral Quiroga <[email protected]>

El dom, 04-10-2026 a las 12:42 -0300, Maíra Canal escribió:
> 
(...)

> On a Raspberry Pi 3B+ running `glmark2-wayland --off-screen`,
> lock_stat
> shows job_lock contentions reduced by 90% (2093 -> 207 per run) and
> total
> wait time by 96% (14.7 ms -> 0.6 ms). The longest job_lock hold,
> during
> which interrupts are disabled, drops from 747 us to 27 us, as the
> render
> done handler no longer signals fences under the lock. The workload is
> GPU-bound, so the glmark2 score is unchanged (239.6 vs 240.2) [1].

If you want to force a CPU bound scenario you may be able to achieve
that by dropping output resolution to a minimum (passing something like
-s 32x32) . That would make GPU-side work very small and CPU work might
become dominant.

Iago

> 
> About 99k acquisitions per run move off job_lock onto the per-fence
> locks,
> and 185k more onto bin_alloc_lock, with little contention on either.
> 
> Considering that glmark2 is a GPU-bound client, it's important to
> notice
> that contention improvements might be higher with several clients or
> a
> CPU-bound workload, which I did not measure.
> 
> This series applies on top of "drm/vc4: Fix binner slot allocation
> failing
> on an idle GPU" [2].
> 
> [1] `glmark2-wayland --off-screen` scores are the mean of 5 runs per
> kernel
> without CONFIG_LOCK_STAT enabled. The lock data is the mean of 3 runs
> from
> CONFIG_LOCK_STAT builds.
> 
> [2]
> https://lore.kernel.org/dri-devel/[email protected]/T/
> 
> Best regards,
> - Maíra
> 
> ---
> Maíra Canal (11):
>       drm/vc4: Publish the output fence outside of job_lock
>       drm/vc4: Drop the BO reservations outside of job_lock
>       drm/vc4: Refcount vc4_exec_info
>       drm/vc4: Return the seqno of the submitted job
>       drm/vc4: Attach the job fences outside of job_lock
>       drm/vc4: Use the inline fence lock
>       drm/vc4: Signal the render fence outside of job_lock
>       drm/vc4: Take job_lock only once to drain job_done_list
>       drm/vc4: Protect perfmon state with a dedicated lock
>       drm/vc4: Protect the hang state with a dedicated lock
>       drm/vc4: Split out bin_alloc_lock
> 
>  drivers/gpu/drm/vc4/vc4_drv.h     |  20 +++++--
>  drivers/gpu/drm/vc4/vc4_gem.c     | 106 +++++++++++++++++++---------
> ----------
>  drivers/gpu/drm/vc4/vc4_irq.c     |  80 ++++++++++++++++------------
>  drivers/gpu/drm/vc4/vc4_perfmon.c |  40 +++++++++-----
>  drivers/gpu/drm/vc4/vc4_v3d.c     |   2 +-
>  5 files changed, 146 insertions(+), 102 deletions(-)
> ---
> base-commit: 64eded63d88ea70466c57cf433761bb1efea37a4
> change-id: 20261002-vc4-misc-fixes-2b313622f570
> 
> 

Reply via email to