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