summaryrefslogtreecommitdiffstats
path: root/kernel/sched/Makefile
diff options
context:
space:
mode:
authorJuri Lelli <juri.lelli@gmail.com>2013-11-07 14:43:47 +0100
committerIngo Molnar <mingo@kernel.org>2014-01-13 13:46:46 +0100
commit6bfd6d72f51c51177676f2b1ba113fe0a85fdae4 (patch)
tree8c3c4c49f18ba3218da4274623b50da0a317f2d6 /kernel/sched/Makefile
parent332ac17ef5bfcff4766dfdfd3b4cdf10b8f8f155 (diff)
downloadlinux-stable-6bfd6d72f51c51177676f2b1ba113fe0a85fdae4.tar.gz
linux-stable-6bfd6d72f51c51177676f2b1ba113fe0a85fdae4.tar.bz2
linux-stable-6bfd6d72f51c51177676f2b1ba113fe0a85fdae4.zip
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 <juri.lelli@gmail.com> Signed-off-by: Peter Zijlstra <peterz@infradead.org> Link: http://lkml.kernel.org/r/1383831828-15501-14-git-send-email-juri.lelli@gmail.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/sched/Makefile')
-rw-r--r--kernel/sched/Makefile2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/sched/Makefile b/kernel/sched/Makefile
index b039035a9376..9a95c8c2af2a 100644
--- a/kernel/sched/Makefile
+++ b/kernel/sched/Makefile
@@ -14,7 +14,7 @@ endif
obj-y += core.o proc.o clock.o cputime.o
obj-y += idle_task.o fair.o rt.o deadline.o stop_task.o
obj-y += wait.o completion.o
-obj-$(CONFIG_SMP) += cpupri.o
+obj-$(CONFIG_SMP) += cpupri.o cpudeadline.o
obj-$(CONFIG_SCHED_AUTOGROUP) += auto_group.o
obj-$(CONFIG_SCHEDSTATS) += stats.o
obj-$(CONFIG_SCHED_DEBUG) += debug.o