This reverts commit 2a811252c7.
Change-Id: Ic3018f19eb1a089ae67e0f3c253cc00e7d0285e3
Signed-off-by: Wei Zou <wzou@codeaurora.org>
380 lines
8.0 KiB
C
380 lines
8.0 KiB
C
/* Copyright (c) 2011-2012, Code Aurora Forum. 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 version 2 and
|
|
* only version 2 as published by the Free Software Foundation.
|
|
*
|
|
* 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.
|
|
*
|
|
*/
|
|
|
|
#if !defined(_KGSL_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
|
|
#define _KGSL_TRACE_H
|
|
|
|
#undef TRACE_SYSTEM
|
|
#define TRACE_SYSTEM kgsl
|
|
#undef TRACE_INCLUDE_PATH
|
|
#define TRACE_INCLUDE_PATH .
|
|
#undef TRACE_INCLUDE_FILE
|
|
#define TRACE_INCLUDE_FILE kgsl_trace
|
|
|
|
#include <linux/tracepoint.h>
|
|
|
|
struct kgsl_device;
|
|
struct kgsl_ringbuffer_issueibcmds;
|
|
struct kgsl_device_waittimestamp;
|
|
|
|
/*
|
|
* Tracepoint for kgsl issue ib commands
|
|
*/
|
|
TRACE_EVENT(kgsl_issueibcmds,
|
|
|
|
TP_PROTO(struct kgsl_device *device,
|
|
struct kgsl_ringbuffer_issueibcmds *cmd, int result),
|
|
|
|
TP_ARGS(device, cmd, result),
|
|
|
|
TP_STRUCT__entry(
|
|
__string(device_name, device->name)
|
|
__field(unsigned int, drawctxt_id)
|
|
__field(unsigned int, ibdesc_addr)
|
|
__field(unsigned int, numibs)
|
|
__field(unsigned int, timestamp)
|
|
__field(unsigned int, flags)
|
|
__field(int, result)
|
|
),
|
|
|
|
TP_fast_assign(
|
|
__assign_str(device_name, device->name);
|
|
__entry->drawctxt_id = cmd->drawctxt_id;
|
|
__entry->ibdesc_addr = cmd->ibdesc_addr;
|
|
__entry->numibs = cmd->numibs;
|
|
__entry->timestamp = cmd->timestamp;
|
|
__entry->flags = cmd->flags;
|
|
__entry->result = result;
|
|
),
|
|
|
|
TP_printk(
|
|
"d_name=%s ctx=%u ib=%u numibs=%u timestamp=%u "
|
|
"flags=%u result=%d",
|
|
__get_str(device_name),
|
|
__entry->drawctxt_id,
|
|
__entry->ibdesc_addr,
|
|
__entry->numibs,
|
|
__entry->timestamp,
|
|
__entry->flags,
|
|
__entry->result
|
|
)
|
|
);
|
|
|
|
/*
|
|
* Tracepoint for kgsl readtimestamp
|
|
*/
|
|
TRACE_EVENT(kgsl_readtimestamp,
|
|
|
|
TP_PROTO(struct kgsl_device *device,
|
|
struct kgsl_cmdstream_readtimestamp *cmd),
|
|
|
|
TP_ARGS(device, cmd),
|
|
|
|
TP_STRUCT__entry(
|
|
__string(device_name, device->name)
|
|
__field(unsigned int, type)
|
|
__field(unsigned int, timestamp)
|
|
),
|
|
|
|
TP_fast_assign(
|
|
__assign_str(device_name, device->name);
|
|
__entry->type = cmd->type;
|
|
__entry->timestamp = cmd->timestamp;
|
|
),
|
|
|
|
TP_printk(
|
|
"d_name=%s type=%u timestamp=%u",
|
|
__get_str(device_name),
|
|
__entry->type,
|
|
__entry->timestamp
|
|
)
|
|
);
|
|
|
|
/*
|
|
* Tracepoint for kgsl waittimestamp entry
|
|
*/
|
|
TRACE_EVENT(kgsl_waittimestamp_entry,
|
|
|
|
TP_PROTO(struct kgsl_device *device,
|
|
struct kgsl_device_waittimestamp *cmd),
|
|
|
|
TP_ARGS(device, cmd),
|
|
|
|
TP_STRUCT__entry(
|
|
__string(device_name, device->name)
|
|
__field(unsigned int, timestamp)
|
|
__field(unsigned int, timeout)
|
|
),
|
|
|
|
TP_fast_assign(
|
|
__assign_str(device_name, device->name);
|
|
__entry->timestamp = cmd->timestamp;
|
|
__entry->timeout = cmd->timeout;
|
|
),
|
|
|
|
TP_printk(
|
|
"d_name=%s timestamp=%u timeout=%u",
|
|
__get_str(device_name),
|
|
__entry->timestamp,
|
|
__entry->timeout
|
|
)
|
|
);
|
|
|
|
/*
|
|
* Tracepoint for kgsl waittimestamp exit
|
|
*/
|
|
TRACE_EVENT(kgsl_waittimestamp_exit,
|
|
|
|
TP_PROTO(struct kgsl_device *device, int result),
|
|
|
|
TP_ARGS(device, result),
|
|
|
|
TP_STRUCT__entry(
|
|
__string(device_name, device->name)
|
|
__field(int, result)
|
|
),
|
|
|
|
TP_fast_assign(
|
|
__assign_str(device_name, device->name);
|
|
__entry->result = result;
|
|
),
|
|
|
|
TP_printk(
|
|
"d_name=%s result=%d",
|
|
__get_str(device_name),
|
|
__entry->result
|
|
)
|
|
);
|
|
|
|
DECLARE_EVENT_CLASS(kgsl_pwr_template,
|
|
TP_PROTO(struct kgsl_device *device, int on),
|
|
|
|
TP_ARGS(device, on),
|
|
|
|
TP_STRUCT__entry(
|
|
__string(device_name, device->name)
|
|
__field(int, on)
|
|
),
|
|
|
|
TP_fast_assign(
|
|
__assign_str(device_name, device->name);
|
|
__entry->on = on;
|
|
),
|
|
|
|
TP_printk(
|
|
"d_name=%s %s",
|
|
__get_str(device_name),
|
|
__entry->on ? "on" : "off"
|
|
)
|
|
);
|
|
|
|
DEFINE_EVENT(kgsl_pwr_template, kgsl_clk,
|
|
TP_PROTO(struct kgsl_device *device, int on),
|
|
TP_ARGS(device, on)
|
|
);
|
|
|
|
DEFINE_EVENT(kgsl_pwr_template, kgsl_irq,
|
|
TP_PROTO(struct kgsl_device *device, int on),
|
|
TP_ARGS(device, on)
|
|
);
|
|
|
|
DEFINE_EVENT(kgsl_pwr_template, kgsl_bus,
|
|
TP_PROTO(struct kgsl_device *device, int on),
|
|
TP_ARGS(device, on)
|
|
);
|
|
|
|
DEFINE_EVENT(kgsl_pwr_template, kgsl_rail,
|
|
TP_PROTO(struct kgsl_device *device, int on),
|
|
TP_ARGS(device, on)
|
|
);
|
|
|
|
TRACE_EVENT(kgsl_pwrlevel,
|
|
|
|
TP_PROTO(struct kgsl_device *device, unsigned int pwrlevel,
|
|
unsigned int freq),
|
|
|
|
TP_ARGS(device, pwrlevel, freq),
|
|
|
|
TP_STRUCT__entry(
|
|
__string(device_name, device->name)
|
|
__field(unsigned int, pwrlevel)
|
|
__field(unsigned int, freq)
|
|
),
|
|
|
|
TP_fast_assign(
|
|
__assign_str(device_name, device->name);
|
|
__entry->pwrlevel = pwrlevel;
|
|
__entry->freq = freq;
|
|
),
|
|
|
|
TP_printk(
|
|
"d_name=%s pwrlevel=%d freq=%d",
|
|
__get_str(device_name),
|
|
__entry->pwrlevel,
|
|
__entry->freq
|
|
)
|
|
);
|
|
|
|
DECLARE_EVENT_CLASS(kgsl_pwrstate_template,
|
|
TP_PROTO(struct kgsl_device *device, unsigned int state),
|
|
|
|
TP_ARGS(device, state),
|
|
|
|
TP_STRUCT__entry(
|
|
__string(device_name, device->name)
|
|
__field(unsigned int, state)
|
|
),
|
|
|
|
TP_fast_assign(
|
|
__assign_str(device_name, device->name);
|
|
__entry->state = state;
|
|
),
|
|
|
|
TP_printk(
|
|
"d_name=%s %s",
|
|
__get_str(device_name),
|
|
kgsl_pwrstate_to_str(__entry->state)
|
|
)
|
|
);
|
|
|
|
DEFINE_EVENT(kgsl_pwrstate_template, kgsl_pwr_set_state,
|
|
TP_PROTO(struct kgsl_device *device, unsigned int state),
|
|
TP_ARGS(device, state)
|
|
);
|
|
|
|
DEFINE_EVENT(kgsl_pwrstate_template, kgsl_pwr_request_state,
|
|
TP_PROTO(struct kgsl_device *device, unsigned int state),
|
|
TP_ARGS(device, state)
|
|
);
|
|
|
|
TRACE_EVENT(kgsl_mem_alloc,
|
|
|
|
TP_PROTO(struct kgsl_mem_entry *mem_entry),
|
|
|
|
TP_ARGS(mem_entry),
|
|
|
|
TP_STRUCT__entry(
|
|
__field(unsigned int, gpuaddr)
|
|
__field(unsigned int, size)
|
|
),
|
|
|
|
TP_fast_assign(
|
|
__entry->gpuaddr = mem_entry->memdesc.gpuaddr;
|
|
__entry->size = mem_entry->memdesc.size;
|
|
),
|
|
|
|
TP_printk(
|
|
"gpuaddr=0x%08x size=%d",
|
|
__entry->gpuaddr, __entry->size
|
|
)
|
|
);
|
|
|
|
TRACE_EVENT(kgsl_mem_map,
|
|
|
|
TP_PROTO(struct kgsl_mem_entry *mem_entry, int fd),
|
|
|
|
TP_ARGS(mem_entry, fd),
|
|
|
|
TP_STRUCT__entry(
|
|
__field(unsigned int, gpuaddr)
|
|
__field(unsigned int, size)
|
|
__field(int, fd)
|
|
__field(int, type)
|
|
),
|
|
|
|
TP_fast_assign(
|
|
__entry->gpuaddr = mem_entry->memdesc.gpuaddr;
|
|
__entry->size = mem_entry->memdesc.size;
|
|
__entry->fd = fd;
|
|
__entry->type = mem_entry->memtype;
|
|
),
|
|
|
|
TP_printk(
|
|
"gpuaddr=0x%08x size=%d type=%d fd=%d",
|
|
__entry->gpuaddr, __entry->size,
|
|
__entry->type, __entry->fd
|
|
)
|
|
);
|
|
|
|
TRACE_EVENT(kgsl_mem_free,
|
|
|
|
TP_PROTO(struct kgsl_mem_entry *mem_entry),
|
|
|
|
TP_ARGS(mem_entry),
|
|
|
|
TP_STRUCT__entry(
|
|
__field(unsigned int, gpuaddr)
|
|
__field(unsigned int, size)
|
|
__field(int, type)
|
|
__field(int, fd)
|
|
),
|
|
|
|
TP_fast_assign(
|
|
__entry->gpuaddr = mem_entry->memdesc.gpuaddr;
|
|
__entry->size = mem_entry->memdesc.size;
|
|
__entry->type = mem_entry->memtype;
|
|
),
|
|
|
|
TP_printk(
|
|
"gpuaddr=0x%08x size=%d type=%d",
|
|
__entry->gpuaddr, __entry->size, __entry->type
|
|
)
|
|
);
|
|
|
|
DECLARE_EVENT_CLASS(kgsl_mem_timestamp_template,
|
|
|
|
TP_PROTO(struct kgsl_mem_entry *mem_entry, unsigned int curr_ts),
|
|
|
|
TP_ARGS(mem_entry, curr_ts),
|
|
|
|
TP_STRUCT__entry(
|
|
__field(unsigned int, gpuaddr)
|
|
__field(unsigned int, size)
|
|
__field(int, type)
|
|
__field(unsigned int, drawctxt_id)
|
|
__field(unsigned int, curr_ts)
|
|
__field(unsigned int, free_ts)
|
|
),
|
|
|
|
TP_fast_assign(
|
|
__entry->gpuaddr = mem_entry->memdesc.gpuaddr;
|
|
__entry->size = mem_entry->memdesc.size;
|
|
__entry->drawctxt_id = 1337;
|
|
__entry->type = mem_entry->memtype;
|
|
__entry->curr_ts = curr_ts;
|
|
__entry->free_ts = mem_entry->free_timestamp;
|
|
),
|
|
|
|
TP_printk(
|
|
"gpuaddr=0x%08x size=%d type=%d ctx=%u curr_ts=0x%08x free_ts=0x%08x",
|
|
__entry->gpuaddr, __entry->size, __entry->type,
|
|
__entry->drawctxt_id, __entry->curr_ts, __entry->free_ts
|
|
)
|
|
);
|
|
|
|
DEFINE_EVENT(kgsl_mem_timestamp_template, kgsl_mem_timestamp_queue,
|
|
TP_PROTO(struct kgsl_mem_entry *mem_entry, unsigned int curr_ts),
|
|
TP_ARGS(mem_entry, curr_ts)
|
|
);
|
|
|
|
DEFINE_EVENT(kgsl_mem_timestamp_template, kgsl_mem_timestamp_free,
|
|
TP_PROTO(struct kgsl_mem_entry *mem_entry, unsigned int curr_ts),
|
|
TP_ARGS(mem_entry, curr_ts)
|
|
);
|
|
|
|
|
|
#endif /* _KGSL_TRACE_H */
|
|
|
|
/* This part must be outside protection */
|
|
#include <trace/define_trace.h>
|