On 01.09.2026 15:37, Boris Brezillon wrote: > On Fri, 28 Aug 2026 21:56:54 +0100 > Adrián Larumbe <[email protected]> wrote: > > > If the GPU and CPU are fully coherent, then there's no need to flush the > > GPU caches after a perfcnt sample is made available. > > > > Signed-off-by: Adrián Larumbe <[email protected]> > > --- > > drivers/gpu/drm/panfrost/panfrost_perfcnt.c | 5 ++++- > > 1 file changed, 4 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/panfrost/panfrost_perfcnt.c > > b/drivers/gpu/drm/panfrost/panfrost_perfcnt.c > > index ffc77121070e..b3f71d7fd82a 100644 > > --- a/drivers/gpu/drm/panfrost/panfrost_perfcnt.c > > +++ b/drivers/gpu/drm/panfrost/panfrost_perfcnt.c > > @@ -52,7 +52,10 @@ void panfrost_perfcnt_clean_cache_done(struct > > panfrost_device *pfdev) > > > > void panfrost_perfcnt_sample_done(struct panfrost_device *pfdev) > > { > > - gpu_write(pfdev, GPU_CMD, GPU_CMD_CLEAN_CACHES); > > + if (pfdev->features.selected_coherency != COHERENCY_ACE) > > I think ACE_LITE would allow us to skip the flush to, so
I thought ACE_LITE means the GPU can snoop CPU caches but not the other way round, so at the end of a sample, we still have to flush GPU caches for the CPU to see counter data. > if (pfdev->features.selected_coherency == COHERENCY_NONE) > > > + gpu_write(pfdev, GPU_CMD, GPU_CMD_CLEAN_CACHES); > > + else > > + complete(&pfdev->perfcnt->dump_comp); > > } > > > > static int panfrost_perfcnt_dump_locked(struct panfrost_device *pfdev) > > Adrian Larumbe
