]> Pileus Git - ~andy/linux/blobdiff - kernel/workqueue.c
ARM: mx3: use MX3x_ prefixed version of CHIP_REV_x
[~andy/linux] / kernel / workqueue.c
index 785542976b0079b92c9dce5c364d9a305dd9a07d..727f24e563aef326b8eba951d2a31a9aa864d32b 100644 (file)
@@ -35,6 +35,9 @@
 #include <linux/lockdep.h>
 #include <linux/idr.h>
 
+#define CREATE_TRACE_POINTS
+#include <trace/events/workqueue.h>
+
 #include "workqueue_sched.h"
 
 enum {
@@ -1808,7 +1811,13 @@ __acquires(&gcwq->lock)
        work_clear_pending(work);
        lock_map_acquire(&cwq->wq->lockdep_map);
        lock_map_acquire(&lockdep_map);
+       trace_workqueue_execute_start(work);
        f(work);
+       /*
+        * While we must be careful to not use "work" after this, the trace
+        * point will only record its address.
+        */
+       trace_workqueue_execute_end(work);
        lock_map_release(&lockdep_map);
        lock_map_release(&cwq->wq->lockdep_map);