[Intel-gfx] [PATCH] drm/i915: tweak the ordering in cpu_write_needs_clflush
Gwan-gyeong Mun
gwan-gyeong.mun at intel.com
Mon Jun 27 07:43:38 UTC 2022
Thanks for fixing this issue.
Looks good to me.
Reviewed-by: Gwan-gyeong Mun <gwan-gyeong.mun at intel.com>
On 6/22/22 6:59 PM, Matthew Auld wrote:
> For imported dma-buf objects we leave the object as cache_coherent = 0
> across all platforms, which is reasonable given that have no clue what
> the memory underneath is, and its not like the driver can ever manually
> clflush the pages anyway (like with i915_gem_clflush_object) for such
> objects. However on discrete we choose to treat cache_dirty = true as a
> programmer error, leading to a warning. The simplest fix looks to be to
> just change the ordering in cpu_write_needs_clflush to prevent ever
> setting cache_dirty for dma-buf objects on discrete.
>
> Fixes: d028a7690d87 ("drm/i915/dmabuf: Fix prime_mmap to work when using LMEM")
> Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/5266
> Signed-off-by: Matthew Auld <matthew.auld at intel.com>
> Cc: Thomas Hellström <thomas.hellstrom at linux.intel.com>
> Cc: Gwan-gyeong Mun <gwan-gyeong.mun at intel.com>
> ---
> drivers/gpu/drm/i915/gem/i915_gem_domain.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_domain.c b/drivers/gpu/drm/i915/gem/i915_gem_domain.c
> index 3e5d6057b3ef..1674b0c5802b 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_domain.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_domain.c
> @@ -35,12 +35,12 @@ bool i915_gem_cpu_write_needs_clflush(struct drm_i915_gem_object *obj)
> if (obj->cache_dirty)
> return false;
>
> - if (!(obj->cache_coherent & I915_BO_CACHE_COHERENT_FOR_WRITE))
> - return true;
> -
> if (IS_DGFX(i915))
> return false;
>
> + if (!(obj->cache_coherent & I915_BO_CACHE_COHERENT_FOR_WRITE))
> + return true;
> +
> /* Currently in use by HW (display engine)? Keep flushed. */
> return i915_gem_object_is_framebuffer(obj);
> }
>
More information about the Intel-gfx
mailing list