diff options
Diffstat (limited to 'include/litmus')
-rw-r--r-- | include/litmus/event_group.h | 1 | ||||
-rw-r--r-- | include/litmus/preempt.h | 2 | ||||
-rw-r--r-- | include/litmus/rt_param.h | 11 | ||||
-rw-r--r-- | include/litmus/sched_mc.h | 1 | ||||
-rw-r--r-- | include/litmus/sched_trace.h | 51 |
5 files changed, 9 insertions, 57 deletions
diff --git a/include/litmus/event_group.h b/include/litmus/event_group.h index b2a6a3ff5627..7b15a7e0412d 100644 --- a/include/litmus/event_group.h +++ b/include/litmus/event_group.h | |||
@@ -25,6 +25,7 @@ struct event_list { | |||
25 | /* For timer firing */ | 25 | /* For timer firing */ |
26 | lt_t fire_time; | 26 | lt_t fire_time; |
27 | struct hrtimer timer; | 27 | struct hrtimer timer; |
28 | struct hrtimer_start_on_info info; | ||
28 | 29 | ||
29 | struct list_head queue_node; /* For event_queue */ | 30 | struct list_head queue_node; /* For event_queue */ |
30 | struct event_group* group; /* For callback */ | 31 | struct event_group* group; /* For callback */ |
diff --git a/include/litmus/preempt.h b/include/litmus/preempt.h index cbf315aa01e9..beb4d480f21b 100644 --- a/include/litmus/preempt.h +++ b/include/litmus/preempt.h | |||
@@ -13,7 +13,7 @@ extern DEFINE_PER_CPU_SHARED_ALIGNED(atomic_t, resched_state); | |||
13 | 13 | ||
14 | #ifdef CONFIG_PREEMPT_STATE_TRACE | 14 | #ifdef CONFIG_PREEMPT_STATE_TRACE |
15 | const char* sched_state_name(int s); | 15 | const char* sched_state_name(int s); |
16 | #define TRACE_STATE(fmt, args...) TRACE("SCHED_STATE " fmt, args) | 16 | #define TRACE_STATE(fmt, args...) STRACE("SCHED_STATE " fmt, args) |
17 | #else | 17 | #else |
18 | #define TRACE_STATE(fmt, args...) /* ignore */ | 18 | #define TRACE_STATE(fmt, args...) /* ignore */ |
19 | #endif | 19 | #endif |
diff --git a/include/litmus/rt_param.h b/include/litmus/rt_param.h index a8fe95b32c06..52a0116f7282 100644 --- a/include/litmus/rt_param.h +++ b/include/litmus/rt_param.h | |||
@@ -268,19 +268,14 @@ struct rt_param { | |||
268 | /* Pointer to the page shared between userspace and kernel. */ | 268 | /* Pointer to the page shared between userspace and kernel. */ |
269 | struct control_page * ctrl_page; | 269 | struct control_page * ctrl_page; |
270 | 270 | ||
271 | lt_t total_tardy; | 271 | #ifdef CONFIG_SCHED_TASK_TRACE |
272 | lt_t max_tardy; | ||
273 | unsigned int missed; | ||
274 | |||
275 | lt_t load; | 272 | lt_t load; |
276 | lt_t flush; | 273 | lt_t flush; |
277 | int load_work; | 274 | #endif |
278 | int flush_work; | ||
279 | 275 | ||
280 | lt_t max_exec_time; | ||
281 | lt_t tot_exec_time; | ||
282 | lt_t last_exec_time; | 276 | lt_t last_exec_time; |
283 | lt_t orig_cost; | 277 | lt_t orig_cost; |
278 | |||
284 | struct color_ctrl_page color_ctrl_page; | 279 | struct color_ctrl_page color_ctrl_page; |
285 | struct dgl_group_req *req; | 280 | struct dgl_group_req *req; |
286 | enum server_state state; | 281 | enum server_state state; |
diff --git a/include/litmus/sched_mc.h b/include/litmus/sched_mc.h index 70f57cfd2706..567603c5ffff 100644 --- a/include/litmus/sched_mc.h +++ b/include/litmus/sched_mc.h | |||
@@ -55,6 +55,7 @@ struct ce_dom_data { | |||
55 | struct rt_event event; | 55 | struct rt_event event; |
56 | #else | 56 | #else |
57 | struct hrtimer timer; | 57 | struct hrtimer timer; |
58 | struct hrtimer_start_on_info timer_info; | ||
58 | #endif | 59 | #endif |
59 | }; | 60 | }; |
60 | 61 | ||
diff --git a/include/litmus/sched_trace.h b/include/litmus/sched_trace.h index 0580340d0170..40187826ef19 100644 --- a/include/litmus/sched_trace.h +++ b/include/litmus/sched_trace.h | |||
@@ -51,18 +51,9 @@ struct st_switch_away_data { /* A process was switched away from on a given CPU. | |||
51 | u64 exec_time; | 51 | u64 exec_time; |
52 | }; | 52 | }; |
53 | 53 | ||
54 | /* changed: like everything */ | ||
55 | struct st_completion_data { /* A job completed. */ | 54 | struct st_completion_data { /* A job completed. */ |
56 | u32 exec; | 55 | u64 when; |
57 | u16 flush_work; | 56 | u64 load; |
58 | u16 load_work; | ||
59 | u32 flush; | ||
60 | u32 load; | ||
61 | /* u8 forced:1; /\* Set to 1 if job overran and kernel advanced to the */ | ||
62 | /* * next task automatically; set to 0 otherwise. */ | ||
63 | /* *\/ */ | ||
64 | /* u8 __uflags:7; */ | ||
65 | /* u8 __unused[7]; */ | ||
66 | }; | 57 | }; |
67 | 58 | ||
68 | struct st_block_data { /* A task blocks. */ | 59 | struct st_block_data { /* A task blocks. */ |
@@ -86,19 +77,6 @@ struct st_sys_release_data { | |||
86 | u64 release; | 77 | u64 release; |
87 | }; | 78 | }; |
88 | 79 | ||
89 | /* changed: easy enough to remove */ | ||
90 | struct st_task_exit_data { | ||
91 | u64 avg_exec_time; | ||
92 | u64 max_exec_time; | ||
93 | }; | ||
94 | |||
95 | /* changed: calculate yoself */ | ||
96 | struct st_task_tardy_data { | ||
97 | u64 total_tardy; | ||
98 | u32 max_tardy; | ||
99 | u32 missed; | ||
100 | }; | ||
101 | |||
102 | #define DATA(x) struct st_ ## x ## _data x; | 80 | #define DATA(x) struct st_ ## x ## _data x; |
103 | 81 | ||
104 | typedef enum { | 82 | typedef enum { |
@@ -113,9 +91,7 @@ typedef enum { | |||
113 | ST_BLOCK, | 91 | ST_BLOCK, |
114 | ST_RESUME, | 92 | ST_RESUME, |
115 | ST_ACTION, | 93 | ST_ACTION, |
116 | ST_SYS_RELEASE, | 94 | ST_SYS_RELEASE |
117 | ST_TASK_EXIT, | ||
118 | ST_TASK_TARDY, | ||
119 | } st_event_record_type_t; | 95 | } st_event_record_type_t; |
120 | 96 | ||
121 | struct st_event_record { | 97 | struct st_event_record { |
@@ -134,8 +110,6 @@ struct st_event_record { | |||
134 | DATA(resume); | 110 | DATA(resume); |
135 | DATA(action); | 111 | DATA(action); |
136 | DATA(sys_release); | 112 | DATA(sys_release); |
137 | DATA(task_exit); | ||
138 | DATA(task_tardy); | ||
139 | } data; | 113 | } data; |
140 | }; | 114 | }; |
141 | 115 | ||
@@ -177,11 +151,6 @@ feather_callback void do_sched_trace_action(unsigned long id, | |||
177 | unsigned long action); | 151 | unsigned long action); |
178 | feather_callback void do_sched_trace_sys_release(unsigned long id, | 152 | feather_callback void do_sched_trace_sys_release(unsigned long id, |
179 | lt_t* start); | 153 | lt_t* start); |
180 | feather_callback void do_sched_trace_task_exit(unsigned long id, | ||
181 | struct task_struct* task); | ||
182 | feather_callback void do_sched_trace_task_tardy(unsigned long id, | ||
183 | struct task_struct* task); | ||
184 | |||
185 | #endif | 154 | #endif |
186 | 155 | ||
187 | #else | 156 | #else |
@@ -306,20 +275,6 @@ feather_callback void do_sched_trace_task_tardy(unsigned long id, | |||
306 | trace_litmus_sys_release(when); \ | 275 | trace_litmus_sys_release(when); \ |
307 | } while (0) | 276 | } while (0) |
308 | 277 | ||
309 | #define sched_trace_task_exit(t) \ | ||
310 | do { \ | ||
311 | SCHED_TRACE(SCHED_TRACE_BASE_ID + 11, \ | ||
312 | do_sched_trace_task_exit, t); \ | ||
313 | trace_litmus_task_exit(t); \ | ||
314 | } while (0) | ||
315 | |||
316 | |||
317 | #define sched_trace_task_tardy(t) \ | ||
318 | do { \ | ||
319 | SCHED_TRACE(SCHED_TRACE_BASE_ID + 12, \ | ||
320 | do_sched_trace_task_tardy, t); \ | ||
321 | } while (0) | ||
322 | |||
323 | #define QT_START lt_t _qt_start = litmus_clock() | 278 | #define QT_START lt_t _qt_start = litmus_clock() |
324 | #define QT_END \ | 279 | #define QT_END \ |
325 | sched_trace_log_message("%d P%d [%s@%s:%d]: Took %llu\n\n", \ | 280 | sched_trace_log_message("%d P%d [%s@%s:%d]: Took %llu\n\n", \ |