diff options
Diffstat (limited to 'litmus/trace.c')
-rw-r--r-- | litmus/trace.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/litmus/trace.c b/litmus/trace.c index 49f8246cda50..1d4593aec71d 100644 --- a/litmus/trace.c +++ b/litmus/trace.c | |||
@@ -5,6 +5,10 @@ | |||
5 | #include <litmus/litmus.h> | 5 | #include <litmus/litmus.h> |
6 | #include <litmus/trace.h> | 6 | #include <litmus/trace.h> |
7 | 7 | ||
8 | #include <litmus/domain.h> | ||
9 | #include <litmus/event_group.h> | ||
10 | #include <litmus/sched_mc.h> | ||
11 | |||
8 | /******************************************************************************/ | 12 | /******************************************************************************/ |
9 | /* Allocation */ | 13 | /* Allocation */ |
10 | /******************************************************************************/ | 14 | /******************************************************************************/ |
@@ -81,8 +85,15 @@ feather_callback void save_timestamp_def(unsigned long event, | |||
81 | feather_callback void save_timestamp_task(unsigned long event, | 85 | feather_callback void save_timestamp_task(unsigned long event, |
82 | unsigned long t_ptr) | 86 | unsigned long t_ptr) |
83 | { | 87 | { |
84 | int rt = is_realtime((struct task_struct *) t_ptr); | 88 | struct task_struct *ts = (struct task_struct*) t_ptr; |
85 | __save_timestamp(event, rt ? TSK_RT : TSK_BE); | 89 | int rt = is_realtime(ts); |
90 | uint8_t type = rt ? TSK_RT : TSK_BE; | ||
91 | |||
92 | if (TS_LVLA_SCHED_END_ID == event) { | ||
93 | if (rt && CRIT_LEVEL_A == tsk_mc_crit(ts)) | ||
94 | type = TSK_LVLA; | ||
95 | } | ||
96 | __save_timestamp(event, type); | ||
86 | } | 97 | } |
87 | 98 | ||
88 | feather_callback void save_timestamp_cpu(unsigned long event, | 99 | feather_callback void save_timestamp_cpu(unsigned long event, |