aboutsummaryrefslogtreecommitdiffstats
path: root/include/litmus/sched_trace.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/litmus/sched_trace.h')
-rw-r--r--include/litmus/sched_trace.h21
1 files changed, 20 insertions, 1 deletions
diff --git a/include/litmus/sched_trace.h b/include/litmus/sched_trace.h
index fb5d8f33aff5..80d952374f7a 100644
--- a/include/litmus/sched_trace.h
+++ b/include/litmus/sched_trace.h
@@ -89,6 +89,11 @@ struct st_request_mode_data {
89 u8 __unused[8]; 89 u8 __unused[8];
90}; 90};
91 91
92struct st_sys_start_data {
93 u64 when;
94 u64 start;
95};
96
92#define DATA(x) struct st_ ## x ## _data x; 97#define DATA(x) struct st_ ## x ## _data x;
93 98
94typedef enum { 99typedef enum {
@@ -104,7 +109,8 @@ typedef enum {
104 ST_ACTION, 109 ST_ACTION,
105 ST_SYS_RELEASE, 110 ST_SYS_RELEASE,
106 ST_ENACT_MODE, 111 ST_ENACT_MODE,
107 ST_REQUEST_MODE 112 ST_REQUEST_MODE,
113 ST_SYS_START,
108} st_event_record_type_t; 114} st_event_record_type_t;
109 115
110struct st_event_record { 116struct st_event_record {
@@ -124,6 +130,7 @@ struct st_event_record {
124 DATA(sys_release); 130 DATA(sys_release);
125 DATA(enact_mode); 131 DATA(enact_mode);
126 DATA(request_mode); 132 DATA(request_mode);
133 DATA(sys_start);
127 } data; 134 } data;
128}; 135};
129 136
@@ -171,6 +178,8 @@ feather_callback void do_sched_trace_enact_mode(unsigned long id,
171 178
172feather_callback void do_sched_trace_request_mode(unsigned long id, 179feather_callback void do_sched_trace_request_mode(unsigned long id,
173 struct task_struct* task); 180 struct task_struct* task);
181feather_callback void do_sched_trace_sys_start(unsigned long id,
182 lt_t* start);
174 183
175#endif 184#endif
176 185
@@ -198,6 +207,7 @@ feather_callback void do_sched_trace_request_mode(unsigned long id,
198#define trace_litmus_sys_release(start) 207#define trace_litmus_sys_release(start)
199#define trace_litmus_enact_mode(t) 208#define trace_litmus_enact_mode(t)
200#define trace_litmus_request_mode(t) 209#define trace_litmus_request_mode(t)
210#define trace_litmus_sys_start(start)
201 211
202#endif 212#endif
203 213
@@ -286,6 +296,15 @@ feather_callback void do_sched_trace_request_mode(unsigned long id,
286 do_sched_trace_request_mode, t); \ 296 do_sched_trace_request_mode, t); \
287 trace_litmus_request_mode(t); \ 297 trace_litmus_request_mode(t); \
288 } while (0) 298 } while (0)
299
300/* when is a pointer, it does not need an explicit cast to unsigned long */
301#define sched_trace_sys_start(when) \
302 do { \
303 SCHED_TRACE(SCHED_TRACE_BASE_ID + 13, \
304 do_sched_trace_sys_start, when); \
305 trace_litmus_sys_start(when); \
306 } while (0)
307
289#endif /* __KERNEL__ */ 308#endif /* __KERNEL__ */
290 309
291#endif 310#endif