diff options
author | Jonathan Herman <hermanjl@cs.unc.edu> | 2012-09-30 18:26:21 -0400 |
---|---|---|
committer | Jonathan Herman <hermanjl@cs.unc.edu> | 2012-09-30 18:26:21 -0400 |
commit | 696ff3d97e631739c21daf15d2f3484ee9b7cb02 (patch) | |
tree | 4baf76afa81806855751228cba54fac109d9397f /litmus/rt_domain.c | |
parent | e9fc09f4bd2bae682cea6e7155aad1fe3f58e77b (diff) | |
parent | fb90f3b6a8a604a9aed7249045bfed77ce42de5b (diff) |
Fixed sched_color run issues.
Diffstat (limited to 'litmus/rt_domain.c')
-rw-r--r-- | litmus/rt_domain.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/litmus/rt_domain.c b/litmus/rt_domain.c index faf876623d62..c63bd0303916 100644 --- a/litmus/rt_domain.c +++ b/litmus/rt_domain.c | |||
@@ -20,7 +20,7 @@ | |||
20 | #include <litmus/bheap.h> | 20 | #include <litmus/bheap.h> |
21 | 21 | ||
22 | /* Uncomment when debugging timer races... */ | 22 | /* Uncomment when debugging timer races... */ |
23 | #if 0 | 23 | #if 1 |
24 | #define VTRACE_TASK TRACE_TASK | 24 | #define VTRACE_TASK TRACE_TASK |
25 | #define VTRACE TRACE | 25 | #define VTRACE TRACE |
26 | #else | 26 | #else |
@@ -53,14 +53,15 @@ static void do_release(struct release_heap *rh) | |||
53 | { | 53 | { |
54 | unsigned long flags; | 54 | unsigned long flags; |
55 | 55 | ||
56 | if (CRIT_LEVEL_B == rh->dom->level) | 56 | if (CRIT_LEVEL_B == rh->dom->level) { |
57 | TS_LVLB_RELEASE_START; | 57 | TS_LVLB_RELEASE_START; |
58 | else | 58 | } else { |
59 | TS_LVLC_RELEASE_START; | 59 | TS_LVLC_RELEASE_START; |
60 | } | ||
60 | 61 | ||
61 | TS_RELEASE_LATENCY(rh->release_time); | 62 | TS_RELEASE_LATENCY(rh->release_time); |
62 | 63 | ||
63 | VTRACE("on_release_timer(0x%p) starts.\n", timer); | 64 | VTRACE("on_release_timer starts.\n"); |
64 | 65 | ||
65 | TS_RELEASE_START; | 66 | TS_RELEASE_START; |
66 | 67 | ||
@@ -74,10 +75,11 @@ static void do_release(struct release_heap *rh) | |||
74 | /* call release callback */ | 75 | /* call release callback */ |
75 | rh->dom->release_jobs(rh->dom, &rh->heap); | 76 | rh->dom->release_jobs(rh->dom, &rh->heap); |
76 | 77 | ||
77 | if (CRIT_LEVEL_B == rh->dom->level) | 78 | if (CRIT_LEVEL_B == rh->dom->level) { |
78 | TS_LVLB_RELEASE_END; | 79 | TS_LVLB_RELEASE_END; |
79 | else | 80 | } else { |
80 | TS_LVLC_RELEASE_END; | 81 | TS_LVLC_RELEASE_END; |
82 | } | ||
81 | } | 83 | } |
82 | 84 | ||
83 | #ifdef CONFIG_MERGE_TIMERS | 85 | #ifdef CONFIG_MERGE_TIMERS |
@@ -267,6 +269,7 @@ static void setup_release(rt_domain_t *_rt) | |||
267 | list_for_each_safe(pos, safe, &list) { | 269 | list_for_each_safe(pos, safe, &list) { |
268 | /* pick task of work list */ | 270 | /* pick task of work list */ |
269 | t = list_entry(pos, struct task_struct, rt_param.list); | 271 | t = list_entry(pos, struct task_struct, rt_param.list); |
272 | sched_trace_task_release(t); | ||
270 | list_del_init(pos); | 273 | list_del_init(pos); |
271 | 274 | ||
272 | /* put into release heap while holding release_lock */ | 275 | /* put into release heap while holding release_lock */ |