diff options
author | Jonathan Herman <hermanjl@cs.unc.edu> | 2012-03-15 12:11:32 -0400 |
---|---|---|
committer | Jonathan Herman <hermanjl@cs.unc.edu> | 2012-03-15 12:11:32 -0400 |
commit | 88b8f6f7015c320706ef8a258404e169708a4acf (patch) | |
tree | 430b3eb33b6b08f7b916adf783239b082a74ab59 /include/litmus | |
parent | 69de127d6bb76821884abb1c1ce5c1f6a5829ded (diff) |
First container trace iteration
Diffstat (limited to 'include/litmus')
-rw-r--r-- | include/litmus/litmus.h | 2 | ||||
-rw-r--r-- | include/litmus/rt_param.h | 1 | ||||
-rw-r--r-- | include/litmus/sched_plugin.h | 5 | ||||
-rw-r--r-- | include/litmus/sched_trace.h | 36 |
4 files changed, 44 insertions, 0 deletions
diff --git a/include/litmus/litmus.h b/include/litmus/litmus.h index 4322d59c0e8f..d5dbc82f0dfc 100644 --- a/include/litmus/litmus.h +++ b/include/litmus/litmus.h | |||
@@ -44,6 +44,8 @@ void litmus_exit_task(struct task_struct *tsk); | |||
44 | 44 | ||
45 | #define tsk_rt(t) (&(t)->rt_param) | 45 | #define tsk_rt(t) (&(t)->rt_param) |
46 | 46 | ||
47 | #define get_server_job(t) (tsk_rt(t)->job_params.fake_job_no) | ||
48 | |||
47 | /* Realtime utility macros */ | 49 | /* Realtime utility macros */ |
48 | #define get_rt_flags(t) (tsk_rt(t)->flags) | 50 | #define get_rt_flags(t) (tsk_rt(t)->flags) |
49 | #define set_rt_flags(t,f) (tsk_rt(t)->flags=(f)) | 51 | #define set_rt_flags(t,f) (tsk_rt(t)->flags=(f)) |
diff --git a/include/litmus/rt_param.h b/include/litmus/rt_param.h index 55419d411614..4293575d3472 100644 --- a/include/litmus/rt_param.h +++ b/include/litmus/rt_param.h | |||
@@ -85,6 +85,7 @@ struct rt_job { | |||
85 | 85 | ||
86 | lt_t real_release; | 86 | lt_t real_release; |
87 | lt_t real_deadline; | 87 | lt_t real_deadline; |
88 | unsigned int fake_job_no; | ||
88 | 89 | ||
89 | /* How much service has this job received so far? */ | 90 | /* How much service has this job received so far? */ |
90 | lt_t exec_time; | 91 | lt_t exec_time; |
diff --git a/include/litmus/sched_plugin.h b/include/litmus/sched_plugin.h index 32c23974e45a..0f529fa78b4d 100644 --- a/include/litmus/sched_plugin.h +++ b/include/litmus/sched_plugin.h | |||
@@ -69,6 +69,9 @@ typedef long (*admit_task_t)(struct task_struct* tsk); | |||
69 | 69 | ||
70 | typedef void (*release_at_t)(struct task_struct *t, lt_t start); | 70 | typedef void (*release_at_t)(struct task_struct *t, lt_t start); |
71 | 71 | ||
72 | /* TODO remove me */ | ||
73 | typedef void (*release_ts_t)(lt_t time); | ||
74 | |||
72 | struct sched_plugin { | 75 | struct sched_plugin { |
73 | struct list_head list; | 76 | struct list_head list; |
74 | /* basic info */ | 77 | /* basic info */ |
@@ -95,6 +98,8 @@ struct sched_plugin { | |||
95 | task_block_t task_block; | 98 | task_block_t task_block; |
96 | task_exit_t task_exit; | 99 | task_exit_t task_exit; |
97 | 100 | ||
101 | release_ts_t release_ts; | ||
102 | |||
98 | #ifdef CONFIG_LITMUS_LOCKING | 103 | #ifdef CONFIG_LITMUS_LOCKING |
99 | /* locking protocols */ | 104 | /* locking protocols */ |
100 | allocate_lock_t allocate_lock; | 105 | allocate_lock_t allocate_lock; |
diff --git a/include/litmus/sched_trace.h b/include/litmus/sched_trace.h index 6868a07dac46..368bd3dc3be8 100644 --- a/include/litmus/sched_trace.h +++ b/include/litmus/sched_trace.h | |||
@@ -181,6 +181,13 @@ feather_callback void do_sched_trace_sys_release(unsigned long id, | |||
181 | #define trace_litmus_task_resume(t) | 181 | #define trace_litmus_task_resume(t) |
182 | #define trace_litmus_sys_release(start) | 182 | #define trace_litmus_sys_release(start) |
183 | 183 | ||
184 | #define trace_litmus_container_param(cid, name) | ||
185 | #define trace_litmus_server_param(sid, cid, wcet, time) | ||
186 | #define trace_litmus_server_switch_to(sid, job, tid) | ||
187 | #define trace_litmus_server_switch_away(sid, job, tid) | ||
188 | #define trace_litmus_server_release(sid, job, release, deadline) | ||
189 | #define trace_litmus_server_completion(sid, job) | ||
190 | |||
184 | #endif | 191 | #endif |
185 | 192 | ||
186 | 193 | ||
@@ -258,6 +265,35 @@ feather_callback void do_sched_trace_sys_release(unsigned long id, | |||
258 | sched_trace_log_message("%d P%d [%s@%s:%d]: Took %llu\n\n", \ | 265 | sched_trace_log_message("%d P%d [%s@%s:%d]: Took %llu\n\n", \ |
259 | TRACE_ARGS, litmus_clock() - _qt_start) | 266 | TRACE_ARGS, litmus_clock() - _qt_start) |
260 | 267 | ||
268 | #define sched_trace_container_param(cid, name) \ | ||
269 | do { \ | ||
270 | trace_litmus_container_param(cid, name); \ | ||
271 | } while (0) | ||
272 | |||
273 | #define sched_trace_server_param(sid, cid, wcet, period) \ | ||
274 | do { \ | ||
275 | trace_litmus_server_param(sid, cid, wcet, period); \ | ||
276 | } while(0) | ||
277 | |||
278 | #define sched_trace_server_switch_to(sid, job, tid) \ | ||
279 | do { \ | ||
280 | trace_litmus_server_switch_to(sid, job, tid); \ | ||
281 | } while(0) | ||
282 | |||
283 | #define sched_trace_server_switch_away(sid, job, tid) \ | ||
284 | do { \ | ||
285 | trace_litmus_server_switch_away(sid, job, tid); \ | ||
286 | } while (0) | ||
287 | |||
288 | #define sched_trace_server_release(sid, job, rel, dead) \ | ||
289 | do { \ | ||
290 | trace_litmus_server_release(sid, job, rel, dead); \ | ||
291 | } while (0) | ||
292 | |||
293 | #define sched_trace_server_completion(sid, job) \ | ||
294 | do { \ | ||
295 | trace_litmus_server_completion(sid, job); \ | ||
296 | } while (0) | ||
261 | 297 | ||
262 | #define sched_trace_quantum_boundary() /* NOT IMPLEMENTED */ | 298 | #define sched_trace_quantum_boundary() /* NOT IMPLEMENTED */ |
263 | 299 | ||