diff options
Diffstat (limited to 'kernel/sched/fair.c')
-rw-r--r-- | kernel/sched/fair.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index a4d9e14bf138..35f3ea375084 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c | |||
@@ -2007,6 +2007,10 @@ static u64 numa_get_avg_runtime(struct task_struct *p, u64 *period) | |||
2007 | if (p->last_task_numa_placement) { | 2007 | if (p->last_task_numa_placement) { |
2008 | delta = runtime - p->last_sum_exec_runtime; | 2008 | delta = runtime - p->last_sum_exec_runtime; |
2009 | *period = now - p->last_task_numa_placement; | 2009 | *period = now - p->last_task_numa_placement; |
2010 | |||
2011 | /* Avoid time going backwards, prevent potential divide error: */ | ||
2012 | if (unlikely((s64)*period < 0)) | ||
2013 | *period = 0; | ||
2010 | } else { | 2014 | } else { |
2011 | delta = p->se.avg.load_sum; | 2015 | delta = p->se.avg.load_sum; |
2012 | *period = LOAD_AVG_MAX; | 2016 | *period = LOAD_AVG_MAX; |