On Fri, Apr 26, 2024 at 11:43:51AM +0200, Florian Weimer wrote: > * André Almeida: > > > With FUTEX2_SPIN flag set during a futex_wait(), the futex value is > > expected to be the PID of the lock owner. Then, the kernel gets the > > task_struct of the corresponding PID, and checks if it's running. It > > spins until the futex is awaken, the task is scheduled out or if a > > timeout happens. If the lock owner is scheduled out at any time, then > > the syscall follows the normal path of sleeping as usual. > > PID or TID? TID, just like PI_LOCK I would presume. > I think we'd like to have at least one, possibly more, bits for free > use, so the kernel ID comparison should at least mask off the MSB, > possibly more. Yeah, it should be using FUTEX_TID_MASK -- just like PI_LOCK :-) I suppose the question is if this thing should then also imply FUTEX_WAITERS or not.