-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
staging: sync: Add tracepoint support
Add support for tracepoints Cc: Maarten Lankhorst <maarten.lankhorst@canonical.com> Cc: Erik Gilling <konkers@android.com> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Cc: Rob Clark <robclark@gmail.com> Cc: Sumit Semwal <sumit.semwal@linaro.org> Cc: dri-devel@lists.freedesktop.org Cc: Android Kernel Team <kernel-team@android.com> Signed-off-by: Erik Gilling <konkers@android.com> [jstultz: Whitespace changes, add commit message, move to staging] Signed-off-by: John Stultz <john.stultz@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
- Loading branch information
Erik Gilling
authored and
Greg Kroah-Hartman
committed
Mar 4, 2013
1 parent
135114a
commit b699a64
Showing
2 changed files
with
93 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
#undef TRACE_SYSTEM | ||
#define TRACE_INCLUDE_PATH ../../drivers/staging/android/trace | ||
#define TRACE_SYSTEM sync | ||
|
||
#if !defined(_TRACE_SYNC_H) || defined(TRACE_HEADER_MULTI_READ) | ||
#define _TRACE_SYNC_H | ||
|
||
#include "../sync.h" | ||
#include <linux/tracepoint.h> | ||
|
||
TRACE_EVENT(sync_timeline, | ||
TP_PROTO(struct sync_timeline *timeline), | ||
|
||
TP_ARGS(timeline), | ||
|
||
TP_STRUCT__entry( | ||
__string(name, timeline->name) | ||
__array(char, value, 32) | ||
), | ||
|
||
TP_fast_assign( | ||
__assign_str(name, timeline->name); | ||
if (timeline->ops->timeline_value_str) { | ||
timeline->ops->timeline_value_str(timeline, | ||
__entry->value, | ||
sizeof(__entry->value)); | ||
} else { | ||
__entry->value[0] = '\0'; | ||
} | ||
), | ||
|
||
TP_printk("name=%s value=%s", __get_str(name), __entry->value) | ||
); | ||
|
||
TRACE_EVENT(sync_wait, | ||
TP_PROTO(struct sync_fence *fence, int begin), | ||
|
||
TP_ARGS(fence, begin), | ||
|
||
TP_STRUCT__entry( | ||
__string(name, fence->name) | ||
__field(s32, status) | ||
__field(u32, begin) | ||
), | ||
|
||
TP_fast_assign( | ||
__assign_str(name, fence->name); | ||
__entry->status = fence->status; | ||
__entry->begin = begin; | ||
), | ||
|
||
TP_printk("%s name=%s state=%d", __entry->begin ? "begin" : "end", | ||
__get_str(name), __entry->status) | ||
); | ||
|
||
TRACE_EVENT(sync_pt, | ||
TP_PROTO(struct sync_pt *pt), | ||
|
||
TP_ARGS(pt), | ||
|
||
TP_STRUCT__entry( | ||
__string(timeline, pt->parent->name) | ||
__array(char, value, 32) | ||
), | ||
|
||
TP_fast_assign( | ||
__assign_str(timeline, pt->parent->name); | ||
if (pt->parent->ops->pt_value_str) { | ||
pt->parent->ops->pt_value_str(pt, __entry->value, | ||
sizeof(__entry->value)); | ||
} else { | ||
__entry->value[0] = '\0'; | ||
} | ||
), | ||
|
||
TP_printk("name=%s value=%s", __get_str(timeline), __entry->value) | ||
); | ||
|
||
#endif /* if !defined(_TRACE_SYNC_H) || defined(TRACE_HEADER_MULTI_READ) */ | ||
|
||
/* This part must be outside protection */ | ||
#include <trace/define_trace.h> |