Re: [POC][RFC][PATCH v2] sched: Extended Scheduler Time Slice

From: Steven Rostedt
Date: Fri Oct 27 2023 - 12:44:27 EST


On Fri, 27 Oct 2023 12:21:45 -0400
Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx> wrote:

> > Attached is the updated test program.
>
> I think you'll want to modify the semantic of your "cr_flags" field so
> it supports nested locks as well. You can change this cr_flags for a
> nesting counter. The "yield" bit could be one of the bits of that
> counter (e.g. lowest bit).

Hmm, yeah, we could just have it be: bit 0 set by the kernel, and allow
user space set any bit above that to say "I'm in a critical section". Then,
the kernel would do:

if (cr_flags & ~1) // in critical section

and this would allow user space to us cr_flags as the nested counter if it
wants to. I just don't want that to be a kernel requirement, but allowing
*any* bit to be set above bit 0 would allow user space to decide that or
not.

>
> Therefore extend() become add 0x2, and unextend() become a sub 0x2, and
> you can check the lowest bit for yield hint.

Right, that makes sense. I'll update that in the next version.

Thanks!

-- Steve