Messages in this thread | | | From | Vincent Guittot <> | Date | Thu, 25 Nov 2021 10:10:01 +0100 | Subject | Re: [PATCH] sched/fair: Fix per-CPU kthread and wakee stacking for asym CPU capacity |
| |
On Wed, 24 Nov 2021 at 15:15, Vincent Donnefort <vincent.donnefort@arm.com> wrote: > > A shortcut has been introduced in select_idle_sibling() to return prev_cpu > if the wakee is woken up by a per-CPU kthread. This is an issue for > asymmetric CPU capacity systems where the wakee might not fit prev_cpu > anymore. Evaluate asym_fits_capacity() for prev_cpu before using that > shortcut. > > Fixes: 52262ee567ad ("sched/fair: Allow a per-CPU kthread waking a task to stack on the same CPU, to fix XFS performance regression") > Signed-off-by: Vincent Donnefort <vincent.donnefort@arm.com> > > diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c > index 6291876a9d32..b90dc6fd86ca 100644 > --- a/kernel/sched/fair.c > +++ b/kernel/sched/fair.c > @@ -6410,7 +6410,8 @@ static int select_idle_sibling(struct task_struct *p, int prev, int target) > */ > if (is_per_cpu_kthread(current) && > prev == smp_processor_id() && > - this_rq()->nr_running <= 1) { > + this_rq()->nr_running <= 1 && > + asym_fits_capacity(task_util, prev)) {
With this patch, i don't think that 20211124154239.3191366-1-vincent.donnefort@arm.com is needed anymore
> return prev; > } > > -- > 2.25.1 >
| |