Counting Priority Inversions: Computing Maximum Additional Core Requests of DAG Tasks

Morteza Mohaqeqia, Gaoyang Daib and Wang Yic
Uppsala University, Sweden
amorteza.mohaqeqi@it.uu.se
bgaoyang.dai@it.uu.se
cyi@it.uu.se

ABSTRACT


Many parallel real-time applications can be modeled as DAG tasks. Guaranteeing timing constraints of such applications executed on multicore systems is challenging, especially for the applications with non-preemptive execution blocks. The existing approach for timing analysis of such tasks with sporadic release relies on computing a bound on the interfering workload on a task, which depends on the number of priority inversions the task may experience. The number of priority inversions, in turn, is a function of the total number of additional cores a task instance may request after each node spawning.

In this paper, we show that the previously proposed polynomialtime algorithm to compute the maximum number of additional core requests of a DAG is not correct, providing a counter example. We show that the problem is in fact NP-hard. We then present an ILP formulation as an exact solution to the problem. Our evaluations show that the problem can be solved in a few minutes even for DAGs with hundreds of nodes.



Full Text (PDF)