RE: [PATCH] sched/core: avoid calling select_task_rq if bound to one CPU for exec
From: Jianyong Wu
Date: Thu Nov 27 2025 - 04:44:00 EST
Hi Peter,
Thanks for reply.
> -----Original Message-----
> From: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> Sent: Thursday, November 27, 2025 4:31 PM
> To: Jianyong Wu <wujianyong@xxxxxxxx>
> Cc: mingo@xxxxxxxxxx; juri.lelli@xxxxxxxxxx; vincent.guittot@xxxxxxxxxx;
> dietmar.eggemann@xxxxxxx; rostedt@xxxxxxxxxxx; bsegall@xxxxxxxxxx;
> mgorman@xxxxxxx; vschneid@xxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> jianyong.wu@xxxxxxxxxxx; Yibin Liu <liuyibin@xxxxxxxx>
> Subject: Re: [PATCH] sched/core: avoid calling select_task_rq if bound to one
> CPU for exec
>
> On Wed, Nov 26, 2025 at 05:04:01PM +0800, Jianyong Wu wrote:
>
> > kernel/sched/core.c | 6 +++++-
> > 1 file changed, 5 insertions(+), 1 deletion(-)
> >
> > diff --git a/kernel/sched/core.c b/kernel/sched/core.c index
> > f754a60de848..c1e9f633cfb0 100644
> > --- a/kernel/sched/core.c
> > +++ b/kernel/sched/core.c
> > @@ -5442,7 +5442,11 @@ void sched_exec(void)
> > int dest_cpu;
> >
> > scoped_guard (raw_spinlock_irqsave, &p->pi_lock) {
> > - dest_cpu = p->sched_class->select_task_rq(p, task_cpu(p), WF_EXEC);
> > + if (p->nr_cpus_allowed > 1 && !is_migration_disabled(p))
> > + dest_cpu = p->sched_class->select_task_rq(p, task_cpu(p),
> WF_EXEC);
> > + else
> > + dest_cpu = cpumask_any(p->cpus_ptr);
> > +
>
> Instead of duplicating this, could we not just call select_task_rq() here?
Do you mean using select_task_rq() instead of making these changes? I think that works. I'll make this change in the next version.
Thanks
Jianyong