* [PATCH evl] evl/thread: fix lost kick of a thread running on a remote CPU
@ 2026-11-10 18:11 Tobias Schaffner
2026-11-11 8:32 ` Philippe Gerum
0 siblings, 1 reply; 2+ messages in thread
From: Tobias Schaffner @ 2026-11-10 18:11 UTC (permalink / raw)
To: xenomai; +Cc: rpm, Tobias Schaffner
evl_kick_thread() skips the mayday if the kicked thread is current on
its own runqueue instead of the local one. A thread running out-of-band
on another CPU is therefore never kicked and keeps running with a
pending signal.
Check against the local runqueue again.
Fixes: fecf5883ecd3 ("evl/sched: get rid of this_evl_rq_thread()")
Signed-off-by: Tobias Schaffner <tobias.schaffner@siemens.com>
---
kernel/evl/thread.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/evl/thread.c b/kernel/evl/thread.c
index 2aa07b494d40..94d073a1b7e7 100644
--- a/kernel/evl/thread.c
+++ b/kernel/evl/thread.c
@@ -1323,7 +1323,7 @@ void evl_kick_thread(struct evl_thread *thread)
* stage demotion took place.
*/
if (thread->state & EVL_T_USER) {
- if (rq->curr != thread)
+ if (this_evl_rq()->curr != thread)
dovetail_send_mayday(p);
if (thread->state & EVL_THREAD_LAZY_MASK)
base-commit: a3ad77d7ba3eac8a73f64026272747c01dd84fc6
--
2.53.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH evl] evl/thread: fix lost kick of a thread running on a remote CPU
2026-11-10 18:11 [PATCH evl] evl/thread: fix lost kick of a thread running on a remote CPU Tobias Schaffner
@ 2026-11-11 8:32 ` Philippe Gerum
0 siblings, 0 replies; 2+ messages in thread
From: Philippe Gerum @ 2026-11-11 8:32 UTC (permalink / raw)
To: Tobias Schaffner; +Cc: xenomai
Tobias Schaffner <tobias.schaffner@siemens.com> writes:
> evl_kick_thread() skips the mayday if the kicked thread is current on
> its own runqueue instead of the local one. A thread running out-of-band
> on another CPU is therefore never kicked and keeps running with a
> pending signal.
>
> Check against the local runqueue again.
>
> Fixes: fecf5883ecd3 ("evl/sched: get rid of this_evl_rq_thread()")
> Signed-off-by: Tobias Schaffner <tobias.schaffner@siemens.com>
> ---
> kernel/evl/thread.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/evl/thread.c b/kernel/evl/thread.c
> index 2aa07b494d40..94d073a1b7e7 100644
> --- a/kernel/evl/thread.c
> +++ b/kernel/evl/thread.c
> @@ -1323,7 +1323,7 @@ void evl_kick_thread(struct evl_thread *thread)
> * stage demotion took place.
> */
> if (thread->state & EVL_T_USER) {
> - if (rq->curr != thread)
> + if (this_evl_rq()->curr != thread)
> dovetail_send_mayday(p);
>
> if (thread->state & EVL_THREAD_LAZY_MASK)
>
> base-commit: a3ad77d7ba3eac8a73f64026272747c01dd84fc6
Merged, thanks (upstreaming soon).
--
Philippe.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-11-11 8:32 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-10 18:11 [PATCH evl] evl/thread: fix lost kick of a thread running on a remote CPU Tobias Schaffner
2026-11-11 8:32 ` Philippe Gerum
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.