From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm/i915: paper over missed irq issues with force wake vodoo Date: Tue, 10 Jan 2012 13:20:06 +0100 Message-ID: <20120110122006.GD3979@phenom.ffwll.local> References: <1325702445-2231-1-git-send-email-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail-wi0-f177.google.com (mail-wi0-f177.google.com [209.85.212.177]) by gabe.freedesktop.org (Postfix) with ESMTP id E496E9E8B3 for ; Tue, 10 Jan 2012 04:18:02 -0800 (PST) Received: by wibhq15 with SMTP id hq15so4486923wib.36 for ; Tue, 10 Jan 2012 04:18:02 -0800 (PST) Content-Disposition: inline In-Reply-To: <1325702445-2231-1-git-send-email-daniel.vetter@ffwll.ch> 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: Keith Packard Cc: Daniel Vetter , intel-gfx , Eugeni Dodonov , stable@kernel.org List-Id: intel-gfx@lists.freedesktop.org On Wed, Jan 04, 2012 at 07:40:45PM +0100, Daniel Vetter wrote: > Two things seem to do the trick on my ivb machine here: > - prevent the gt from powering down while waiting for seqno > notification interrupts by grabbing the force_wake in get_irq (and > dropping it in put_irq again). > - ordering writes from the ring's CS by reading a CS register, ACTHD > seems to work. > > Only the blt&bsd ring on ivb seem to be massively affected by this, > but for paranoia do this dance also on the render ring and on snb > (i.e. all gpus with forcewake). > > Tested with Eric's glCopyPixels loop which without this patch scores a > missed irq every few seconds. > > This patch needs my forcewake rework to use a spinlock instead of > dev->struct_mutex. > > v2: Improve the comment per Eugeni Dodonov's suggestion. > > Cc: stable@kernel.org > Cc: Eric Anholt > Cc: Kenneth Graunke > Cc: Eugeni Dodonov > Tested-by: Eugeni Dodonov > Reviewed-by: Eugeni Dodonov > Signed-Off-by: Daniel Vetter >>From the internal doc "SNB GT PM Programming Guide", Section 4.3.1: "GT does not generate interrupts while in RC6 (by design)" It talks about the PM interrupt but I think this might also apply to interrupts in general. So I think we should apply the voodoo patch also to snb. My current working theory is hw engineers changed the way hwstam writes are generated wrt to the read/write/irq pipeline on ivb and we've only been lucky that it syncs out everything on snb before the gpu goes into deep sleep states. -Daniel -- Daniel Vetter Mail: daniel@ffwll.ch Mobile: +41 (0)79 365 57 48