[Intel-gfx] [PATCH] agp/intel: Flush all chipset writes after updating the GGTT

Joonas Lahtinen joonas.lahtinen at linux.intel.com
Mon Dec 11 10:55:40 UTC 2017


On Fri, 2017-12-08 at 21:46 +0000, Chris Wilson wrote:
> Before accessing the GGTT we must flush the PTE writes and make them
> visible to the chipset, or else the indirect access may end up in the
> wrong page. In commit 3497971a71d8 ("agp/intel: Flush chipset writes
> after updating a single PTE"), we noticed corruption of the uploads for
> pwrite and for capturing GPU error states, but it was presumed that the
> explicit calls to intel_gtt_chipset_flush() were sufficient for the
> execbuffer path. However, we have not been flushing the chipset between
> the PTE writes and access via the GTT itself.
> 
> For simplicity, do the flush after any PTE update rather than try and
> batch the flushes on a just-in-time basis.
> 
> References: 3497971a71d8 ("agp/intel: Flush chipset writes after updating a single PTE")
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> Cc: Mika Kuoppala <mika.kuoppala at intel.com>
> Cc: drm-intel-fixes at lists.freedesktop.org

I don't think this is being used so much anymore? (+ Jani for this)

Why not Cc: stable? My DIM says # v4.9+

> +++ b/drivers/char/agp/intel-gtt.c
> @@ -872,6 +872,8 @@ void intel_gtt_insert_sg_entries(struct sg_table *st,
>  		}
>  	}
>  	wmb();
> +	if (intel_private.driver->chipset_flush)
> +		intel_private.driver->chipset_flush();

Reviewed-by: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>

Regards, Joonas
-- 
Joonas Lahtinen
Open Source Technology Center
Intel Corporation


More information about the Intel-gfx mailing list