[Xenomai] Heads up: some race condition fixes for Xenomai 3

Henning Schild henning.schild at siemens.com
Tue Mar 7 19:34:44 CET 2017


Am Fri, 26 Jun 2015 16:20:29 +0200
schrieb Jan Kiszka <jan.kiszka at siemens.com>:

> Hi,
> 
> just pushed 3 patches to git.xenomai.org/xenomai-jki.git for-forge
> that are supposed to fix race conditions while manipulating
> xnthread::state and info (both need to be nklock-protected). Please
> review if finding and fixes make sense.
> 
>       cobalt/kernel: Fix locking for xnthread info manipulations
>       cobalt/kernel: Fix locking for setting XNFPU
>       cobalt/kernel: Rework thread debugging helpers
> 
> Maybe some of the issues also exist in Xenomai 2, didn't check yet.

After looking deeper into the the mysterious -EINTR i asked about a few
days ago we now got a trace that suggests something is going wrong. Jan
remembered the race in thread flag manipulation he found in Xeno3.

I did not do a thorough code analysis yet but instead just put two
asserts into xnthread_set_info and xnthread_clear_info.
1. !xnlock_is_owner(&nklock)
2. xnpod_current_thread() != thread_to_update

Both cases do happen. The flags are manipulated without holding the
lock and the flags are manipulated from another context. I guess that
suggests that the race found in xenomai3 is also in xenomai2.

Henning




More information about the Xenomai mailing list