Re: [PATCH sched_ext/for-6.14-fixes 1/2] sched_ext: Implement auto local dispatching of migration disabled tasks

From: Tejun Heo
Date: Fri Feb 07 2025 - 17:44:14 EST


On Fri, Feb 07, 2025 at 11:36:08PM +0100, Andrea Righi wrote:
> > @@ -2014,6 +2029,11 @@ static void do_enqueue_task(struct rq *r
> > unlikely(p->flags & PF_EXITING))
> > goto local;
> >
> > + /* see %SCX_OPS_ENQ_MIGRATION_DISABLED */
> > + if (!static_branch_unlikely(&scx_ops_enq_migration_disabled) &&
> > + is_migration_disabled(p))
> > + goto local;
>
> Maybe not in this patch set, but it'd be nice to have an event counter for
> this, as skipping ops.enqueue() might introduce latency issues. Having a
> feedback could help to determine if we need to enable
> SCX_OPS_ENQ_MIGRATION_DISABLED in some schedulers.

Yeah, this patch is headed for sched_ext/for-6.14-fixes and the counters are
in for-6.15, so that can come after this lands in for-6.14-fixes and that
gets pulled into for-6.15.

> I'm also a bit conflicted if the default should be on or off, we're
> changing the previous behavior, but OTOH this is going to prevent some
> potential breakage (due to the nr_cpus_allowed mismatch) and server
> workload is going to benefit from this, so it seems that there are more
> pros than cons at dispatching migration_disabled tasks directly by default.

Hmm.. I didn't see a lot of migrate_disable() while testing with stress-ng
and migrate_disable() isn't used that much in the kernel to begin with. Do
you happen to know where migrate_disable() was coming from when you saw them
with bpfland?

Thanks.

--
tejun