On Thu, Jul 10, 2025 at 05:47:05PM +0200, Peter Zijlstra wrote: > So kvm-amd is the SEV stuff, AGPGART is the ancient crap nobody cares > about, CCP is more SEV stuff, DRM actually does CLFLUSH loops, but has a > WBINVD fallback. i915 is rude and actually does WBINVD. Could they > pretty please also do CLFLUSH loops? So having looked at i915 a little more: drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c: * Currently we just do a heavy handed wbinvd_on_all_cpus() here since drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c: wbinvd_on_all_cpus(); This one can be runtime; but is only applied on certain parts that might be less than coherent -- hopefully not new parts, but who knows. Parts not taking this path end up calling drm_clflush_sg(), which DTRT. And these all look suspend/resume related, so we can live with them: drivers/gpu/drm/i915/gem/i915_gem_pm.c:#define wbinvd_on_all_cpus() \ drivers/gpu/drm/i915/gem/i915_gem_pm.c: wbinvd_on_all_cpus(); drivers/gpu/drm/i915/gem/i915_gem_pm.c: wbinvd_on_all_cpus(); drivers/gpu/drm/i915/gt/intel_ggtt.c: wbinvd_on_all_cpus();