Re: [Intel-gfx] [PATCH] drm/i915: Flush ggtt writes through the old fenced vma before changing fences

2018-01-31 Thread Lahtinen, Joonas
On Tue, 2018-01-30 at 16:44 +, Chris Wilson wrote:
> This is a precautionary measure as I have no evidence to suggest we've
> hit a bug here (I was hoping this might explain gdg's odd behaviour, but
> alas), but given that we have a function to flush the ggtt writes it
> seems prudent to use it prior to changing the fence register. Due to the
> intrinsic nature of the GTT often operating as an independent mmio path,
> we should not just rely on the write to the fence acting as a full flush
> for GTT writes.
> 
> Signed-off-by: Chris Wilson 
> Cc: Joonas Lahtinen 

Reviewed-by: Joonas Lahtinen 

Regards, Joonas
-
Intel Finland Oy
Registered Address: PL 281, 00181 Helsinki 
Business Identity Code: 0357606 - 4 
Domiciled in Helsinki 

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH] drm/i915: Flush ggtt writes through the old fenced vma before changing fences

2018-01-30 Thread Chris Wilson
This is a precautionary measure as I have no evidence to suggest we've
hit a bug here (I was hoping this might explain gdg's odd behaviour, but
alas), but given that we have a function to flush the ggtt writes it
seems prudent to use it prior to changing the fence register. Due to the
intrinsic nature of the GTT often operating as an independent mmio path,
we should not just rely on the write to the fence acting as a full flush
for GTT writes.

Signed-off-by: Chris Wilson 
Cc: Joonas Lahtinen 
---
 drivers/gpu/drm/i915/i915_gem_fence_reg.c | 8 ++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem_fence_reg.c 
b/drivers/gpu/drm/i915/i915_gem_fence_reg.c
index 012250f25255..b8338d75c6f3 100644
--- a/drivers/gpu/drm/i915/i915_gem_fence_reg.c
+++ b/drivers/gpu/drm/i915/i915_gem_fence_reg.c
@@ -230,10 +230,14 @@ static int fence_update(struct drm_i915_fence_reg *fence,
}
 
if (fence->vma) {
-   ret = i915_gem_active_retire(>vma->last_fence,
- >vma->obj->base.dev->struct_mutex);
+   struct i915_vma *old = fence->vma;
+
+   ret = i915_gem_active_retire(>last_fence,
+>obj->base.dev->struct_mutex);
if (ret)
return ret;
+
+   i915_vma_flush_writes(old);
}
 
if (fence->vma && fence->vma != vma) {
-- 
2.15.1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx