[RFC PATCH v2 4/4] selftests/rseq: Implement rseq_mutex test program
Thomas Gleixner
tglx@linutronix.de
Thu Sep 28 19:55:20 GMT 2023
On Mon, May 29 2023 at 15:14, Mathieu Desnoyers wrote:
> +static void rseq_lock_slowpath(struct rseq_mutex *lock)
> +{
> + int i = 0;
> +
> + for (;;) {
> + struct rseq_abi_sched_state *expected = NULL, *self = rseq_get_sched_state(rseq_get_abi());
> +
> + if (__atomic_compare_exchange_n(&lock->owner, &expected, self, false,
> + __ATOMIC_ACQUIRE, __ATOMIC_RELAXED))
> + break;
> + //TODO: use rseq critical section to protect dereference of owner thread's
> + //rseq_abi_sched_state, combined with rseq fence at thread reclaim.
> + if ((RSEQ_READ_ONCE(expected->state) & RSEQ_ABI_SCHED_STATE_FLAG_ON_CPU) &&
For robust and PI futexes the futex value is an ABI between kernel and
user space. Sure, this is only meant for demonstration, but it's the
wrong direction.
Thanks,
tglx
More information about the Libc-alpha
mailing list