diff options
| author | Juri Lelli <[email protected]> | 2013-11-07 14:43:47 +0100 |
|---|---|---|
| committer | Ingo Molnar <[email protected]> | 2014-01-13 13:46:46 +0100 |
| commit | 6bfd6d72f51c51177676f2b1ba113fe0a85fdae4 (patch) | |
| tree | 8c3c4c49f18ba3218da4274623b50da0a317f2d6 /lib/mpi/mpicoder.c | |
| parent | 332ac17ef5bfcff4766dfdfd3b4cdf10b8f8f155 (diff) | |
sched/deadline: speed up SCHED_DEADLINE pushes with a push-heap
Data from tests confirmed that the original active load balancing
logic didn't scale neither in the number of CPU nor in the number of
tasks (as sched_rt does).
Here we provide a global data structure to keep track of deadlines
of the running tasks in the system. The structure is composed by
a bitmask showing the free CPUs and a max-heap, needed when the system
is heavily loaded.
The implementation and concurrent access scheme are kept simple by
design. However, our measurements show that we can compete with sched_rt
on large multi-CPUs machines [1].
Only the push path is addressed, the extension to use this structure
also for pull decisions is straightforward. However, we are currently
evaluating different (in order to decrease/avoid contention) data
structures to solve possibly both problems. We are also going to re-run
tests considering recent changes inside cpupri [2].
[1] http://retis.sssup.it/~jlelli/papers/Ospert11Lelli.pdf
[2] http://www.spinics.net/lists/linux-rt-users/msg06778.html
Signed-off-by: Juri Lelli <[email protected]>
Signed-off-by: Peter Zijlstra <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Ingo Molnar <[email protected]>
Diffstat (limited to 'lib/mpi/mpicoder.c')
0 files changed, 0 insertions, 0 deletions