From: Dave Airlie Subject: [PATCH 1/2] drm/radeon: add tracepoint for setting mode clocks. Date: Mon, 19 Sep 2011 20:53:18 +0100 Message-ID: <1316461999-8639-1-git-send-email-airlied@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by gabe.freedesktop.org (Postfix) with ESMTP id 1B45F9E926 for ; Mon, 19 Sep 2011 12:53:31 -0700 (PDT) Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p8JJrUNE025048 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Mon, 19 Sep 2011 15:53:30 -0400 Received: from kvothe.redhat.com (vpn1-6-36.ams2.redhat.com [10.36.6.36]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p8JJrSWD028522 for ; Mon, 19 Sep 2011 15:53:29 -0400 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org From: Dave Airlie This just adds a tracepoint that can be caught in perf for when the clocks change. Signed-off-by: Dave Airlie --- drivers/gpu/drm/radeon/radeon_pm.c | 3 +++ drivers/gpu/drm/radeon/radeon_trace.h | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+), 0 deletions(-) diff --git a/drivers/gpu/drm/radeon/radeon_pm.c b/drivers/gpu/drm/radeon/radeon_pm.c index 6fabe89..2a44332 100644 --- a/drivers/gpu/drm/radeon/radeon_pm.c +++ b/drivers/gpu/drm/radeon/radeon_pm.c @@ -30,6 +30,7 @@ #include #include #include +#include "radeon_trace.h" #define RADEON_IDLE_LOOP_MS 100 #define RADEON_RECLOCK_DELAY_MS 200 @@ -165,6 +166,8 @@ static void radeon_set_power_state(struct radeon_device *rdev) (rdev->pm.requested_power_state_index == rdev->pm.current_power_state_index)) return; + trace_radeon_set_power_state(rdev); + if (radeon_gui_idle(rdev)) { sclk = rdev->pm.power_state[rdev->pm.requested_power_state_index]. clock_info[rdev->pm.requested_clock_mode_index].sclk; diff --git a/drivers/gpu/drm/radeon/radeon_trace.h b/drivers/gpu/drm/radeon/radeon_trace.h index eafd816..ef0fd05 100644 --- a/drivers/gpu/drm/radeon/radeon_trace.h +++ b/drivers/gpu/drm/radeon/radeon_trace.h @@ -27,6 +27,24 @@ TRACE_EVENT(radeon_bo_create, TP_printk("bo=%p, pages=%u", __entry->bo, __entry->pages) ); +TRACE_EVENT(radeon_set_power_state, + TP_PROTO(struct radeon_device *rdev), + TP_ARGS(rdev), + TP_STRUCT__entry( + __field(int, requested_clock_mode) + __field(int, current_clock_mode) + __field(int, requested_power_state) + __field(int, current_power_state) + ), + TP_fast_assign( + __entry->requested_clock_mode = rdev->pm.requested_clock_mode_index; + __entry->current_clock_mode = rdev->pm.current_clock_mode_index; + __entry->requested_power_state = rdev->pm.requested_power_state_index; + __entry->current_power_state = rdev->pm.current_power_state_index; + ), + TP_printk("clock %d->%d, power %d->%d", __entry->current_clock_mode, __entry->requested_clock_mode, __entry->current_power_state, __entry->requested_power_state) +); + DECLARE_EVENT_CLASS(radeon_fence_request, TP_PROTO(struct drm_device *dev, u32 seqno), -- 1.7.6