aboutsummaryrefslogtreecommitdiffstats
path: root/litmus
diff options
context:
space:
mode:
Diffstat (limited to 'litmus')
-rw-r--r--litmus/locking.c15
-rw-r--r--litmus/sched_litmus.c5
2 files changed, 20 insertions, 0 deletions
diff --git a/litmus/locking.c b/litmus/locking.c
index df7d0a939c08..43d9aece2e74 100644
--- a/litmus/locking.c
+++ b/litmus/locking.c
@@ -1,3 +1,5 @@
1#include <linux/sched.h>
2#include <litmus/litmus.h>
1#include <litmus/fdso.h> 3#include <litmus/fdso.h>
2 4
3#ifdef CONFIG_LITMUS_LOCKING 5#ifdef CONFIG_LITMUS_LOCKING
@@ -72,6 +74,10 @@ asmlinkage long sys_litmus_lock(int lock_od)
72 struct od_table_entry* entry; 74 struct od_table_entry* entry;
73 struct litmus_lock* l; 75 struct litmus_lock* l;
74 76
77 TS_SYSCALL_IN_START;
78
79 TS_SYSCALL_IN_END;
80
75 TS_LOCK_START; 81 TS_LOCK_START;
76 82
77 entry = get_entry_for_od(lock_od); 83 entry = get_entry_for_od(lock_od);
@@ -85,6 +91,8 @@ asmlinkage long sys_litmus_lock(int lock_od)
85 * this into account when computing overheads. */ 91 * this into account when computing overheads. */
86 TS_LOCK_END; 92 TS_LOCK_END;
87 93
94 TS_SYSCALL_OUT_START;
95
88 return err; 96 return err;
89} 97}
90 98
@@ -94,6 +102,10 @@ asmlinkage long sys_litmus_unlock(int lock_od)
94 struct od_table_entry* entry; 102 struct od_table_entry* entry;
95 struct litmus_lock* l; 103 struct litmus_lock* l;
96 104
105 TS_SYSCALL_IN_START;
106
107 TS_SYSCALL_IN_END;
108
97 TS_UNLOCK_START; 109 TS_UNLOCK_START;
98 110
99 entry = get_entry_for_od(lock_od); 111 entry = get_entry_for_od(lock_od);
@@ -107,6 +119,8 @@ asmlinkage long sys_litmus_unlock(int lock_od)
107 * account when computing overheads. */ 119 * account when computing overheads. */
108 TS_UNLOCK_END; 120 TS_UNLOCK_END;
109 121
122 TS_SYSCALL_OUT_START;
123
110 return err; 124 return err;
111} 125}
112 126
@@ -156,6 +170,7 @@ out:
156 return passed; 170 return passed;
157} 171}
158 172
173
159#else 174#else
160 175
161struct fdso_ops generic_lock_ops = {}; 176struct fdso_ops generic_lock_ops = {};
diff --git a/litmus/sched_litmus.c b/litmus/sched_litmus.c
index 6553948407de..6b32cf09abbd 100644
--- a/litmus/sched_litmus.c
+++ b/litmus/sched_litmus.c
@@ -194,6 +194,9 @@ static void dequeue_task_litmus(struct rq *rq, struct task_struct *p,
194 194
195static void yield_task_litmus(struct rq *rq) 195static void yield_task_litmus(struct rq *rq)
196{ 196{
197 TS_SYSCALL_IN_START;
198 TS_SYSCALL_IN_END;
199
197 BUG_ON(rq->curr != current); 200 BUG_ON(rq->curr != current);
198 /* sched_yield() is called to trigger delayed preemptions. 201 /* sched_yield() is called to trigger delayed preemptions.
199 * Thus, mark the current task as needing to be rescheduled. 202 * Thus, mark the current task as needing to be rescheduled.
@@ -202,6 +205,8 @@ static void yield_task_litmus(struct rq *rq)
202 */ 205 */
203 clear_exit_np(current); 206 clear_exit_np(current);
204 litmus_reschedule_local(); 207 litmus_reschedule_local();
208
209 TS_SYSCALL_OUT_START;
205} 210}
206 211
207/* Plugins are responsible for this. 212/* Plugins are responsible for this.