aboutsummaryrefslogtreecommitdiffstats
path: root/include/litmus
diff options
context:
space:
mode:
Diffstat (limited to 'include/litmus')
-rw-r--r--include/litmus/event_group.h1
-rw-r--r--include/litmus/preempt.h2
-rw-r--r--include/litmus/rt_param.h11
-rw-r--r--include/litmus/sched_mc.h1
-rw-r--r--include/litmus/sched_trace.h51
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
15const char* sched_state_name(int s); 15const 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 */
55struct st_completion_data { /* A job completed. */ 54struct 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
68struct st_block_data { /* A task blocks. */ 59struct 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 */
90struct st_task_exit_data {
91 u64 avg_exec_time;
92 u64 max_exec_time;
93};
94
95/* changed: calculate yoself */
96struct 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
104typedef enum { 82typedef 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
121struct st_event_record { 97struct 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);
178feather_callback void do_sched_trace_sys_release(unsigned long id, 152feather_callback void do_sched_trace_sys_release(unsigned long id,
179 lt_t* start); 153 lt_t* start);
180feather_callback void do_sched_trace_task_exit(unsigned long id,
181 struct task_struct* task);
182feather_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", \