[LITMUS^RT] issue with P-RES

Laurent Pautet laurent.pautet at telecom-paristech.fr
Mon Feb 24 19:12:01 CET 2020


On 24/02/2020 09:57, Björn Brandenburg wrote:
 >> On 22. Feb 2020, at 23:23, Laurent Pautet 
<laurent.pautet at telecom-paristech.fr> wrote:
 >>
 >> In the slides, rtspin is not used either. Is rtspin working under 
P-RES ?
 > Yes, it is: 
https://github.com/LITMUS-RT/liblitmus/blob/master/doc/howto-use-resctl.md#launching-rtspin-in-a-reservation
 >
 > Short: use the -r option to specify the ID of the reservation it 
should run in.

Hi Björn.

When I try the following commands, rtspin fails :

setsched Linux
setsched P-RES
resctl -n 100 -c 1 -t table-driven -m 100 '[0, 50)'
rtspin -w -r 100 50 100 5
could not become RT task: Invalid argument

But I realized that the error message is misleading ; the issue is that 
I have to assign the task to core 1 *again* with -p 1.
When I add -p 1, it works.

 >> How to run realtime tasks that execute for their wcet ?
 > I don’t understand the question. P-RES allows tasks to execute for 
their full allocated budget, modulo overheads.

As I did not manage to use rtspin, I did not manage to experiment a 
situation in which I reserve a slot of 20 ms for a task and use only 10 
ms of it (not the full allocated slot).

But once again, I understand now that I have to force the assignment of 
the task to the core (-p 1) although the reservation was already 
assigned to it (-c 1).

resctl -n 100 -c 1 -t table-driven -m 100 '[0, 50)'
rtspin -w -p 1 -r 100 40 100 5

and the task executes for 40 ms in a time window of 50 ms

Problem solved. Thanks for your help.

-- 
--  Laurent




More information about the litmus-dev mailing list