Re: [libevl][PATCH 2/2] tests: sched-quota-accuracy: Add preempting FIFO thread

Philippe Gerum <[email protected]> Sat, 20 Jun 2026 13:17:01 +0200
Newsgroups dev.linux.lists.xenomai
Message-ID <[email protected]>
Philippe Gerum <[email protected]> writes:

> Jan Kiszka <[email protected]> writes:
>
>> From: Jan Kiszka <[email protected]>
>>
>> Test that higher-prio SCHED_FIFO threads do not run on the bill of
>> SCHED_QUOTA threads and that their accounting is not otherwise
>> disturbed.
>>
>
> This patch introduced a regression when determining the accuracy of the
> policy with respect to allotting threads the expected runtime budget:
>
> root@phytec-mira-evl:~# evl test sched-quota-accuracy
> sched-quota-accuracy: 494.0%
>
> The proper result would rather be close to the following:
>
> root@phytec-mira-evl:~# evl test sched-quota-accuracy
> sched-quota-accuracy: 99.1%

Ok, I guess the fact that the calibration process does not factor in the
disruptor explains the full breakage we have with the accounting now:

root@phytec-mira-evl:~# evl test sched-quota-accuracy -- -v
picked CPU1 for execution
CPU1: calibrating: 893547 loops/sec
CPU1: new thread group #0, quota sum is 10%
CPU1: done quota_thread[0], count=150399
CPU1: done quota_thread[1], count=145636
CPU1: done quota_thread[2], count=141552
CPU1: 3 threads: cap=10%, effective=49.0%, disruption=49.6%
sched-quota-accuracy: 489.7%

Which does not make any sense since the effective value should be capped
at 10% in the above case, compared to the nominal (full) report which
should be:

root@phytec-mira-evl:~# evl test sched-quota-accuracy -- -v
picked CPU1 for execution
CPU1: calibrating: 899203 loops/sec
CPU1: new thread group #0, quota sum is 10%
CPU1: done quota_thread[0], count=26818
CPU1: done quota_thread[1], count=26709
CPU1: done quota_thread[2], count=35612
CPU1: 3 threads: cap=10%, effective=9.9%
sched-quota-accuracy: 99.1%

Dropping this patch from the -next branch for now.

-- 
Philippe.