From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com ([134.134.136.20]:61130 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752425AbbF2MWb (ORCPT ); Mon, 29 Jun 2015 08:22:31 -0400 From: Jani Nikula To: Chris Wilson , intel-gfx@lists.freedesktop.org Cc: Daniel Vetter , stable@vger.kernel.org Subject: Re: [Intel-gfx] [PATCH] drm/i915: Declare the swizzling unknown for L-shaped configurations In-Reply-To: <20150628125254.GK14226@nuc-i3427.alporthouse.com> References: <1435479566-25065-1-git-send-email-chris@chris-wilson.co.uk> <20150628125254.GK14226@nuc-i3427.alporthouse.com> Date: Mon, 29 Jun 2015 15:25:02 +0300 Message-ID: <878ub2ya5d.fsf@intel.com> MIME-Version: 1.0 Content-Type: text/plain Sender: stable-owner@vger.kernel.org List-ID: On Sun, 28 Jun 2015, Chris Wilson wrote: > On Sun, Jun 28, 2015 at 09:19:26AM +0100, Chris Wilson wrote: >> The old style of memory interleaving swizzled upto the end of the >> first even bank of memory, and then used the remainder as unswizzled on >> the unpaired bank - i.e. swizzling is not constant for all memory. This >> causes problems when we try to migrate memory and so the kernel prevents >> migration at all when we detect L-shaped inconsistent swizzling. >> However, this issue also extends to userspace who try to manually detile >> into memory as the swizzling for an individual page is unknown (it >> depends on its physical address only known to the kernel), userspace >> cannot correctly swizzle. >> >> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91105 >> Signed-off-by: Chris Wilson >> Cc: Daniel Vetter >> Cc: stable@vger.kernel.org >> --- >> drivers/gpu/drm/i915/i915_gem_tiling.c | 5 ++++- >> 1 file changed, 4 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/gpu/drm/i915/i915_gem_tiling.c b/drivers/gpu/drm/i915/i915_gem_tiling.c >> index d16585f788ea..ff96ae9b77bc 100644 >> --- a/drivers/gpu/drm/i915/i915_gem_tiling.c >> +++ b/drivers/gpu/drm/i915/i915_gem_tiling.c >> @@ -447,7 +447,10 @@ i915_gem_get_tiling(struct drm_device *dev, void *data, >> } >> >> /* Hide bit 17 from the user -- see comment in i915_gem_set_tiling */ >> - args->phys_swizzle_mode = args->swizzle_mode; >> + if (dev_priv->quirks & QUIRK_PIN_SWIZZLED_PAGES) >> + args->phys_swizzle_mode = I915_BIT_6_SWIZZLE_UNKNOWN; >> + else >> + args->phys_swizzle_mode = args->swizzle_mode; > > It may be better to store the dev_priv->mm.bit_6_swizzle_[xy] as UNKNOWN > for L-shaped memory. I think that would be more correct. Are you planning on sending an updated patch, or shall I merge this one? BR, Jani. > -Chris > > -- > Chris Wilson, Intel Open Source Technology Centre > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Jani Nikula, Intel Open Source Technology Center