diff options
author | Erik Gilling <konkers@android.com> | 2012-10-16 16:14:48 -0700 |
---|---|---|
committer | Arve Hjønnevåg <arve@android.com> | 2013-04-29 14:43:12 -0700 |
commit | cf58d45e431970a9705aba8fddebd03b407f1034 (patch) | |
tree | 91e428df37fe0260bf3c45817372cdd314bdc46c /drivers | |
parent | ceb28bf0610bdd44f12f9c2508900f2a49ce47d5 (diff) |
sync: add tracepoint support
Change-Id: I181326db4247009161557e45444c9b3548b83d25
Signed-off-by: Erik Gilling <konkers@android.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/base/sync.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/base/sync.c b/drivers/base/sync.c index 9b4ed002f82..809d02b21e0 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 @@ void sync_timeline_signal(struct sync_timeline *obj) 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) { @@ -580,6 +585,11 @@ static bool sync_fence_check(struct sync_fence *fence) 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); @@ -590,6 +600,7 @@ int sync_fence_wait(struct sync_fence *fence, long timeout) err = wait_event_interruptible(fence->wq, sync_fence_check(fence)); } + trace_sync_wait(fence, 0); if (err < 0) return err; |