Re: [PATCH v4] posix-timers: Prefer delivery of signals to the current thread

From: Oleg Nesterov
Date: Sat Jan 28 2023 - 14:57:42 EST


Dmitry,

I agree with what you said, just one note...

On 01/27, Dmitry Vyukov wrote:
>
> After this change the test passes quickly (within a second for me).

yet perhaps it makes sense to slightly change it? It does

+static void *distribution_thr(void *arg) {
+ while (__atomic_load_n(&remain, __ATOMIC_RELAXED));
+ return NULL;
+}

so distribution_thr() eats CPU even after this thread gets a signal and thus
(in theory) it can "steal" cpu_timer_fire() from other threads unpredictably
long ? How about

- while (__atomic_load_n(&remain, __ATOMIC_RELAXED));
+ while (__atomic_load_n(&got_signal, __ATOMIC_RELAXED));

?

Oleg.