Re: [PATCH xenomai-images] ci: do not skip tests on vm that have been relaxed
Tobias Schaffner <[email protected]> Fri, 3 Jul 2026 16:00:21 +0200
| Newsgroups | dev.linux.lists.xenomai |
|---|---|
| Message-ID | <[email protected]> |
On 7/3/26 14:07, Jan Kiszka wrote:
> On 03.07.26 13:54, Tobias Schaffner wrote:
>> Hi all,
>>
>> in some of my test runs the sched-tp-overrun test was failing with:
>> 2026-06-23T17:25:44 ../tests/sched-tp-overrun.c:119: FAILED:
>> evl_read_observable(tfd, &nf, 1) (=Resource temporarily unavailable)
>> 2026-06-23T17:25:44 ** sched-tp-overrun: BROKEN
>>
>> I only see this on virtual targets.
>> e.g.: https://code.siemens.com/ebsy/debian/xenomai-images/-/jobs/393605372
>> Mostly on arm but also saw this on qemu-amd64 in one of my recent runs.
>>
>
> Maybe improper/missing synchronization during test startup? Or when is
> this hit?
Does not look like a synchronization problem to me.
The key part of the test failure is this combination:
/*
* Trigger an overrun condition by staying busy for longer
* than the duration of our allotted time window.
*/
for (;;) {
evl_read_clock(EVL_CLOCK_MONOTONIC, &now);
if (timespec_sub_ns(&now, &start) > OVERRUN_TIME)
break;
}
/*
* Now check whether we received the overrun event as
* expected. Since non-blocking input is enabled, a lack of
* notification would amount to an error (EAGAIN).
*/
__Tcall_assert(ret, evl_read_observable(tfd, &nf, 1));
The OVERRUN_TIME of 200us seems to be not enough to trigger the overrun
or in some cases or at least the message was not send in time.
I suspected the issue to be time stealing but saw the fixup parts of the
tp scheduler trying to handle missed time frames. I think we just have
to increase the overrun time but not sure how much to still keep the
fixup parts tested. I guess these code paths are only exercised on
virtual targets.
Best,
Tobias
> Jan
>
>> Best,
>> Tobias
>>
>> On 7/3/26 13:48, Tobias Schaffner wrote:
>>> Remove the broad skip list previously used for tests that fail on QEMU
>>> targets. The list is not needed anymore as the evl test suite autodetects
>>> if it is running in a VM and relaxes the tests as needed.
>>>
>>> Signed-off-by: Tobias Schaffner <[email protected]>
>>> ---
>>> ci/lib/gitlab-ci-base.yml | 3 +--
>>> 1 file changed, 1 insertion(+), 2 deletions(-)
>>>
>>> diff --git a/ci/lib/gitlab-ci-base.yml b/ci/lib/gitlab-ci-base.yml
>>> index dfb33ad..0540628 100644
>>> --- a/ci/lib/gitlab-ci-base.yml
>>> +++ b/ci/lib/gitlab-ci-base.yml
>>> @@ -123,7 +123,6 @@ default:
>>> variables:
>>> ADDITIONAL_XENO_TEST_ARGS: "--vm"
>>> ADDITIONAL_TEST_TIMEOUT_MINUTES: 25
>>> - EVL_TESTS_SKIP_PATTERN: "sched-quota-accuracy|sched-tp-accuracy|
>>> sched-tp-overrun|monitor-event-untrack"
>>> rules:
>>> - *test-qemu-rules
>>> @@ -174,7 +173,7 @@ default:
>>> extends: .test-qemu
>>> variables:
>>> TARGET: qemu-riscv64
>>> - EVL_TESTS_SKIP_PATTERN: "ptrace-sync|sched-quota-accuracy|sched-
>>> tp-accuracy|sched-tp-overrun|monitor-event-untrack"
>>> + EVL_TESTS_SKIP_PATTERN: "ptrace-sync"
>>> rules:
>>> - if: '$XENOMAI_VERSION != "4-next"'
>>> when: never
>>
>
>