Re: [PATCH sched_ext/for-6.11] sched_ext: Reverting @p->sched_class if @p->disallow is set

From: Zhangqiao (2012 lab)
Date: Tue Jul 16 2024 - 22:02:06 EST




在 2024/7/17 4:48, Tejun Heo 写道:
Hello,

On Tue, Jul 16, 2024 at 07:32:09PM +0800, Zhangqiao (2012 lab) wrote:
在 2024/7/12 2:57, Tejun Heo 写道:
On Thu, Jul 11, 2024 at 07:07:20PM +0800, Zhangqiao (2012 lab) wrote:
...
if (p->policy == SCHED_EXT) {
p->policy = SCHED_NORMAL;
+ p->sched_class = &fair_sched_class;
atomic_long_inc(&scx_nr_rejected);
Did you see any issues with the existing implementation? The policy is set
before the task is attached, so it should work fine. Also, you can't change
sched_class by just assigning to it.
What does "attach" mean? I'm not sure. p->sched_class is assigned in
__sched_fork() which is performed before scx_ops_init_task().
Ah, I see what you mean. I was referring to the classs switching operations
in scx_ops_enable(). You're looking at the fork path. I don't think we can

Yes, i was referring to the fork path.

switch sched_class at that point and the .disallow mechanism is there to
allow the scheduler to filter out tasks on scheduler start. I'll update the
code so that .disallow is only allowed during the initial attach.

Thanks.