summaryrefslogtreecommitdiff
path: root/include/trace
diff options
context:
space:
mode:
authorArto Merilainen <amerilainen@nvidia.com>2014-03-28 08:57:30 +0200
committerGerrit Code Review <gerrit2@nvidia.com>2014-04-11 01:03:16 -0700
commitdbb48e3582fc1cfc2e93e22fb6147db6de128fc2 (patch)
treee06d473dca34246e4b34d005d70b640b1798c5b0 /include/trace
parent279b41ca6155d3e6b17c09a9418a6e1bbdc57889 (diff)
video: tegra: host: podgov: Add dev to trace events
The trace events currently hold only the scaling statistics but they do not tell which device was involved. Origianlly this was ok as the policy was used only by the gpu, however, we use currently the policy for scaling also vic. Change-Id: I032ecb6bb6306f078d3525475284b67c69d6bac2 Signed-off-by: Arto Merilainen <amerilainen@nvidia.com>
Diffstat (limited to 'include/trace')
-rw-r--r--include/trace/events/nvhost_podgov.h121
1 files changed, 67 insertions, 54 deletions
diff --git a/include/trace/events/nvhost_podgov.h b/include/trace/events/nvhost_podgov.h
index e0b999154447..44d528e9ed3f 100644
--- a/include/trace/events/nvhost_podgov.h
+++ b/include/trace/events/nvhost_podgov.h
@@ -1,23 +1,16 @@
/*
- * include/trace/events/nvhost_podgov.h
- *
* Nvhost event logging to ftrace.
*
- * Copyright (c) 2013, NVIDIA Corporation.
+ * Copyright (c) 2013-2014, NVIDIA Corporation. All rights reserved.
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
*
- * This program is distributed in the hope that it will be useful, but WITHOUT
+ * This program is distributed in the hope it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#undef TRACE_SYSTEM
@@ -28,152 +21,168 @@
#include <linux/ktime.h>
#include <linux/tracepoint.h>
+#include <linux/device.h>
DECLARE_EVENT_CLASS(podgov_update_freq,
- TP_PROTO(unsigned long old_freq, unsigned long new_freq),
+ TP_PROTO(struct device *dev, unsigned long old_freq, unsigned long new_freq),
- TP_ARGS(old_freq, new_freq),
+ TP_ARGS(dev, old_freq, new_freq),
TP_STRUCT__entry(
+ __field(struct device *, dev)
__field(unsigned long, old_freq)
__field(unsigned long, new_freq)
),
TP_fast_assign(
+ __entry->dev = dev;
__entry->old_freq = old_freq;
__entry->new_freq = new_freq;
),
- TP_printk("old_freq=%lu, new_freq=%lu",
- __entry->old_freq, __entry->new_freq)
+ TP_printk("name=%s, old_freq=%lu, new_freq=%lu",
+ dev_name(__entry->dev), __entry->old_freq, __entry->new_freq)
);
DEFINE_EVENT(podgov_update_freq, podgov_do_scale,
- TP_PROTO(unsigned long old_freq, unsigned long new_freq),
- TP_ARGS(old_freq, new_freq)
+ TP_PROTO(struct device *dev, unsigned long old_freq, unsigned long new_freq),
+ TP_ARGS(dev, old_freq, new_freq)
);
DEFINE_EVENT(podgov_update_freq, podgov_scaling_state_check,
- TP_PROTO(unsigned long old_freq, unsigned long new_freq),
- TP_ARGS(old_freq, new_freq)
+ TP_PROTO(struct device *dev, unsigned long old_freq, unsigned long new_freq),
+ TP_ARGS(dev, old_freq, new_freq)
);
DEFINE_EVENT(podgov_update_freq, podgov_estimate_freq,
- TP_PROTO(unsigned long old_freq, unsigned long new_freq),
- TP_ARGS(old_freq, new_freq)
+ TP_PROTO(struct device *dev, unsigned long old_freq, unsigned long new_freq),
+ TP_ARGS(dev, old_freq, new_freq)
);
DEFINE_EVENT(podgov_update_freq, podgov_clocks_handler,
- TP_PROTO(unsigned long old_freq, unsigned long new_freq),
- TP_ARGS(old_freq, new_freq)
+ TP_PROTO(struct device *dev, unsigned long old_freq, unsigned long new_freq),
+ TP_ARGS(dev, old_freq, new_freq)
);
TRACE_EVENT(podgov_enabled,
- TP_PROTO(int enable),
+ TP_PROTO(struct device *dev, int enable),
- TP_ARGS(enable),
+ TP_ARGS(dev, enable),
TP_STRUCT__entry(
+ __field(struct device *, dev)
__field(int, enable)
),
TP_fast_assign(
+ __entry->dev = dev;
__entry->enable = enable;
),
- TP_printk("scaling_enabled=%d", __entry->enable)
+ TP_printk("name=%s, scaling_enabled=%d", dev_name(__entry->dev), __entry->enable)
);
TRACE_EVENT(podgov_set_user_ctl,
- TP_PROTO(int user_ctl),
+ TP_PROTO(struct device *dev, int user_ctl),
- TP_ARGS(user_ctl),
+ TP_ARGS(dev, user_ctl),
TP_STRUCT__entry(
+ __field(struct device *, dev)
__field(int, user_ctl)
),
TP_fast_assign(
+ __entry->dev = dev;
__entry->user_ctl = user_ctl;
),
- TP_printk("userspace control=%d", __entry->user_ctl)
+ TP_printk("name=%s, userspace control=%d", dev_name(__entry->dev), __entry->user_ctl)
);
TRACE_EVENT(podgov_set_freq_request,
- TP_PROTO(int freq_request),
+ TP_PROTO(struct device *dev, int freq_request),
- TP_ARGS(freq_request),
+ TP_ARGS(dev, freq_request),
TP_STRUCT__entry(
+ __field(struct device *, dev)
__field(int, freq_request)
),
TP_fast_assign(
+ __entry->dev = dev;
__entry->freq_request = freq_request;
),
- TP_printk("freq_request=%d", __entry->freq_request)
+ TP_printk("name=%s, freq_request=%d", dev_name(__entry->dev), __entry->freq_request)
);
TRACE_EVENT(podgov_busy,
- TP_PROTO(unsigned long busyness),
+ TP_PROTO(struct device *dev, unsigned long busyness),
- TP_ARGS(busyness),
+ TP_ARGS(dev, busyness),
TP_STRUCT__entry(
+ __field(struct device *, dev)
__field(unsigned long, busyness)
),
TP_fast_assign(
+ __entry->dev = dev;
__entry->busyness = busyness;
),
- TP_printk("busyness=%lu", __entry->busyness)
+ TP_printk("name=%s, busyness=%lu", dev_name(__entry->dev), __entry->busyness)
);
TRACE_EVENT(podgov_hint,
- TP_PROTO(long idle_estimate, int hint),
+ TP_PROTO(struct device *dev, long idle_estimate, int hint),
- TP_ARGS(idle_estimate, hint),
+ TP_ARGS(dev, idle_estimate, hint),
TP_STRUCT__entry(
+ __field(struct device *, dev)
__field(long, idle_estimate)
__field(int, hint)
),
TP_fast_assign(
+ __entry->dev = dev;
__entry->idle_estimate = idle_estimate;
__entry->hint = hint;
),
- TP_printk("podgov: idle %ld, hint %d", __entry->idle_estimate,
- __entry->hint)
+ TP_printk("podgov (%s): idle %ld, hint %d", dev_name(__entry->dev),
+ __entry->idle_estimate, __entry->hint)
);
TRACE_EVENT(podgov_idle,
- TP_PROTO(unsigned long idleness),
+ TP_PROTO(struct device *dev, unsigned long idleness),
- TP_ARGS(idleness),
+ TP_ARGS(dev, idleness),
TP_STRUCT__entry(
+ __field(struct device *, dev)
__field(unsigned long, idleness)
),
TP_fast_assign(
+ __entry->dev = dev;
__entry->idleness = idleness;
),
- TP_printk("idleness=%lu", __entry->idleness)
+ TP_printk("name=%s, idleness=%lu", dev_name(__entry->dev), __entry->idleness)
);
TRACE_EVENT(podgov_print_target,
- TP_PROTO(long busy, int avg_busy, long curr, long target, int hint,
- int avg_hint),
+ TP_PROTO(struct device *dev, long busy, int avg_busy, long curr,
+ long target, int hint, int avg_hint),
- TP_ARGS(busy, avg_busy, curr, target, hint, avg_hint),
+ TP_ARGS(dev, busy, avg_busy, curr, target, hint, avg_hint),
TP_STRUCT__entry(
+ __field(struct device *, dev)
__field(long, busy)
__field(int, avg_busy)
__field(long, curr)
@@ -183,6 +192,7 @@ TRACE_EVENT(podgov_print_target,
),
TP_fast_assign(
+ __entry->dev = dev;
__entry->busy = busy;
__entry->avg_busy = avg_busy;
__entry->curr = curr;
@@ -191,18 +201,19 @@ TRACE_EVENT(podgov_print_target,
__entry->avg_hint = avg_hint;
),
- TP_printk("podgov: busy %ld <%d>, curr %ld, t %ld, hint %d <%d>\n",
- __entry->busy, __entry->avg_busy, __entry->curr,
+ TP_printk("podgov (%s): busy %ld <%d>, curr %ld, t %ld, hint %d <%d>\n",
+ dev_name(__entry->dev), __entry->busy, __entry->avg_busy, __entry->curr,
__entry->target, __entry->hint, __entry->avg_hint)
);
TRACE_EVENT(podgov_stats,
- TP_PROTO(int fast_up_count, int slow_down_count, unsigned int idle_min,
- unsigned int idle_max),
+ TP_PROTO(struct device *dev, int fast_up_count, int slow_down_count,
+ unsigned int idle_min, unsigned int idle_max),
- TP_ARGS(fast_up_count, slow_down_count, idle_min, idle_max),
+ TP_ARGS(dev, fast_up_count, slow_down_count, idle_min, idle_max),
TP_STRUCT__entry(
+ __field(struct device *, dev)
__field(int, fast_up_count)
__field(int, slow_down_count)
__field(unsigned int, idle_min)
@@ -210,15 +221,17 @@ TRACE_EVENT(podgov_stats,
),
TP_fast_assign(
+ __entry->dev = dev;
__entry->fast_up_count = fast_up_count;
__entry->slow_down_count = slow_down_count;
__entry->idle_min = idle_min;
__entry->idle_max = idle_max;
),
- TP_printk("podgov stats: + %d - %d min %u max %u\n",
- __entry->fast_up_count, __entry->slow_down_count,
- __entry->idle_min, __entry->idle_max)
+ TP_printk("podgov stats (%s): + %d - %d min %u max %u\n",
+ dev_name(__entry->dev), __entry->fast_up_count,
+ __entry->slow_down_count, __entry->idle_min,
+ __entry->idle_max)
);
#endif /* _TRACE_NVHOST_PODGOV_H */