diff options
Diffstat (limited to 'include/litmus/litmus.h')
-rw-r--r-- | include/litmus/litmus.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/include/litmus/litmus.h b/include/litmus/litmus.h index f7893ef18162..1cb3eaf25740 100644 --- a/include/litmus/litmus.h +++ b/include/litmus/litmus.h | |||
@@ -270,9 +270,28 @@ static inline int has_control_page(struct task_struct* t) | |||
270 | } | 270 | } |
271 | 271 | ||
272 | 272 | ||
273 | #ifdef CONFIG_SCHED_OVERHEAD_TRACE | ||
274 | |||
273 | #define TS_SYSCALL_IN_START \ | 275 | #define TS_SYSCALL_IN_START \ |
274 | if (has_control_page(current)) { \ | 276 | if (has_control_page(current)) { \ |
275 | __TS_SYSCALL_IN_START(&get_control_page(current)->ts_syscall_start); \ | 277 | __TS_SYSCALL_IN_START(&get_control_page(current)->ts_syscall_start); \ |
276 | } | 278 | } |
277 | 279 | ||
280 | #define TS_SYSCALL_IN_END \ | ||
281 | if (has_control_page(current)) { \ | ||
282 | uint64_t irqs; \ | ||
283 | local_irq_disable(); \ | ||
284 | irqs = get_control_page(current)->irq_count - \ | ||
285 | get_control_page(current)->irq_syscall_start; \ | ||
286 | __TS_SYSCALL_IN_END(&irqs); \ | ||
287 | local_irq_enable(); \ | ||
288 | } | ||
289 | |||
290 | #else | ||
291 | |||
292 | #define TS_SYSCALL_IN_START | ||
293 | #define TS_SYSCALL_IN_END | ||
294 | |||
295 | #endif | ||
296 | |||
278 | #endif | 297 | #endif |