Re: [PATCH 1/2] sched/core: Allow newidle for core-sched

From: Peter Zijlstra

Date: Thu Jun 25 2026 - 08:42:08 EST


On Thu, Jun 25, 2026 at 05:26:03AM +0530, K Prateek Nayak wrote:
> Should we treat core_pick similar to task_on_cpu() and go down the
> stopper route like:
>
> diff --git a/kernel/sched/core.c b/kernel/sched/core.c
> index 2f4530eb543f..e7f64f34aa4f 100644
> --- a/kernel/sched/core.c
> +++ b/kernel/sched/core.c
> @@ -3049,7 +3049,9 @@ static int affine_move_task(struct rq *rq, struct task_struct *p, struct rq_flag
> return -EINVAL;
> }
>
> - if (task_on_cpu(rq, p) || READ_ONCE(p->__state) == TASK_WAKING) {
> + if (task_on_cpu(rq, p) ||
> + task_on_core(rq, p) ||
> + READ_ONCE(p->__state) == TASK_WAKING) {
> /*
> * MIGRATE_ENABLE gets here because 'p == current', but for
> * anything else we cannot do is_migration_disabled(), punt

Bah, yes. Let me go stare more at this.