aboutsummaryrefslogtreecommitdiffstats
path: root/litmus/locking.c
diff options
context:
space:
mode:
authorBjoern B. Brandenburg <bbb@cs.unc.edu>2011-07-25 12:42:27 -0400
committerChristopher Kenna <cjk@cs.unc.edu>2011-10-10 17:14:34 -0400
commit88f2d7fbab4ceba14946cb86c018bc8a2025e876 (patch)
treec5bdd383f1f3c1b52804324b1f4af7b4e09a38e8 /litmus/locking.c
parent81d6f2711010d4073e29ea38bc717ee6f4ed3a53 (diff)
locking: trace system call entry/exit cost
Diffstat (limited to 'litmus/locking.c')
-rw-r--r--litmus/locking.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/litmus/locking.c b/litmus/locking.c
index 728b56835cf7..cfbc1ba59217 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
@@ -69,6 +71,11 @@ asmlinkage long sys_litmus_lock(int lock_od)
69 struct od_table_entry* entry; 71 struct od_table_entry* entry;
70 struct litmus_lock* l; 72 struct litmus_lock* l;
71 73
74 if (has_control_page(current))
75 TS_SYSCALL_IN_START(&get_control_page(current)->ts_syscall_start);
76
77 TS_SYSCALL_IN_END;
78
72 TS_LOCK_START; 79 TS_LOCK_START;
73 80
74 entry = get_entry_for_od(lock_od); 81 entry = get_entry_for_od(lock_od);
@@ -82,6 +89,8 @@ asmlinkage long sys_litmus_lock(int lock_od)
82 * this into account when computing overheads. */ 89 * this into account when computing overheads. */
83 TS_UNLOCK_END; 90 TS_UNLOCK_END;
84 91
92 TS_SYSCALL_OUT_START;
93
85 return err; 94 return err;
86} 95}
87 96
@@ -91,6 +100,11 @@ asmlinkage long sys_litmus_unlock(int lock_od)
91 struct od_table_entry* entry; 100 struct od_table_entry* entry;
92 struct litmus_lock* l; 101 struct litmus_lock* l;
93 102
103 if (has_control_page(current))
104 TS_SYSCALL_IN_START(&get_control_page(current)->ts_syscall_start);
105
106 TS_SYSCALL_IN_END;
107
94 TS_UNLOCK_START; 108 TS_UNLOCK_START;
95 109
96 entry = get_entry_for_od(lock_od); 110 entry = get_entry_for_od(lock_od);
@@ -104,6 +118,8 @@ asmlinkage long sys_litmus_unlock(int lock_od)
104 * account when computing overheads. */ 118 * account when computing overheads. */
105 TS_UNLOCK_END; 119 TS_UNLOCK_END;
106 120
121 TS_SYSCALL_OUT_START;
122
107 return err; 123 return err;
108} 124}
109 125