* [Xenomai-core] Posix mutex unit test fails on git head @ 2010-03-02 18:15 Jan Kiszka 2010-03-02 18:22 ` Jan Kiszka 0 siblings, 1 reply; 9+ messages in thread From: Jan Kiszka @ 2010-03-02 18:15 UTC (permalink / raw) To: Gilles Chanteperdrix; +Cc: xenomai-core Gilles, can you (or someone else) confirm this: # mutex-torture-posix simple_wait simple mutex_lock 1: 1 (Operation not permitted) I'm on a x86_64 target (2.6.32.8 with latest I-pipe), Xenomai is unpatched git head. [ But I'm currently facing general stability issues with 2.6.32 again. And sigtest is failing loudly here, typically hard lockups. Ugh. ] Jan -- Siemens AG, Corporate Technology, CT T DE IT 1 Corporate Competence Center Embedded Linux ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Xenomai-core] Posix mutex unit test fails on git head 2010-03-02 18:15 [Xenomai-core] Posix mutex unit test fails on git head Jan Kiszka @ 2010-03-02 18:22 ` Jan Kiszka 2010-03-02 18:24 ` Gilles Chanteperdrix 0 siblings, 1 reply; 9+ messages in thread From: Jan Kiszka @ 2010-03-02 18:22 UTC (permalink / raw) To: Gilles Chanteperdrix; +Cc: xenomai-core Jan Kiszka wrote: > Gilles, > > can you (or someone else) confirm this: > > # mutex-torture-posix > simple_wait > simple mutex_lock 1: 1 (Operation not permitted) > > I'm on a x86_64 target (2.6.32.8 with latest I-pipe), Xenomai is > unpatched git head. > Looks like a bug in the test case: We do not wrap sched_setscheduler which it uses, and my config does not auto-shadow main. Fix will follow. Jan -- Siemens AG, Corporate Technology, CT T DE IT 1 Corporate Competence Center Embedded Linux ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Xenomai-core] Posix mutex unit test fails on git head 2010-03-02 18:22 ` Jan Kiszka @ 2010-03-02 18:24 ` Gilles Chanteperdrix 2010-03-02 18:27 ` Jan Kiszka 0 siblings, 1 reply; 9+ messages in thread From: Gilles Chanteperdrix @ 2010-03-02 18:24 UTC (permalink / raw) To: Jan Kiszka; +Cc: xenomai-core Jan Kiszka wrote: > Jan Kiszka wrote: >> Gilles, >> >> can you (or someone else) confirm this: >> >> # mutex-torture-posix >> simple_wait >> simple mutex_lock 1: 1 (Operation not permitted) >> >> I'm on a x86_64 target (2.6.32.8 with latest I-pipe), Xenomai is >> unpatched git head. >> > > Looks like a bug in the test case: We do not wrap sched_setscheduler > which it uses, and my config does not auto-shadow main. Fix will follow. The test works here, but fails in cond_signaler, mutex_lock 2, just checked out v2.5.1 to see if we already had the bug. > > Jan > -- Gilles. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Xenomai-core] Posix mutex unit test fails on git head 2010-03-02 18:24 ` Gilles Chanteperdrix @ 2010-03-02 18:27 ` Jan Kiszka 2010-03-02 18:29 ` Gilles Chanteperdrix 0 siblings, 1 reply; 9+ messages in thread From: Jan Kiszka @ 2010-03-02 18:27 UTC (permalink / raw) To: Gilles Chanteperdrix; +Cc: xenomai-core Gilles Chanteperdrix wrote: > Jan Kiszka wrote: >> Jan Kiszka wrote: >>> Gilles, >>> >>> can you (or someone else) confirm this: >>> >>> # mutex-torture-posix >>> simple_wait >>> simple mutex_lock 1: 1 (Operation not permitted) >>> >>> I'm on a x86_64 target (2.6.32.8 with latest I-pipe), Xenomai is >>> unpatched git head. >>> >> Looks like a bug in the test case: We do not wrap sched_setscheduler >> which it uses, and my config does not auto-shadow main. Fix will follow. > > The test works here, but fails in cond_signaler, mutex_lock 2, just > checked out v2.5.1 to see if we already had the bug. > Weird. Works for me with this fix: diff --git a/src/testsuite/unit/mutex-torture.c b/src/testsuite/unit/mutex-torture.c index 70bda14..ebdd4f2 100644 --- a/src/testsuite/unit/mutex-torture.c +++ b/src/testsuite/unit/mutex-torture.c @@ -657,7 +657,7 @@ int main(void) /* Set scheduling parameters for the current process */ #ifdef XENO_POSIX sparam.sched_priority = 2; - sched_setscheduler(0, SCHED_FIFO, &sparam); + pthread_setschedparam(pthread_self(), SCHED_FIFO, &sparam); #else /* __NATIVE_SKIN__ */ rt_task_shadow(&main_tid, "main_task", 2, 0); #endif /* __NATIVE_SKIN__ */ # mutex-torture-posix simple_wait recursive_wait errorcheck_wait mode_switch pi_wait lock_stealing lock_stealing mutex_trylock: not supported simple_condwait recursive_condwait cond_signaler, mutex_lock 2 waited 0.854 us Jan -- Siemens AG, Corporate Technology, CT T DE IT 1 Corporate Competence Center Embedded Linux ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [Xenomai-core] Posix mutex unit test fails on git head 2010-03-02 18:27 ` Jan Kiszka @ 2010-03-02 18:29 ` Gilles Chanteperdrix 2010-03-02 18:30 ` Jan Kiszka 2010-03-02 20:24 ` Gilles Chanteperdrix 0 siblings, 2 replies; 9+ messages in thread From: Gilles Chanteperdrix @ 2010-03-02 18:29 UTC (permalink / raw) To: Jan Kiszka; +Cc: xenomai-core Jan Kiszka wrote: > Gilles Chanteperdrix wrote: >> Jan Kiszka wrote: >>> Jan Kiszka wrote: >>>> Gilles, >>>> >>>> can you (or someone else) confirm this: >>>> >>>> # mutex-torture-posix >>>> simple_wait >>>> simple mutex_lock 1: 1 (Operation not permitted) >>>> >>>> I'm on a x86_64 target (2.6.32.8 with latest I-pipe), Xenomai is >>>> unpatched git head. >>>> >>> Looks like a bug in the test case: We do not wrap sched_setscheduler >>> which it uses, and my config does not auto-shadow main. Fix will follow. >> The test works here, but fails in cond_signaler, mutex_lock 2, just >> checked out v2.5.1 to see if we already had the bug. >> > > Weird. Works for me with this fix: > > diff --git a/src/testsuite/unit/mutex-torture.c b/src/testsuite/unit/mutex-torture.c > index 70bda14..ebdd4f2 100644 > --- a/src/testsuite/unit/mutex-torture.c > +++ b/src/testsuite/unit/mutex-torture.c > @@ -657,7 +657,7 @@ int main(void) > /* Set scheduling parameters for the current process */ > #ifdef XENO_POSIX > sparam.sched_priority = 2; > - sched_setscheduler(0, SCHED_FIFO, &sparam); > + pthread_setschedparam(pthread_self(), SCHED_FIFO, &sparam); > #else /* __NATIVE_SKIN__ */ > rt_task_shadow(&main_tid, "main_task", 2, 0); > #endif /* __NATIVE_SKIN__ */ > > > # mutex-torture-posix > simple_wait > recursive_wait > errorcheck_wait > mode_switch > pi_wait > lock_stealing > lock_stealing mutex_trylock: not supported > simple_condwait > recursive_condwait > cond_signaler, mutex_lock 2 waited 0.854 us No, that is a bug. We should have waited 10ms, and we wait less than a us. -- Gilles. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Xenomai-core] Posix mutex unit test fails on git head 2010-03-02 18:29 ` Gilles Chanteperdrix @ 2010-03-02 18:30 ` Jan Kiszka 2010-03-02 18:34 ` Gilles Chanteperdrix 2010-03-02 20:24 ` Gilles Chanteperdrix 1 sibling, 1 reply; 9+ messages in thread From: Jan Kiszka @ 2010-03-02 18:30 UTC (permalink / raw) To: Gilles Chanteperdrix; +Cc: xenomai-core Gilles Chanteperdrix wrote: > Jan Kiszka wrote: >> Gilles Chanteperdrix wrote: >>> Jan Kiszka wrote: >>>> Jan Kiszka wrote: >>>>> Gilles, >>>>> >>>>> can you (or someone else) confirm this: >>>>> >>>>> # mutex-torture-posix >>>>> simple_wait >>>>> simple mutex_lock 1: 1 (Operation not permitted) >>>>> >>>>> I'm on a x86_64 target (2.6.32.8 with latest I-pipe), Xenomai is >>>>> unpatched git head. >>>>> >>>> Looks like a bug in the test case: We do not wrap sched_setscheduler >>>> which it uses, and my config does not auto-shadow main. Fix will follow. >>> The test works here, but fails in cond_signaler, mutex_lock 2, just >>> checked out v2.5.1 to see if we already had the bug. >>> >> Weird. Works for me with this fix: >> >> diff --git a/src/testsuite/unit/mutex-torture.c b/src/testsuite/unit/mutex-torture.c >> index 70bda14..ebdd4f2 100644 >> --- a/src/testsuite/unit/mutex-torture.c >> +++ b/src/testsuite/unit/mutex-torture.c >> @@ -657,7 +657,7 @@ int main(void) >> /* Set scheduling parameters for the current process */ >> #ifdef XENO_POSIX >> sparam.sched_priority = 2; >> - sched_setscheduler(0, SCHED_FIFO, &sparam); >> + pthread_setschedparam(pthread_self(), SCHED_FIFO, &sparam); >> #else /* __NATIVE_SKIN__ */ >> rt_task_shadow(&main_tid, "main_task", 2, 0); >> #endif /* __NATIVE_SKIN__ */ >> >> >> # mutex-torture-posix >> simple_wait >> recursive_wait >> errorcheck_wait >> mode_switch >> pi_wait >> lock_stealing >> lock_stealing mutex_trylock: not supported >> simple_condwait >> recursive_condwait >> cond_signaler, mutex_lock 2 waited 0.854 us > > No, that is a bug. We should have waited 10ms, and we wait less than a us. > Ah - well, we do not properly return ETIMEDOUT anymore, do we? Jan -- Siemens AG, Corporate Technology, CT T DE IT 1 Corporate Competence Center Embedded Linux ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Xenomai-core] Posix mutex unit test fails on git head 2010-03-02 18:30 ` Jan Kiszka @ 2010-03-02 18:34 ` Gilles Chanteperdrix 0 siblings, 0 replies; 9+ messages in thread From: Gilles Chanteperdrix @ 2010-03-02 18:34 UTC (permalink / raw) To: Jan Kiszka; +Cc: xenomai-core Jan Kiszka wrote: > Gilles Chanteperdrix wrote: >> Jan Kiszka wrote: >>> Gilles Chanteperdrix wrote: >>>> Jan Kiszka wrote: >>>>> Jan Kiszka wrote: >>>>>> Gilles, >>>>>> >>>>>> can you (or someone else) confirm this: >>>>>> >>>>>> # mutex-torture-posix >>>>>> simple_wait >>>>>> simple mutex_lock 1: 1 (Operation not permitted) >>>>>> >>>>>> I'm on a x86_64 target (2.6.32.8 with latest I-pipe), Xenomai is >>>>>> unpatched git head. >>>>>> >>>>> Looks like a bug in the test case: We do not wrap sched_setscheduler >>>>> which it uses, and my config does not auto-shadow main. Fix will follow. >>>> The test works here, but fails in cond_signaler, mutex_lock 2, just >>>> checked out v2.5.1 to see if we already had the bug. >>>> >>> Weird. Works for me with this fix: >>> >>> diff --git a/src/testsuite/unit/mutex-torture.c b/src/testsuite/unit/mutex-torture.c >>> index 70bda14..ebdd4f2 100644 >>> --- a/src/testsuite/unit/mutex-torture.c >>> +++ b/src/testsuite/unit/mutex-torture.c >>> @@ -657,7 +657,7 @@ int main(void) >>> /* Set scheduling parameters for the current process */ >>> #ifdef XENO_POSIX >>> sparam.sched_priority = 2; >>> - sched_setscheduler(0, SCHED_FIFO, &sparam); >>> + pthread_setschedparam(pthread_self(), SCHED_FIFO, &sparam); >>> #else /* __NATIVE_SKIN__ */ >>> rt_task_shadow(&main_tid, "main_task", 2, 0); >>> #endif /* __NATIVE_SKIN__ */ >>> >>> >>> # mutex-torture-posix >>> simple_wait >>> recursive_wait >>> errorcheck_wait >>> mode_switch >>> pi_wait >>> lock_stealing >>> lock_stealing mutex_trylock: not supported >>> simple_condwait >>> recursive_condwait >>> cond_signaler, mutex_lock 2 waited 0.854 us >> No, that is a bug. We should have waited 10ms, and we wait less than a us. >> > > Ah - well, we do not properly return ETIMEDOUT anymore, do we? No, it is a recursive mutex issue. We are able to acquire a mutex, whereas we should not, someone else has it. What I do not understand, is that I am sure I had tested this before the 2.5.0 release, and that even with the 2.5.0 the test fails. > > Jan > -- Gilles. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Xenomai-core] Posix mutex unit test fails on git head 2010-03-02 18:29 ` Gilles Chanteperdrix 2010-03-02 18:30 ` Jan Kiszka @ 2010-03-02 20:24 ` Gilles Chanteperdrix 2010-03-02 21:41 ` Jan Kiszka 1 sibling, 1 reply; 9+ messages in thread From: Gilles Chanteperdrix @ 2010-03-02 20:24 UTC (permalink / raw) To: Jan Kiszka; +Cc: xenomai-core Gilles Chanteperdrix wrote: > Jan Kiszka wrote: >> Gilles Chanteperdrix wrote: >>> Jan Kiszka wrote: >>>> Jan Kiszka wrote: >>>>> Gilles, >>>>> >>>>> can you (or someone else) confirm this: >>>>> >>>>> # mutex-torture-posix >>>>> simple_wait >>>>> simple mutex_lock 1: 1 (Operation not permitted) >>>>> >>>>> I'm on a x86_64 target (2.6.32.8 with latest I-pipe), Xenomai is >>>>> unpatched git head. >>>>> >>>> Looks like a bug in the test case: We do not wrap sched_setscheduler >>>> which it uses, and my config does not auto-shadow main. Fix will follow. >>> The test works here, but fails in cond_signaler, mutex_lock 2, just >>> checked out v2.5.1 to see if we already had the bug. >>> >> Weird. Works for me with this fix: >> >> diff --git a/src/testsuite/unit/mutex-torture.c b/src/testsuite/unit/mutex-torture.c >> index 70bda14..ebdd4f2 100644 >> --- a/src/testsuite/unit/mutex-torture.c >> +++ b/src/testsuite/unit/mutex-torture.c >> @@ -657,7 +657,7 @@ int main(void) >> /* Set scheduling parameters for the current process */ >> #ifdef XENO_POSIX >> sparam.sched_priority = 2; >> - sched_setscheduler(0, SCHED_FIFO, &sparam); >> + pthread_setschedparam(pthread_self(), SCHED_FIFO, &sparam); >> #else /* __NATIVE_SKIN__ */ >> rt_task_shadow(&main_tid, "main_task", 2, 0); >> #endif /* __NATIVE_SKIN__ */ >> >> >> # mutex-torture-posix >> simple_wait >> recursive_wait >> errorcheck_wait >> mode_switch >> pi_wait >> lock_stealing >> lock_stealing mutex_trylock: not supported >> simple_condwait >> recursive_condwait >> cond_signaler, mutex_lock 2 waited 0.854 us > > No, that is a bug. We should have waited 10ms, and we wait less than a us. > Ok. Should be fixed by commit af93ec87f975b387243127090b578d57922b38dc. The bug was on the same goddamn pass as the one we are trying to fix to return proper return values to user-space. -- Gilles. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Xenomai-core] Posix mutex unit test fails on git head 2010-03-02 20:24 ` Gilles Chanteperdrix @ 2010-03-02 21:41 ` Jan Kiszka 0 siblings, 0 replies; 9+ messages in thread From: Jan Kiszka @ 2010-03-02 21:41 UTC (permalink / raw) To: Gilles Chanteperdrix; +Cc: xenomai-core [-- Attachment #1: Type: text/plain, Size: 2186 bytes --] Gilles Chanteperdrix wrote: > Gilles Chanteperdrix wrote: >> Jan Kiszka wrote: >>> Gilles Chanteperdrix wrote: >>>> Jan Kiszka wrote: >>>>> Jan Kiszka wrote: >>>>>> Gilles, >>>>>> >>>>>> can you (or someone else) confirm this: >>>>>> >>>>>> # mutex-torture-posix >>>>>> simple_wait >>>>>> simple mutex_lock 1: 1 (Operation not permitted) >>>>>> >>>>>> I'm on a x86_64 target (2.6.32.8 with latest I-pipe), Xenomai is >>>>>> unpatched git head. >>>>>> >>>>> Looks like a bug in the test case: We do not wrap sched_setscheduler >>>>> which it uses, and my config does not auto-shadow main. Fix will follow. >>>> The test works here, but fails in cond_signaler, mutex_lock 2, just >>>> checked out v2.5.1 to see if we already had the bug. >>>> >>> Weird. Works for me with this fix: >>> >>> diff --git a/src/testsuite/unit/mutex-torture.c b/src/testsuite/unit/mutex-torture.c >>> index 70bda14..ebdd4f2 100644 >>> --- a/src/testsuite/unit/mutex-torture.c >>> +++ b/src/testsuite/unit/mutex-torture.c >>> @@ -657,7 +657,7 @@ int main(void) >>> /* Set scheduling parameters for the current process */ >>> #ifdef XENO_POSIX >>> sparam.sched_priority = 2; >>> - sched_setscheduler(0, SCHED_FIFO, &sparam); >>> + pthread_setschedparam(pthread_self(), SCHED_FIFO, &sparam); >>> #else /* __NATIVE_SKIN__ */ >>> rt_task_shadow(&main_tid, "main_task", 2, 0); >>> #endif /* __NATIVE_SKIN__ */ >>> >>> >>> # mutex-torture-posix >>> simple_wait >>> recursive_wait >>> errorcheck_wait >>> mode_switch >>> pi_wait >>> lock_stealing >>> lock_stealing mutex_trylock: not supported >>> simple_condwait >>> recursive_condwait >>> cond_signaler, mutex_lock 2 waited 0.854 us >> No, that is a bug. We should have waited 10ms, and we wait less than a us. >> > > Ok. Should be fixed by commit af93ec87f975b387243127090b578d57922b38dc. > The bug was on the same goddamn pass as the one we are trying to fix to > return proper return values to user-space. > Yes, looks good! I've hacked up some additional (basic) test cases for times mutex and cond waiting, and now I'm looking into the posix side of that infamous workaround. Jan [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 257 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2010-03-02 21:41 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-03-02 18:15 [Xenomai-core] Posix mutex unit test fails on git head Jan Kiszka 2010-03-02 18:22 ` Jan Kiszka 2010-03-02 18:24 ` Gilles Chanteperdrix 2010-03-02 18:27 ` Jan Kiszka 2010-03-02 18:29 ` Gilles Chanteperdrix 2010-03-02 18:30 ` Jan Kiszka 2010-03-02 18:34 ` Gilles Chanteperdrix 2010-03-02 20:24 ` Gilles Chanteperdrix 2010-03-02 21:41 ` Jan Kiszka
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.