aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZelin Tong <ztong@ludwig.cs.unc.edu>2020-10-23 23:52:15 -0400
committerZelin Tong <ztong@ludwig.cs.unc.edu>2020-10-23 23:52:15 -0400
commit4786ef1a164fd94b402968afa1955aedf41de304 (patch)
tree36d360ac5dded69a86e166ae8b5580ae79d42cd5
parent3ab72024d097d2ebcc25442bedcd29b6f1f3abd7 (diff)
Fixed edge case
-rw-r--r--litmus/reservations/gedf_reservation.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/litmus/reservations/gedf_reservation.c b/litmus/reservations/gedf_reservation.c
index 9f02617821a1..1649eaf026d7 100644
--- a/litmus/reservations/gedf_reservation.c
+++ b/litmus/reservations/gedf_reservation.c
@@ -249,7 +249,7 @@ static void gedf_task_replenish_budget(
249{ 249{
250 struct task_struct* t = ((struct gedf_task_reservation*)res)->task; 250 struct task_struct* t = ((struct gedf_task_reservation*)res)->task;
251 251
252 if (is_completed(t)) { 252 if (is_completed(t) || (budget_enforced(t) && budget_exhausted(t))) {
253 sched_trace_task_completion(t, 0); 253 sched_trace_task_completion(t, 0);
254 prepare_for_next_period(t); 254 prepare_for_next_period(t);
255 tsk_rt(t)->completed = 0; 255 tsk_rt(t)->completed = 0;
@@ -271,6 +271,7 @@ static void gedf_drain_budget(
271 lt_t how_much, 271 lt_t how_much,
272 int cpu) 272 int cpu)
273{ 273{
274
274 if (how_much > res->cur_budget) 275 if (how_much > res->cur_budget)
275 res->cur_budget = 0; 276 res->cur_budget = 0;
276 else 277 else