diff --git a/include/linux/sched.h b/include/linux/sched.h index d74830cc51eb8cbce17d2072ae2cf7ff0ce1167e..2c33227b0f829ba5f413f0b671b9e1b827eabb51 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -908,7 +908,6 @@ struct sched_entity { u64 sum_exec_runtime; u64 vruntime; u64 prev_sum_exec_runtime; - u64 last_min_vruntime; #ifdef CONFIG_SCHEDSTATS u64 wait_start; diff --git a/kernel/sched.c b/kernel/sched.c index c779bf9d3552123b15d82360895883d502e9205b..744bd5050f102fab6222a16cb13ee3d592defd47 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -1616,7 +1616,6 @@ static void __sched_fork(struct task_struct *p) p->se.exec_start = 0; p->se.sum_exec_runtime = 0; p->se.prev_sum_exec_runtime = 0; - p->se.last_min_vruntime = 0; #ifdef CONFIG_SCHEDSTATS p->se.wait_start = 0; diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c index 0228de186503267127edfb80156877ba52e42e2c..62a9ee8db13e98136e2f70a027bab6a3cb020ced 100644 --- a/kernel/sched_fair.c +++ b/kernel/sched_fair.c @@ -480,14 +480,9 @@ place_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int initial) vruntime += __sched_vslice(cfs_rq->nr_running + 1); if (!initial) { - if (sched_feat(NEW_FAIR_SLEEPERS)) { - s64 latency = cfs_rq->min_vruntime - se->vruntime; - if (latency < 0 || !cfs_rq->nr_running) - latency = 0; - else - latency = min_t(s64, latency, sysctl_sched_latency); - vruntime -= latency; - } + if (sched_feat(NEW_FAIR_SLEEPERS)) + vruntime -= sysctl_sched_latency; + vruntime = max(vruntime, se->vruntime); } @@ -531,8 +526,6 @@ dequeue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int sleep) se->block_start = rq_of(cfs_rq)->clock; } #endif - /* se->vruntime = entity_key(cfs_rq, se); */ - se->last_min_vruntime = cfs_rq->min_vruntime; } if (se != cfs_rq->curr)