From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v2 04/16] drm/i915: Resurrect ring kicking for semaphores, selectively Date: Sun, 17 Mar 2013 22:53:54 +0100 Message-ID: <20130317215354.GG9021@phenom.ffwll.local> References: <1363276337-12509-1-git-send-email-mika.kuoppala@intel.com> <1363276337-12509-5-git-send-email-mika.kuoppala@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail-ea0-f181.google.com (mail-ea0-f181.google.com [209.85.215.181]) by gabe.freedesktop.org (Postfix) with ESMTP id B1FDAE5F2B for ; Sun, 17 Mar 2013 14:51:09 -0700 (PDT) Received: by mail-ea0-f181.google.com with SMTP id z10so2303605ead.40 for ; Sun, 17 Mar 2013 14:51:08 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1363276337-12509-5-git-send-email-mika.kuoppala@intel.com> 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: Mika Kuoppala Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org, miku@iki.fi, Ben Widawsky List-Id: intel-gfx@lists.freedesktop.org On Thu, Mar 14, 2013 at 05:52:05PM +0200, Mika Kuoppala wrote: > From: Chris Wilson > > Once we thought we got semaphores working, we disabled kicking the ring > if hangcheck fired whilst waiting upon a ring as it was doing more harm > than good: > > commit 4e0e90dcb8a7df1229c69e30abebb59b0b3c2a1f > Author: Daniel Vetter > Date: Wed Dec 14 13:56:58 2011 +0100 > > drm/i915: kicking rings stuck on semaphores considered harmful > > However, life is never that easy and semaphores are still causing > problems whereby the value written by one ring (bcs) is not being > propagated to the waiter (rcs). Thus the waiter never wakes up and we > declare the GPU hung, which often has unfortunate consequences, even if > we successfully reset the GPU. > > But the GPU is idle as it has completed the work, just didn't notify its > clients. So we can detect the incomplete wait during hang check and > probe the target ring to see if has indeed emitted the breadcrumb seqno > following the work and then and only then kick the waiter. > > Based on a suggestion by Ben Widawsky. > > v2: cross-check wait with iphdr. fix signaller calculation. > > References: https://bugs.freedesktop.org/show_bug.cgi?id=54226 > Signed-off-by: Chris Wilson > Signed-off-by: Mika Kuoppala > Cc: Daniel Vetter > Cc: Ben Widawsky > Acked-by: Ben Widawsky I'll throw in the towel, let's all hail duct-tape. Queued for -next, thanks for the patch. -Daniel -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch