From patchwork Thu Mar 30 08:28:48 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Wilson X-Patchwork-Id: 9653205 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id D111C6034C for ; Thu, 30 Mar 2017 08:28:54 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C1BBA28506 for ; Thu, 30 Mar 2017 08:28:54 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B4EE528520; Thu, 30 Mar 2017 08:28:54 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.1 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 5B30C28506 for ; Thu, 30 Mar 2017 08:28:54 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 5EA836E036; Thu, 30 Mar 2017 08:28:53 +0000 (UTC) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mail-wr0-x241.google.com (mail-wr0-x241.google.com [IPv6:2a00:1450:400c:c0c::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 137C26E036 for ; Thu, 30 Mar 2017 08:28:52 +0000 (UTC) Received: by mail-wr0-x241.google.com with SMTP id k6so8579355wre.3 for ; Thu, 30 Mar 2017 01:28:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id; bh=IMv4hWOzdJm9zmppbngVzdz8vrCqptY5lOt3z1hk1Ic=; b=twrFPjOjZl3wvkn3VnX19/9yLSN70uk1isJIAKUIFR9zHXnyihdbH37xEH6onuRDoh qGWraJm0jjFWSPVcZNGe+QnqMjCq0Bavuo5na5uPjm8v1kILWzMCIrspMl86RezIkPSX 7ynarkTOGHjGHKMow3tKA0i01YqY9D/7H7J3WQiiGrpt8D8Ylyvh4FjhJxqDBg4/2Tjk 2LwkthsOuFNijyqjb4MOVAQCxCQCSKdFo8dQpwMxBLMqeF/Q5AY4qxQdKUXXdTgYHmWD iBvjzpNpTDpVuYLBaTBymv3orG2fRIxUzqn3kFbxjH2NCTprlNr8LVjNekbPZizy7uw1 TseA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id; bh=IMv4hWOzdJm9zmppbngVzdz8vrCqptY5lOt3z1hk1Ic=; b=ZlJHpIVK+6UBXkuIazJ31aZjWMALGtxjPaS96Rv/Lh4Py9LeoMTSGYraxHzmjWtp+2 fGTMk/gKRgCCFRH5Q4cS1qb3NAHjtEAckA6uqtKEmN2bP5tkVmiXHLlRgsufxgk7eDDH acEfJr4lYytAU30t2oQ7vu/fwZzf30bWW65bH3Aqcke70NUiqUIdVmwE3EIUqJJyctgV OpvzMneMMcsjgiKa9qPlPpyWmKEp65QfgVDstn6w2DBBmL27PsDbG6f1UpCjJN8GoDMT j6PUg2WghujEddkL36KBE/IHrmta6RSmL58a6pVxxfRPEEiXfCuNpfH8H88QTl5sq0zT PtIw== X-Gm-Message-State: AFeK/H3zrkG2CXTvh9tdfRUCa8+4FJjc+gQ2OFY6Fj91WNlilCkN4xiRjB2V+rcsXzJFgQ== X-Received: by 10.28.234.71 with SMTP id i68mr2273464wmh.81.1490862530539; Thu, 30 Mar 2017 01:28:50 -0700 (PDT) Received: from haswell.alporthouse.com ([78.156.65.138]) by smtp.gmail.com with ESMTPSA id w130sm2288532wmg.0.2017.03.30.01.28.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 30 Mar 2017 01:28:49 -0700 (PDT) From: Chris Wilson To: intel-gfx@lists.freedesktop.org Date: Thu, 30 Mar 2017 09:28:48 +0100 Message-Id: <20170330082848.23702-1-chris@chris-wilson.co.uk> X-Mailer: git-send-email 2.11.0 Subject: [Intel-gfx] [PATCH] drm/i915: Do request retirement before marking engines as wedged X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" X-Virus-Scanned: ClamAV using ClamSMTP As we declare an engine as wedged, we mark all of its active requests as in error. However, we don't want to mark successfully completed requests as in error, which requires us to retire those requests first. Signed-off-by: Chris Wilson Reviewed-by: Joonas Lahtinen --- drivers/gpu/drm/i915/i915_gem.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index c6b68eaeb71e..365ca4d9f63c 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -2998,10 +2998,15 @@ void i915_gem_set_wedged(struct drm_i915_private *dev_priv) lockdep_assert_held(&dev_priv->drm.struct_mutex); set_bit(I915_WEDGED, &dev_priv->gpu_error.flags); + /* Retire completed requests first so the list of inflight/incomplete + * requests is accurate and we don't try and mark successful requests + * as in error during __i915_gem_set_wedged_BKL(). + */ + i915_gem_retire_requests(dev_priv); + stop_machine(__i915_gem_set_wedged_BKL, dev_priv, NULL); i915_gem_context_lost(dev_priv); - i915_gem_retire_requests(dev_priv); mod_delayed_work(dev_priv->wq, &dev_priv->gt.idle_work, 0); }