From patchwork Fri Apr 6 11:36:51 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tvrtko Ursulin X-Patchwork-Id: 10325881 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 88C796053F for ; Fri, 6 Apr 2018 11:37:04 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 76A0A2931B for ; Fri, 6 Apr 2018 11:37:04 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6AE82294EA; Fri, 6 Apr 2018 11:37:04 +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=-5.1 required=2.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI,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 B28A82931B for ; Fri, 6 Apr 2018 11:37:03 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 01C336E003; Fri, 6 Apr 2018 11:37:03 +0000 (UTC) X-Original-To: Intel-gfx@lists.freedesktop.org Delivered-To: Intel-gfx@lists.freedesktop.org Received: from mail-wr0-x242.google.com (mail-wr0-x242.google.com [IPv6:2a00:1450:400c:c0c::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8586A6E003 for ; Fri, 6 Apr 2018 11:37:01 +0000 (UTC) Received: by mail-wr0-x242.google.com with SMTP id p53so1455843wrc.10 for ; Fri, 06 Apr 2018 04:37:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ursulin-net.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=euq//VJ/MM5S+npLJ3eE1HwSapugRoc8E1szpo9nIJE=; b=qD7u1yqvlQKuCfgxsm0o9NjRp94m4XXrS7wWD9NQe8/y1zN2So80Wt2CZphStbwwVt iv8FEDDN92Dhpvg9+5LsrKAKJDkUg8AohhRea+ipZ4FOA5Zkx289zcCojNbT73fpduUK xMg+ng9HsOlwkQ2/tkox+6BpCM7AuvxMqTCkHxCuxSm9jq2mcG+HrRAAb2a0OPYpA8ah 4DBADxleqMMBhFYCll43PYlHM14t5gmBEXG7oFAH026chL67SOJIIdEy1fl7HeCFeOPt cWxbk/lzU2wXd5/j0UYuOgBv7tkeRROgVWPPMdaNa68uzyaHhyPo1dPh70R5o82zMKXb V/8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=euq//VJ/MM5S+npLJ3eE1HwSapugRoc8E1szpo9nIJE=; b=crw9y+94j35ZhzuciDP6A578NggB7dUUfnFT3YnmlZ1ONNq6M4da4Kl5strmIlEygM Sk4YaD0EH89bUOzXdyJKMr8+aePu+LjfIK7zVbJ+DxNCZLQlT5r0pD/fhBgemk1mBJ6j xSOaaMw/4byCD5q6w7H6l24umSEtbrskGkNLISA2vtNCnglGU/i0vr8xU3mYx94ok8n9 zRkt8Wbxy+gpBf+XTQEb+BZmQspgqBAa0kuNuwt7ChCa5cw8PAeGVsVANW2Zcs12mDlt qIsNagxSFHsBiBjWEKc+3So7/G6cLcAn0y+3MZ5ftRJdAKskTG8wUK18c1uW/bsu9xN9 M+Ug== X-Gm-Message-State: AElRT7Hb2DSayCI5TJzW7KtZQdKMmJ4Vg5CilmS0cSSyS0Xxoop7aRPq Fj7IN9dwZDRn2KnWNYN8M6SneJ6c X-Google-Smtp-Source: AIpwx49Z70ig/z7CclboQzIPiA0J668RpG4jf0S+F6/k+gsw/fBCGZT+tmdUwFBgQmc0fil92UgENA== X-Received: by 10.223.142.214 with SMTP id q80mr17923882wrb.81.1523014619898; Fri, 06 Apr 2018 04:36:59 -0700 (PDT) Received: from localhost.localdomain ([95.146.144.186]) by smtp.gmail.com with ESMTPSA id e202sm490508wma.43.2018.04.06.04.36.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 06 Apr 2018 04:36:59 -0700 (PDT) From: Tvrtko Ursulin X-Google-Original-From: Tvrtko Ursulin To: Intel-gfx@lists.freedesktop.org Date: Fri, 6 Apr 2018 12:36:51 +0100 Message-Id: <20180406113651.20953-1-tvrtko.ursulin@linux.intel.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <152300898758.28413.12072105990288157284@mail.alporthouse.com> References: <152300898758.28413.12072105990288157284@mail.alporthouse.com> Subject: [Intel-gfx] [PATCH v2] drm/i915/execlists: Log fence context & seqno throughout GEM_TRACE X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 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 From: Tvrtko Ursulin Include fence context and seqno in low level tracing so it is easier to follow flows of individual requests when things go bad. Also added tracing on the reset side of things. v2: Chris Wilson: * Standardize global_seqno and seqno as global. * Include current hws seqno in execlists_cancel_port_requests. Signed-off-by: Tvrtko Ursulin Reviewed-by: Chris Wilson --- drivers/gpu/drm/i915/i915_request.c | 6 +++--- drivers/gpu/drm/i915/intel_lrc.c | 21 ++++++++++++++++----- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_request.c b/drivers/gpu/drm/i915/i915_request.c index 152321655fe6..66976683ffff 100644 --- a/drivers/gpu/drm/i915/i915_request.c +++ b/drivers/gpu/drm/i915/i915_request.c @@ -389,7 +389,7 @@ static void i915_request_retire(struct i915_request *request) struct intel_engine_cs *engine = request->engine; struct i915_gem_active *active, *next; - GEM_TRACE("%s fence %llx:%d, global_seqno %d, current %d\n", + GEM_TRACE("%s fence %llx:%d, global=%d, current %d\n", engine->name, request->fence.context, request->fence.seqno, request->global_seqno, @@ -512,7 +512,7 @@ void __i915_request_submit(struct i915_request *request) struct intel_engine_cs *engine = request->engine; u32 seqno; - GEM_TRACE("%s fence %llx:%d -> global_seqno %d, current %d\n", + GEM_TRACE("%s fence %llx:%d -> global=%d, current %d\n", engine->name, request->fence.context, request->fence.seqno, engine->timeline->seqno + 1, @@ -567,7 +567,7 @@ void __i915_request_unsubmit(struct i915_request *request) { struct intel_engine_cs *engine = request->engine; - GEM_TRACE("%s fence %llx:%d <- global_seqno %d, current %d\n", + GEM_TRACE("%s fence %llx:%d <- global=%d, current %d\n", engine->name, request->fence.context, request->fence.seqno, request->global_seqno, diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c index f6631ff11caf..6ef53ab43514 100644 --- a/drivers/gpu/drm/i915/intel_lrc.c +++ b/drivers/gpu/drm/i915/intel_lrc.c @@ -468,10 +468,11 @@ static void execlists_submit_ports(struct intel_engine_cs *engine) desc = execlists_update_context(rq); GEM_DEBUG_EXEC(port[n].context_id = upper_32_bits(desc)); - GEM_TRACE("%s in[%d]: ctx=%d.%d, seqno=%d (current %d), prio=%d\n", + GEM_TRACE("%s in[%d]: ctx=%d.%d, global=%d (fence %llx:%d) (current %d), prio=%d\n", engine->name, n, port[n].context_id, count, rq->global_seqno, + rq->fence.context, rq->fence.seqno, intel_engine_get_seqno(engine), rq_prio(rq)); } else { @@ -742,6 +743,12 @@ execlists_cancel_port_requests(struct intel_engine_execlists * const execlists) while (num_ports-- && port_isset(port)) { struct i915_request *rq = port_request(port); + GEM_TRACE("%s:port%lu global=%d (fence %llx:%d), (current %d)\n", + rq->engine->name, port - execlists->port, + rq->global_seqno, + rq->fence.context, rq->fence.seqno, + intel_engine_get_seqno(rq->engine)); + GEM_BUG_ON(!execlists->active); intel_engine_context_out(rq->engine); @@ -817,7 +824,8 @@ static void execlists_cancel_requests(struct intel_engine_cs *engine) struct rb_node *rb; unsigned long flags; - GEM_TRACE("%s\n", engine->name); + GEM_TRACE("%s current %d\n", + engine->name, intel_engine_get_seqno(engine)); /* * Before we call engine->cancel_requests(), we should have exclusive @@ -1014,10 +1022,12 @@ static void execlists_submission_tasklet(unsigned long data) EXECLISTS_ACTIVE_USER)); rq = port_unpack(port, &count); - GEM_TRACE("%s out[0]: ctx=%d.%d, seqno=%d (current %d), prio=%d\n", + GEM_TRACE("%s out[0]: ctx=%d.%d, global=%d (fence %llx:%d) (current %d), prio=%d\n", engine->name, port->context_id, count, rq ? rq->global_seqno : 0, + rq ? rq->fence.context : 0, + rq ? rq->fence.seqno : 0, intel_engine_get_seqno(engine), rq ? rq_prio(rq) : 0); @@ -1745,8 +1755,9 @@ static void reset_common_ring(struct intel_engine_cs *engine, struct intel_context *ce; unsigned long flags; - GEM_TRACE("%s seqno=%x\n", - engine->name, request ? request->global_seqno : 0); + GEM_TRACE("%s request global=%x, current=%d\n", + engine->name, request ? request->global_seqno : 0, + intel_engine_get_seqno(engine)); /* See execlists_cancel_requests() for the irq/spinlock split. */ local_irq_save(flags);