sched: fix wait_start_fair condition in update_stats_wait_end()
Peter Zijlstra noticed the following bug in SCHED_FEAT_SKIP_INITIAL (which is disabled by default at the moment): it relies on se.wait_start_fair being 0 while update_stats_wait_end() did not recognize a 0 value, so instead of 'skipping' the initial interval we gave the new child a maximum boost of +runtime-limit ... (No impact on the default kernel, but nice to fix for completeness.) Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Signed-off-by: Mike Galbraith <efault@gmx.de>
This commit is contained in:
parent
7109c4429a
commit
b77d69db9f
1 changed files with 3 additions and 0 deletions
|
@ -489,6 +489,9 @@ update_stats_wait_end(struct cfs_rq *cfs_rq, struct sched_entity *se)
|
|||
{
|
||||
unsigned long delta_fair;
|
||||
|
||||
if (unlikely(!se->wait_start_fair))
|
||||
return;
|
||||
|
||||
delta_fair = (unsigned long)min((u64)(2*sysctl_sched_runtime_limit),
|
||||
(u64)(cfs_rq->fair_clock - se->wait_start_fair));
|
||||
|
||||
|
|
Loading…
Reference in a new issue