From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 2/2] drm/i915: Don't access snooped pages through the GTT (even for error capture) Date: Thu, 30 Jan 2014 17:08:09 +0200 Message-ID: <20140130150809.GQ9454@intel.com> References: <1391092696-29574-1-git-send-email-chris@chris-wilson.co.uk> <1391092696-29574-2-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 5DA8311EE9F for ; Thu, 30 Jan 2014 07:08:13 -0800 (PST) Content-Disposition: inline In-Reply-To: <1391092696-29574-2-git-send-email-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org To: Chris Wilson Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org On Thu, Jan 30, 2014 at 02:38:16PM +0000, Chris Wilson wrote: > We want to use the GTT for reading back objects upon an error so that we > have exactly the information that the GPU saw. However, it is verboten > to access snoopable pages through the GTT and causes my PineView GPU to > throw a page fault instead. > = > This has not been a problem in the past as we only dumped ringbuffers > and batchbuffers, both of which must be uncached. However, the > introduction of HWS page dumping leads to a read of a snooped object > through the GTT. This was introduced by > = > commit f3ce3821393e31a3f1a8ca6c24eb2d735a428445 > Author: Chris Wilson > Date: Thu Jan 23 22:40:36 2014 +0000 > = > drm/i915: Include HW status page in error capture > = > Signed-off-by: Chris Wilson > --- > drivers/gpu/drm/i915/i915_gpu_error.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > = > diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915= /i915_gpu_error.c > index 6d5ab945132c..3b18c2dff3b8 100644 > --- a/drivers/gpu/drm/i915/i915_gpu_error.c > +++ b/drivers/gpu/drm/i915/i915_gpu_error.c > @@ -527,7 +527,8 @@ i915_error_object_create_sized(struct drm_i915_privat= e *dev_priv, > goto unwind; > = > local_irq_save(flags); > - if (reloc_offset < dev_priv->gtt.mappable_end && > + if (src->cache_level =3D=3D I915_CACHE_NONE && > + reloc_offset < dev_priv->gtt.mappable_end && > src->has_global_gtt_mapping && > i915_is_ggtt(vm)) { > void __iomem *s; So you don't want to make it (cache_level =3D=3D NONE || HAS_LLC)? -- = Ville Syrj=E4l=E4 Intel OTC