299 lines
6.0 KiB
C
299 lines
6.0 KiB
C
|
/*
|
||
|
* include/trace/events/isomgr.h
|
||
|
*
|
||
|
* isomgr logging to ftrace.
|
||
|
*
|
||
|
* Copyright (c) 2013-2017, 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 distributed in the hope that 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
|
||
|
#define TRACE_SYSTEM isomgr
|
||
|
|
||
|
#if !defined(_TRACE_ISOMGR_H) || defined(TRACE_HEADER_MULTI_READ)
|
||
|
#define _TRACE_ISOMGR_H
|
||
|
|
||
|
#include <linux/ktime.h>
|
||
|
#include <linux/tracepoint.h>
|
||
|
#include <linux/platform/tegra/isomgr.h>
|
||
|
|
||
|
TRACE_EVENT(tegra_isomgr_register,
|
||
|
TP_PROTO(enum tegra_iso_client client,
|
||
|
u32 dedi_bw,
|
||
|
tegra_isomgr_renegotiate renegotiate,
|
||
|
void *priv,
|
||
|
char *name,
|
||
|
char *msg),
|
||
|
|
||
|
TP_ARGS(client, dedi_bw, renegotiate, priv, name, msg),
|
||
|
|
||
|
TP_STRUCT__entry(
|
||
|
__field(enum tegra_iso_client, client)
|
||
|
__field(u32, dedi_bw)
|
||
|
__field(void *, renegotiate)
|
||
|
__field(void *, priv)
|
||
|
__field(char *, name)
|
||
|
__field(char *, msg)
|
||
|
),
|
||
|
|
||
|
TP_fast_assign(
|
||
|
__entry->client = client;
|
||
|
__entry->dedi_bw = dedi_bw;
|
||
|
__entry->renegotiate = renegotiate;
|
||
|
__entry->priv = priv;
|
||
|
__entry->name = name;
|
||
|
__entry->msg = msg;
|
||
|
),
|
||
|
|
||
|
TP_printk("client=%d, dedi_bw=%dKB, renegotiate=%p, priv=%p, %s %s",
|
||
|
__entry->client, __entry->dedi_bw,
|
||
|
__entry->renegotiate, __entry->priv,
|
||
|
__entry->name, __entry->msg)
|
||
|
);
|
||
|
|
||
|
TRACE_EVENT(tegra_isomgr_unregister,
|
||
|
TP_PROTO(tegra_isomgr_handle handle,
|
||
|
char *name),
|
||
|
|
||
|
TP_ARGS(handle, name),
|
||
|
|
||
|
TP_STRUCT__entry(
|
||
|
__field(tegra_isomgr_handle, handle)
|
||
|
__field(char *, name)
|
||
|
),
|
||
|
|
||
|
TP_fast_assign(
|
||
|
__entry->handle = handle;
|
||
|
__entry->name = name;
|
||
|
),
|
||
|
|
||
|
TP_printk("handle=%p %s", __entry->handle, __entry->name)
|
||
|
);
|
||
|
|
||
|
TRACE_EVENT(tegra_isomgr_unregister_iso_client,
|
||
|
TP_PROTO(char *name,
|
||
|
char *msg),
|
||
|
|
||
|
TP_ARGS(name, msg),
|
||
|
|
||
|
TP_STRUCT__entry(
|
||
|
__field(char *, name)
|
||
|
__field(char *, msg)
|
||
|
),
|
||
|
|
||
|
TP_fast_assign(
|
||
|
__entry->name = name;
|
||
|
__entry->msg = msg;
|
||
|
),
|
||
|
|
||
|
TP_printk("%s %s", __entry->name, __entry->msg)
|
||
|
);
|
||
|
|
||
|
TRACE_EVENT(tegra_isomgr_reserve,
|
||
|
TP_PROTO(tegra_isomgr_handle handle,
|
||
|
u32 bw,
|
||
|
u32 lt,
|
||
|
char *name,
|
||
|
char *msg),
|
||
|
|
||
|
TP_ARGS(handle, bw, lt, name, msg),
|
||
|
|
||
|
TP_STRUCT__entry(
|
||
|
__field(tegra_isomgr_handle, handle)
|
||
|
__field(u32, bw)
|
||
|
__field(u32, lt)
|
||
|
__field(char *, name)
|
||
|
__field(char *, msg)
|
||
|
),
|
||
|
|
||
|
TP_fast_assign(
|
||
|
__entry->handle = handle;
|
||
|
__entry->bw = bw;
|
||
|
__entry->lt = lt;
|
||
|
__entry->name = name;
|
||
|
__entry->msg = msg;
|
||
|
),
|
||
|
|
||
|
TP_printk("handle=%p, bw=%dKB, lt=%dus %s %s",
|
||
|
__entry->handle, __entry->bw, __entry->lt,
|
||
|
__entry->name, __entry->msg)
|
||
|
);
|
||
|
|
||
|
TRACE_EVENT(tegra_isomgr_realize,
|
||
|
TP_PROTO(tegra_isomgr_handle handle, char *name, char *msg),
|
||
|
|
||
|
TP_ARGS(handle, name, msg),
|
||
|
|
||
|
TP_STRUCT__entry(
|
||
|
__field(tegra_isomgr_handle, handle)
|
||
|
__field(char *, name)
|
||
|
__field(char *, msg)
|
||
|
),
|
||
|
|
||
|
TP_fast_assign(
|
||
|
__entry->handle = handle;
|
||
|
__entry->name = name;
|
||
|
__entry->msg = msg;
|
||
|
),
|
||
|
|
||
|
TP_printk("handle=%p %s %s", __entry->handle,
|
||
|
__entry->name, __entry->msg)
|
||
|
);
|
||
|
|
||
|
TRACE_EVENT(tegra_isomgr_set_margin,
|
||
|
TP_PROTO(enum tegra_iso_client client,
|
||
|
u32 bw,
|
||
|
bool wait,
|
||
|
char *msg),
|
||
|
|
||
|
TP_ARGS(client, bw, wait, msg),
|
||
|
|
||
|
TP_STRUCT__entry(
|
||
|
__field(enum tegra_iso_client, client)
|
||
|
__field(u32, bw)
|
||
|
__field(bool, wait)
|
||
|
__field(char *, msg)
|
||
|
),
|
||
|
|
||
|
TP_fast_assign(
|
||
|
__entry->client = client;
|
||
|
__entry->bw = bw;
|
||
|
__entry->wait = wait;
|
||
|
__entry->msg = msg;
|
||
|
),
|
||
|
|
||
|
TP_printk("client=%d, bw=%dKB, wait=%d %s",
|
||
|
__entry->client, __entry->bw, __entry->wait, __entry->msg)
|
||
|
);
|
||
|
|
||
|
TRACE_EVENT(tegra_isomgr_get_imp_time,
|
||
|
TP_PROTO(enum tegra_iso_client client,
|
||
|
u32 bw,
|
||
|
u32 time,
|
||
|
char *name),
|
||
|
|
||
|
TP_ARGS(client, bw, time, name),
|
||
|
|
||
|
TP_STRUCT__entry(
|
||
|
__field(enum tegra_iso_client, client)
|
||
|
__field(u32, bw)
|
||
|
__field(u32, time)
|
||
|
__field(char *, name)
|
||
|
),
|
||
|
|
||
|
TP_fast_assign(
|
||
|
__entry->client = client;
|
||
|
__entry->bw = bw;
|
||
|
__entry->time = time;
|
||
|
__entry->name = name;
|
||
|
),
|
||
|
|
||
|
TP_printk("client=%d, bw=%dKB, imp_time=%dms %s",
|
||
|
__entry->client, __entry->bw, __entry->time, __entry->name)
|
||
|
);
|
||
|
|
||
|
TRACE_EVENT(tegra_isomgr_get_available_iso_bw,
|
||
|
TP_PROTO(u32 bw),
|
||
|
|
||
|
TP_ARGS(bw),
|
||
|
|
||
|
TP_STRUCT__entry(
|
||
|
__field(u32, bw)
|
||
|
),
|
||
|
|
||
|
TP_fast_assign(
|
||
|
__entry->bw = bw;
|
||
|
),
|
||
|
|
||
|
TP_printk("bw=%dKB", __entry->bw)
|
||
|
);
|
||
|
|
||
|
TRACE_EVENT(tegra_isomgr_get_total_iso_bw,
|
||
|
TP_PROTO(u32 bw),
|
||
|
|
||
|
TP_ARGS(bw),
|
||
|
|
||
|
TP_STRUCT__entry(
|
||
|
__field(u32, bw)
|
||
|
),
|
||
|
|
||
|
TP_fast_assign(
|
||
|
__entry->bw = bw;
|
||
|
),
|
||
|
|
||
|
TP_printk("bw=%dKB", __entry->bw)
|
||
|
);
|
||
|
|
||
|
TRACE_EVENT(tegra_isomgr_scavenge,
|
||
|
TP_PROTO(enum tegra_iso_client client,
|
||
|
u32 avail_bw,
|
||
|
char *name,
|
||
|
char *msg),
|
||
|
|
||
|
TP_ARGS(client, avail_bw, name, msg),
|
||
|
|
||
|
TP_STRUCT__entry(
|
||
|
__field(enum tegra_iso_client, client)
|
||
|
__field(u32, avail_bw)
|
||
|
__field(char *, name)
|
||
|
__field(char *, msg)
|
||
|
),
|
||
|
|
||
|
TP_fast_assign(
|
||
|
__entry->client = client;
|
||
|
__entry->avail_bw = avail_bw;
|
||
|
__entry->name = name;
|
||
|
__entry->msg = msg;
|
||
|
),
|
||
|
|
||
|
TP_printk("client=%d, avail_bw=%dKB, %s %s",
|
||
|
__entry->client, __entry->avail_bw,
|
||
|
__entry->name, __entry->msg)
|
||
|
);
|
||
|
|
||
|
TRACE_EVENT(tegra_isomgr_scatter,
|
||
|
TP_PROTO(enum tegra_iso_client client,
|
||
|
u32 avail_bw,
|
||
|
char *name,
|
||
|
char *msg),
|
||
|
|
||
|
TP_ARGS(client, avail_bw, name, msg),
|
||
|
|
||
|
TP_STRUCT__entry(
|
||
|
__field(enum tegra_iso_client, client)
|
||
|
__field(u32, avail_bw)
|
||
|
__field(char *, name)
|
||
|
__field(char *, msg)
|
||
|
),
|
||
|
|
||
|
TP_fast_assign(
|
||
|
__entry->client = client;
|
||
|
__entry->avail_bw = avail_bw;
|
||
|
__entry->name = name;
|
||
|
__entry->msg = msg;
|
||
|
),
|
||
|
|
||
|
TP_printk("client=%d, avail_bw=%dKB, %s %s",
|
||
|
__entry->client, __entry->avail_bw,
|
||
|
__entry->name, __entry->msg)
|
||
|
);
|
||
|
|
||
|
#endif /* _TRACE_ISOMGR_H */
|
||
|
|
||
|
/* This part must be outside protection */
|
||
|
#include <trace/define_trace.h>
|
||
|
|