From patchwork Tue Feb 21 09:13:47 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tvrtko Ursulin X-Patchwork-Id: 9584137 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 69DB8600CA for ; Tue, 21 Feb 2017 09:14:11 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 49E35287EE for ; Tue, 21 Feb 2017 09:14:11 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3ECD4288D9; Tue, 21 Feb 2017 09:14:11 +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 EA6A8287EE for ; Tue, 21 Feb 2017 09:14:10 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 9C8296E5F5; Tue, 21 Feb 2017 09:14:10 +0000 (UTC) X-Original-To: Intel-gfx@lists.freedesktop.org Delivered-To: Intel-gfx@lists.freedesktop.org Received: from mail-wm0-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id B24116E5EF for ; Tue, 21 Feb 2017 09:14:05 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id v77so18512154wmv.0 for ; Tue, 21 Feb 2017 01:14:05 -0800 (PST) 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=EYDW1ItvLQXq4QA1kN3aS+dxrSJTt2sdZgBfBvslZig=; b=LfE8sUrbdCN8wLV5FnLKWjPluQiBvE2wsGjvfk4JkTv0Q1+lS9VWHkH/qzNFoLJmyt f2lgY+koZPfHUEWzeastTFDK1ldZfSOqBdoFVkrfnsI5jmxnuk86Ahboqm92XKlYBo4T +15KHs1aHIQr7fM2onu2+wMlm9+uXBa8hcjd00S/eaXOSGi2JGzAr1jPgvd/QXAn+RhY uGHbGXH32q6O2cTQRSg+3dV1wrC8D50yyjlAnO5x+k2PdYJyXVI/Mhj4pnlCM76DPSU/ PUQEqNUXglOT9k6BASSfSJHkPv02ErFgNLcKk6zRS+nuh2lDdMAMOLLcF50YrtLyndtE Vdag== 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=EYDW1ItvLQXq4QA1kN3aS+dxrSJTt2sdZgBfBvslZig=; b=RzjP68J6QAuCP5O9x87MYiyyACCNywiRfvlHyUpxcBqAarl/f8jT82S6eVlINfiQYQ t9vWCafOQsIncZuvexFXWisxVgYqwHHj2xpaedYnAM7J9Kxu6skKhNuhGXoNJeXmHWCd RjjAdazGzqrrcE2WF2v1c+16XUziSf7S9PI9+prt+n/egY44AQI9uB6pvJlFCJGe0czj AbTMcd+fMqVMspwHY/CQ7Q7RW/XN9vfb2pJV0+jQgmVftVIk8ESrWRVJlvawveAG6fFj sleOIc+m0zZiNj8mzTock4l5H0SHPYz1P5VrwyKIVI9nk8HazaQbz5McCIEA/p+E//fq bZFw== X-Gm-Message-State: AMke39lcHERO2fun1Y3dNkXic+rrUwAfCTuhvZSqUFHoF2MNAeTlo1pbWyqon3xAcvF6lQ== X-Received: by 10.28.143.5 with SMTP id r5mr23904713wmd.141.1487668444108; Tue, 21 Feb 2017 01:14:04 -0800 (PST) Received: from t460p.intel ([2.123.51.169]) by smtp.gmail.com with ESMTPSA id y89sm4046689wrc.23.2017.02.21.01.14.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 21 Feb 2017 01:14:03 -0800 (PST) From: Tvrtko Ursulin X-Google-Original-From: Tvrtko Ursulin To: Intel-gfx@lists.freedesktop.org Date: Tue, 21 Feb 2017 09:13:47 +0000 Message-Id: <20170221091350.14605-5-tvrtko.ursulin@linux.intel.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170221091350.14605-1-tvrtko.ursulin@linux.intel.com> References: <20170221091350.14605-1-tvrtko.ursulin@linux.intel.com> Subject: [Intel-gfx] [PATCH 5/8] drm/i915/tracepoints: Add request submit and execute tracepoints 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 From: Tvrtko Ursulin These new tracepoints are emitted once the request is ready to be submitted to the GPU and once the request is about to be submitted to the GPU, respectively. Former condition triggers as soon as all the fences and dependencies have been resolved, and the latter once the backend is about to submit it to the GPU. New tracepoint are enabled via the new DRM_I915_LOW_LEVEL_TRACEPOINTS Kconfig option which is disabled by default to alleviate the performance impact concerns. Signed-off-by: Tvrtko Ursulin --- drivers/gpu/drm/i915/Kconfig.debug | 11 +++++++++++ drivers/gpu/drm/i915/i915_gem_request.c | 2 ++ drivers/gpu/drm/i915/i915_trace.h | 24 ++++++++++++++++++++++++ 3 files changed, 37 insertions(+) diff --git a/drivers/gpu/drm/i915/Kconfig.debug b/drivers/gpu/drm/i915/Kconfig.debug index 68ff072f8b76..e091809a9a9e 100644 --- a/drivers/gpu/drm/i915/Kconfig.debug +++ b/drivers/gpu/drm/i915/Kconfig.debug @@ -76,3 +76,14 @@ config DRM_I915_SELFTEST Recommended for driver developers only. If in doubt, say "N". + +config DRM_I915_LOW_LEVEL_TRACEPOINTS + bool "Enable low level request tracing events" + depends on DRM_I915 + default n + help + Choose this option to turn on low level request tracing events. + This provides the ability to precisely monitor engine utilisation + and also analyze the request dependency resolving timeline. + + If in doubt, say "N". diff --git a/drivers/gpu/drm/i915/i915_gem_request.c b/drivers/gpu/drm/i915/i915_gem_request.c index 543cef57972b..9a2b5c544c9d 100644 --- a/drivers/gpu/drm/i915/i915_gem_request.c +++ b/drivers/gpu/drm/i915/i915_gem_request.c @@ -449,6 +449,7 @@ submit_notify(struct i915_sw_fence *fence, enum i915_sw_fence_notify state) switch (state) { case FENCE_COMPLETE: + trace_i915_gem_request_submit(request); request->engine->submit_request(request); break; @@ -468,6 +469,7 @@ execute_notify(struct i915_sw_fence *fence, enum i915_sw_fence_notify state) switch (state) { case FENCE_COMPLETE: + trace_i915_gem_request_execute(request); break; case FENCE_FREE: diff --git a/drivers/gpu/drm/i915/i915_trace.h b/drivers/gpu/drm/i915/i915_trace.h index 7d941ac890b9..ec523fdde01b 100644 --- a/drivers/gpu/drm/i915/i915_trace.h +++ b/drivers/gpu/drm/i915/i915_trace.h @@ -477,6 +477,30 @@ DEFINE_EVENT(i915_gem_request, i915_gem_request_add, TP_ARGS(req) ); +#if defined(CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS) +DEFINE_EVENT(i915_gem_request, i915_gem_request_submit, + TP_PROTO(struct drm_i915_gem_request *req), + TP_ARGS(req) +); + +DEFINE_EVENT(i915_gem_request, i915_gem_request_execute, + TP_PROTO(struct drm_i915_gem_request *req), + TP_ARGS(req) +); +#else +#if !defined(TRACE_HEADER_MULTI_READ) +static inline void +trace_i915_gem_request_submit(struct drm_i915_gem_request *req) +{ +} + +static inline void +trace_i915_gem_request_execute(struct drm_i915_gem_request *req) +{ +} +#endif +#endif + TRACE_EVENT(i915_gem_request_notify, TP_PROTO(struct intel_engine_cs *engine), TP_ARGS(engine),