Fix: update sched instrumentation for 3.19+ kernels
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Sun, 28 Dec 2014 14:08:41 +0000 (09:08 -0500)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Sun, 28 Dec 2014 14:14:56 +0000 (09:14 -0500)
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
instrumentation/events/lttng-module/sched.h

index 6b3b033579bc1146e74f5547ee6cc8fb1d5dc81a..1bea326135a428e0db10c42388a9683d58edd745 100644 (file)
 #ifndef _TRACE_SCHED_DEF_
 #define _TRACE_SCHED_DEF_
 
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,13,0))
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0))
+
+static inline long __trace_sched_switch_state(struct task_struct *p)
+{
+       long state = p->state;
+
+#ifdef CONFIG_PREEMPT
+#ifdef CONFIG_SCHED_DEBUG
+       BUG_ON(p != current);
+#endif /* CONFIG_SCHED_DEBUG */
+       /*
+        * For all intents and purposes a preempted task is a running task.
+        */
+       if (preempt_count() & PREEMPT_ACTIVE)
+               state = TASK_RUNNING | TASK_STATE_MAX;
+#endif /* CONFIG_PREEMPT */
+
+       return state;
+}
+
+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,13,0))
 
 static inline long __trace_sched_switch_state(struct task_struct *p)
 {
This page took 0.026853 seconds and 4 git commands to generate.