* [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.