sync: add tracepoint support
Change-Id: I181326db4247009161557e45444c9b3548b83d25
Signed-off-by: Erik Gilling <konkers@android.com>
diff --git a/drivers/base/sync.c b/drivers/base/sync.c
index 3943051..d7ec39d 100644
--- a/drivers/base/sync.c
+++ b/drivers/base/sync.c
@@ -28,6 +28,9 @@
#include <linux/anon_inodes.h>
+#define CREATE_TRACE_POINTS
+#include <trace/events/sync.h>
+
static void sync_fence_signal_pt(struct sync_pt *pt);
static int _sync_pt_has_signaled(struct sync_pt *pt);
static void sync_fence_free(struct kref *kref);
@@ -134,6 +137,8 @@
LIST_HEAD(signaled_pts);
struct list_head *pos, *n;
+ trace_sync_timeline(obj);
+
spin_lock_irqsave(&obj->active_list_lock, flags);
list_for_each_safe(pos, n, &obj->active_list_head) {
@@ -581,6 +586,11 @@
int sync_fence_wait(struct sync_fence *fence, long timeout)
{
int err = 0;
+ struct sync_pt *pt;
+
+ trace_sync_wait(fence, 1);
+ list_for_each_entry(pt, &fence->pt_list_head, pt_list)
+ trace_sync_pt(pt);
if (timeout > 0) {
timeout = msecs_to_jiffies(timeout);
@@ -591,6 +601,7 @@
err = wait_event_interruptible(fence->wq,
sync_fence_check(fence));
}
+ trace_sync_wait(fence, 0);
if (err < 0)
return err;