Messages in this thread | | | Date | Thu, 20 Aug 2020 14:58:29 +0200 | From | peterz@infradea ... | Subject | Re: [PATCH] sched/fair: avoid vruntime compensation for SCHED_IDLE task |
| |
On Thu, Aug 20, 2020 at 02:51:06PM +0200, Vincent Guittot wrote: > On Thu, 20 Aug 2020 at 14:00, Jiang Biao <benbjiang@gmail.com> wrote: > > > > From: Jiang Biao <benbjiang@tencent.com> > > > > Vruntime compensation has been down in place_entity() to > > boot the waking procedure for fair tasks. There is no need to > > s/boot/boost/ ? > > > do that for SCHED_IDLE task actually. > > > > Not compensating vruntime for SCHED_IDLE task could make > > SCHED_IDLE task more harmless for normal tasks.
This is rather week. It would be much better if there's some actual data to support this claim.
> > Signed-off-by: Jiang Biao <benbjiang@tencent.com> > > --- > > kernel/sched/fair.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c > > index 1a68a0536add..adff77676a0a 100644 > > --- a/kernel/sched/fair.c > > +++ b/kernel/sched/fair.c > > @@ -4115,7 +4115,7 @@ place_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int initial) > > vruntime += sched_vslice(cfs_rq, se); > > > > /* sleeps up to a single latency don't count. */ > > - if (!initial) { > > + if (!initial && likely(!task_has_idle_policy(task_of(se)))) { > > What if se is not a task ?
Then we very much need it, because it might have fair tasks inside. I suppose you could do something complicated with idle_h_nr_running, but is all that really worth the effort?
> > unsigned long thresh = sysctl_sched_latency; > > > > /* > > -- > > 2.21.0 > >
| |