From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 2/2] drm/i915: Force TLB invalidation for erratum on 830/845 BLT Date: Mon, 16 Apr 2012 11:02:13 +0200 Message-ID: <20120416090213.GC4199@phenom.ffwll.local> References: <1334566397-9110-1-git-send-email-chris@chris-wilson.co.uk> <1334566397-9110-2-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail-wg0-f43.google.com (mail-wg0-f43.google.com [74.125.82.43]) by gabe.freedesktop.org (Postfix) with ESMTP id BCBC19E7B5 for ; Mon, 16 Apr 2012 02:01:17 -0700 (PDT) Received: by wgbdr12 with SMTP id dr12so4082284wgb.12 for ; Mon, 16 Apr 2012 02:01:17 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1334566397-9110-2-git-send-email-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: Chris Wilson Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org On Mon, Apr 16, 2012 at 09:53:17AM +0100, Chris Wilson wrote: > On 830/845, the BLT unit invalidates the wrong PTE in its TLB after the > GATT is updated. A simple solution is then to always invalidate the TLB > of the BLT prior to each execbuffer. > > This does appear to improve the stability slighty, but I am still seeing > spurious GPU deaths under memory pressure. > > References: https://bugs.freedesktop.org/show_bug.cgi?id=26345 > Signed-off-by: Chris Wilson In the light of the eventual gpu domain tracking removal, can't we just unconditionally set these bit in the new gen2_render_ring_flush function? Or is it indeed to expensive? -Daniel > --- > drivers/gpu/drm/i915/i915_gem_execbuffer.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c > index 60fc132..b825c06 100644 > --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c > +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c > @@ -883,6 +883,13 @@ i915_gem_execbuffer_move_to_gpu(struct intel_ring_buffer *ring, > int ret; > > memset(&cd, 0, sizeof(cd)); > + > + /* We need to invalidate the BLT's prefetched entries after > + * updating the GATT (as the hardware invalidates the wrong PTEs). > + */ > + if (IS_I830(ring->dev) || IS_845G(ring->dev)) > + cd.invalidate_domains = I915_GEM_DOMAIN_RENDER; > + > list_for_each_entry(obj, objects, exec_list) > i915_gem_object_set_to_gpu_domain(obj, ring, &cd); > > -- > 1.7.10 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Mail: daniel@ffwll.ch Mobile: +41 (0)79 365 57 48