Re: [PATCH v2 2/5] drm/etnaviv: assert GPU lock held in perfmon pipe_*_read functions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>
> The perf counter read functions don't just read registers, but they
> also mutate state to direct the reads towards the correct pipe and
> engine. Assert that the GPU mutex is held at this point, so that
> those state changes don't interfere with others.
>
> Signed-off-by: Lucas Stach <l.stach@xxxxxxxxxxxxxx>

Reviewed-by: Christian Gmeiner <cgmeiner@xxxxxxxxxx>

> ---
> v2: new patch
> ---
>  drivers/gpu/drm/etnaviv/etnaviv_perfmon.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/drivers/gpu/drm/etnaviv/etnaviv_perfmon.c b/drivers/gpu/drm/etnaviv/etnaviv_perfmon.c
> index dc9dea664a28..d53a5c293373 100644
> --- a/drivers/gpu/drm/etnaviv/etnaviv_perfmon.c
> +++ b/drivers/gpu/drm/etnaviv/etnaviv_perfmon.c
> @@ -62,6 +62,8 @@ static u32 pipe_perf_reg_read(struct etnaviv_gpu *gpu,
>         u32 value = 0;
>         unsigned i;
>
> +       lockdep_assert_held(&gpu->lock);
> +
>         for (i = 0; i < gpu->identity.pixel_pipes; i++) {
>                 pipe_select(gpu, clock, i);
>                 value += perf_reg_read(gpu, domain, signal);
> @@ -81,6 +83,8 @@ static u32 pipe_reg_read(struct etnaviv_gpu *gpu,
>         u32 value = 0;
>         unsigned i;
>
> +       lockdep_assert_held(&gpu->lock);
> +
>         for (i = 0; i < gpu->identity.pixel_pipes; i++) {
>                 pipe_select(gpu, clock, i);
>                 value += gpu_read(gpu, signal->data);
> --
> 2.39.2
>


-- 
greets
--
Christian Gmeiner, MSc

https://christian-gmeiner.info/privacypolicy



[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux