sched/deadline: Fix artificial overrun introduced by yield_task_dl()
authorWanpeng Li <wanpeng.li@linux.intel.com>
Thu, 30 Oct 2014 22:39:32 +0000 (06:39 +0800)
committerIngo Molnar <mingo@kernel.org>
Tue, 4 Nov 2014 06:17:53 +0000 (07:17 +0100)
commit804968809c321066cca028d4cbd533a420f964bc
tree16d858a81fb825da306816a3aec0cc73473229c6
parent308a623a40ce168eb234ea82c2bd13ff85a098d9
sched/deadline: Fix artificial overrun introduced by yield_task_dl()

The yield semantic of deadline class is to reduce remaining runtime to
zero, and then update_curr_dl() will stop it. However, comsumed bandwidth
is reduced from the budget of yield task again even if it has already been
set to zero which leads to artificial overrun. This patch fix it by make
sure we don't steal some more time from the task that yielded in update_curr_dl().

Suggested-by: Juri Lelli <juri.lelli@arm.com>
Signed-off-by: Wanpeng Li <wanpeng.li@linux.intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Kirill Tkhai <ktkhai@parallels.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: http://lkml.kernel.org/r/1414708776-124078-2-git-send-email-wanpeng.li@linux.intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
kernel/sched/deadline.c