Message ID | 1447756852-15183-1-git-send-email-chris@chris-wilson.co.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, Nov 17, 2015 at 10:40:51AM +0000, Chris Wilson wrote: > We have varied reports of swizzling corruption on gen4 desktop, and > confirmation that it is triggered by uneven memory banks. The s/it/one at least/ > implication is that the swizzling various between the paired channels s/various/varies/ > and the remainder of memory on the single channel. As the object then > has unpredictable swizzling (it will vary depending on exact page > allocation and may even change during the object's lifetime as the pages > are replaced), we have to report to userspace that the swizzling is > unknown.
On Tue, Nov 17, 2015 at 10:40:51AM +0000, Chris Wilson wrote: > We have varied reports of swizzling corruption on gen4 desktop, and > confirmation that it is triggered by uneven memory banks. The > implication is that the swizzling various between the paired channels > and the remainder of memory on the single channel. As the object then > has unpredictable swizzling (it will vary depending on exact page > allocation and may even change during the object's lifetime as the pages > are replaced), we have to report to userspace that the swizzling is > unknown. > > Reported-by: Matti Hämäläinen <ccr@tnsp.org> > References: https://bugs.freedesktop.org/show_bug.cgi?id=90725 > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> > Cc: Matti Hämäläinen <ccr@tnsp.org> > Cc: stable@vger.kernel.org Tested-by: Matti Hämäläinen <ccr@tnsp.org> -Chris
On Tue, Nov 17, 2015 at 10:40:51AM +0000, Chris Wilson wrote: > We have varied reports of swizzling corruption on gen4 desktop, and > confirmation that it is triggered by uneven memory banks. The > implication is that the swizzling various between the paired channels > and the remainder of memory on the single channel. As the object then > has unpredictable swizzling (it will vary depending on exact page > allocation and may even change during the object's lifetime as the pages > are replaced), we have to report to userspace that the swizzling is > unknown. > > Reported-by: Matti Hämäläinen <ccr@tnsp.org> > References: https://bugs.freedesktop.org/show_bug.cgi?id=90725 > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> > Cc: Matti Hämäläinen <ccr@tnsp.org> > Cc: stable@vger.kernel.org > --- > drivers/gpu/drm/i915/i915_gem_fence.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_gem_fence.c b/drivers/gpu/drm/i915/i915_gem_fence.c > index 40a10b25956c..6ba68083aa95 100644 > --- a/drivers/gpu/drm/i915/i915_gem_fence.c > +++ b/drivers/gpu/drm/i915/i915_gem_fence.c > @@ -677,8 +677,8 @@ i915_gem_detect_bit_6_swizzle(struct drm_device *dev) > * the minimum size of a rank. > */ > if (I915_READ16(C0DRB3) != I915_READ16(C1DRB3)) { > - swizzle_x = I915_BIT_6_SWIZZLE_NONE; > - swizzle_y = I915_BIT_6_SWIZZLE_NONE; > + swizzle_x = I915_BIT_6_SWIZZLE_UNKNOWN; > + swizzle_y = I915_BIT_6_SWIZZLE_UNKNOWN; Existing userspace goes boom if we hand it _UNKNOWN as the swizzle type. We need the same lie as with L-shaped on g4x and only set the quirk, so that phys_swizzle_mode is _UNKOWN. See commit 5eb3e5a5e11d14f9deb2a4b83555443b69ab9940 Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Sun Jun 28 09:19:26 2015 +0100 drm/i915: Declare the swizzling unknown for L-shaped configurations So if you keep the swizzle put add the dev_priv->quirks |= QUIRK_PIN_SWIZZLED_PAGES; here instead (and drop patch 2) this looks good and gets my r-b. But please include a reference to the above commit so we don't forget all this. -Daniel > } else { > swizzle_x = I915_BIT_6_SWIZZLE_9_10; > swizzle_y = I915_BIT_6_SWIZZLE_9; > -- > 2.6.2 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff --git a/drivers/gpu/drm/i915/i915_gem_fence.c b/drivers/gpu/drm/i915/i915_gem_fence.c index 40a10b25956c..6ba68083aa95 100644 --- a/drivers/gpu/drm/i915/i915_gem_fence.c +++ b/drivers/gpu/drm/i915/i915_gem_fence.c @@ -677,8 +677,8 @@ i915_gem_detect_bit_6_swizzle(struct drm_device *dev) * the minimum size of a rank. */ if (I915_READ16(C0DRB3) != I915_READ16(C1DRB3)) { - swizzle_x = I915_BIT_6_SWIZZLE_NONE; - swizzle_y = I915_BIT_6_SWIZZLE_NONE; + swizzle_x = I915_BIT_6_SWIZZLE_UNKNOWN; + swizzle_y = I915_BIT_6_SWIZZLE_UNKNOWN; } else { swizzle_x = I915_BIT_6_SWIZZLE_9_10; swizzle_y = I915_BIT_6_SWIZZLE_9;
We have varied reports of swizzling corruption on gen4 desktop, and confirmation that it is triggered by uneven memory banks. The implication is that the swizzling various between the paired channels and the remainder of memory on the single channel. As the object then has unpredictable swizzling (it will vary depending on exact page allocation and may even change during the object's lifetime as the pages are replaced), we have to report to userspace that the swizzling is unknown. Reported-by: Matti Hämäläinen <ccr@tnsp.org> References: https://bugs.freedesktop.org/show_bug.cgi?id=90725 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Matti Hämäläinen <ccr@tnsp.org> Cc: stable@vger.kernel.org --- drivers/gpu/drm/i915/i915_gem_fence.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)