aboutsummaryrefslogtreecommitdiffstats
path: root/litmus/sched_psn_edf.c
diff options
context:
space:
mode:
authorBjoern B. Brandenburg <bbb@cs.unc.edu>2011-02-05 22:57:57 -0500
committerBjoern B. Brandenburg <bbb@cs.unc.edu>2011-11-24 14:15:06 -0500
commit4490f9ecf94e28458069a02e8cfcf4f385390499 (patch)
tree04e8166b5f0fdf53614db0977b8d56f727007390 /litmus/sched_psn_edf.c
parentb739b4033c0f55f9194be2793db9e6ace06047db (diff)
Feather-Trace: trace locking-related suspensions
Diffstat (limited to 'litmus/sched_psn_edf.c')
-rw-r--r--litmus/sched_psn_edf.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/litmus/sched_psn_edf.c b/litmus/sched_psn_edf.c
index eb444ecf1288..8e4a22dd8d6a 100644
--- a/litmus/sched_psn_edf.c
+++ b/litmus/sched_psn_edf.c
@@ -20,6 +20,7 @@
20#include <litmus/sched_plugin.h> 20#include <litmus/sched_plugin.h>
21#include <litmus/edf_common.h> 21#include <litmus/edf_common.h>
22#include <litmus/sched_trace.h> 22#include <litmus/sched_trace.h>
23#include <litmus/trace.h>
23 24
24typedef struct { 25typedef struct {
25 rt_domain_t domain; 26 rt_domain_t domain;
@@ -422,6 +423,8 @@ int psnedf_fmlp_lock(struct litmus_lock* l)
422 423
423 __add_wait_queue_tail_exclusive(&sem->wait, &wait); 424 __add_wait_queue_tail_exclusive(&sem->wait, &wait);
424 425
426 TS_LOCK_SUSPEND;
427
425 /* release lock before sleeping */ 428 /* release lock before sleeping */
426 spin_unlock_irqrestore(&sem->wait.lock, flags); 429 spin_unlock_irqrestore(&sem->wait.lock, flags);
427 430
@@ -432,6 +435,8 @@ int psnedf_fmlp_lock(struct litmus_lock* l)
432 435
433 schedule(); 436 schedule();
434 437
438 TS_LOCK_RESUME;
439
435 /* Since we hold the lock, no other task will change 440 /* Since we hold the lock, no other task will change
436 * ->owner. We can thus check it without acquiring the spin 441 * ->owner. We can thus check it without acquiring the spin
437 * lock. */ 442 * lock. */