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
>>
> 
>