diff options
author | Glenn Elliott <gelliott@cs.unc.edu> | 2013-03-28 18:10:23 -0400 |
---|---|---|
committer | Glenn Elliott <gelliott@cs.unc.edu> | 2013-03-28 18:10:23 -0400 |
commit | b9f67e64d84081f7dbba8dc380af8c39ac8d0a37 (patch) | |
tree | 05cc5c56f469aa17ac0e81d94e3a2284b28e07ab /litmus/ikglp_lock.c | |
parent | 4e28e863475df7c27c2e9ecba4e2cdd409bf044e (diff) |
inheritance management of budget.exp while blocked
Diffstat (limited to 'litmus/ikglp_lock.c')
-rw-r--r-- | litmus/ikglp_lock.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/litmus/ikglp_lock.c b/litmus/ikglp_lock.c index b0c8afe90122..160998f466ed 100644 --- a/litmus/ikglp_lock.c +++ b/litmus/ikglp_lock.c | |||
@@ -484,7 +484,7 @@ static void ikglp_refresh_owners_prio_decrease(struct fifo_queue *fq, | |||
484 | } | 484 | } |
485 | 485 | ||
486 | // beware: recursion | 486 | // beware: recursion |
487 | litmus->nested_decrease_prio(owner, decreased_prio, &sem->lock, flags); // will unlock mutex->lock | 487 | litmus->nested_decrease_prio(owner, decreased_prio, &sem->lock, flags, 0); // will unlock mutex->lock |
488 | } | 488 | } |
489 | else { | 489 | else { |
490 | TRACE_TASK(owner, "No need to propagate priority decrease forward.\n"); | 490 | TRACE_TASK(owner, "No need to propagate priority decrease forward.\n"); |
@@ -535,7 +535,7 @@ static void ikglp_remove_donation_from_owner(struct binheap_node *n, | |||
535 | } | 535 | } |
536 | 536 | ||
537 | // beware: recursion | 537 | // beware: recursion |
538 | litmus->nested_decrease_prio(owner, decreased_prio, &sem->lock, flags); // will unlock mutex->lock | 538 | litmus->nested_decrease_prio(owner, decreased_prio, &sem->lock, flags, 0); // will unlock mutex->lock |
539 | } | 539 | } |
540 | else { | 540 | else { |
541 | TRACE_TASK(owner, "No need to propagate priority decrease forward.\n"); | 541 | TRACE_TASK(owner, "No need to propagate priority decrease forward.\n"); |
@@ -1382,7 +1382,7 @@ int ikglp_unlock(struct litmus_lock* l) | |||
1382 | ++count; | 1382 | ++count; |
1383 | } | 1383 | } |
1384 | if (count) { | 1384 | if (count) { |
1385 | litmus->decrease_prio(t, NULL); | 1385 | litmus->decrease_prio(t, NULL, 0); |
1386 | } | 1386 | } |
1387 | WARN_ON(count > 2); // should not be greater than 2. only local fq inh and donation can be possible. | 1387 | WARN_ON(count > 2); // should not be greater than 2. only local fq inh and donation can be possible. |
1388 | } | 1388 | } |
@@ -1606,6 +1606,17 @@ out: | |||
1606 | } | 1606 | } |
1607 | 1607 | ||
1608 | 1608 | ||
1609 | void ikglp_budget_exhausted(struct litmus_lock* l, struct task_struct* t) | ||
1610 | { | ||
1611 | TRACE_TASK(t, "TODO!\n"); | ||
1612 | } | ||
1613 | |||
1614 | void ikglp_virtual_unlock(struct litmus_lock* l, struct task_struct* t) | ||
1615 | { | ||
1616 | TRACE_TASK(t, "TODO!\n"); | ||
1617 | } | ||
1618 | |||
1619 | |||
1609 | 1620 | ||
1610 | int ikglp_close(struct litmus_lock* l) | 1621 | int ikglp_close(struct litmus_lock* l) |
1611 | { | 1622 | { |