• L
    sched/deadline: Base GRUB reclaiming on the inactive utilization · 9f0d1a50
    Luca Abeni 提交于
    Instead of decreasing the runtime as "dq = -Uact dt" (eventually
    divided by the maximum utilization available for deadline tasks),
    decrease it as "dq = -max{u, (1 - Uinact)} dt", where u is the task
    utilization and Uinact is the "inactive utilization".
    In this way, the maximum fraction of CPU time that can be reclaimed
    is given by the total utilization of deadline tasks.
    This approach solves a fairness issue with "traditional" global GRUB
    reclaiming: using the traditional GRUB algorithm, if tasks are
    allocated to the various cores in a non-uniform way, the
    reclaiming mechanism allows some tasks to reclaim more time than
    others. This issue is visible starting 11 time-consuming tasks with
    runtime 10ms and period 30ms (total utilization 3.666) on a 4-cores
    system: some tasks will receive much more than the reserved runtime
    (thanks to the reclaiming mechanism), while other tasks will receive
    less than the reserved runtime.
    Tested-by: NDaniel Bristot de Oliveira <bristot@redhat.com>
    Signed-off-by: NLuca Abeni <luca.abeni@santannapisa.it>
    Signed-off-by: NPeter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Claudio Scordino <claudio@evidence.eu.com>
    Cc: Joel Fernandes <joelaf@google.com>
    Cc: Juri Lelli <juri.lelli@arm.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
    Cc: Mike Galbraith <efault@gmx.de>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Tommaso Cucinotta <tommaso.cucinotta@sssup.it>
    Link: http://lkml.kernel.org/r/1495138417-6203-9-git-send-email-luca.abeni@santannapisa.itSigned-off-by: NIngo Molnar <mingo@kernel.org>
    9f0d1a50
deadline.c 59.5 KB