<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Dear Björn,</p>
<p>My name is Cristina Stângaciu. I am currently working at a
research project which may include an implementation of a
table-driven (time-triggered) scheduling algorithm. I would like
to choose LITMUS as a support for my proof of concept, but, I have
some questions.</p>
<p>If it is not too much trouble, I would kindly request a little
help: <br>
</p>
<p>1. Is it possible to synchronize reservations, when using P-RES?
How else could I obtain a perfectly periodical (jitterless)
execution for a given thread (considering job execution start
times)?<span style="color: rgb(0, 0, 0); font-family: Arial,
Helvetica, sans-serif; font-size: 16px; font-style: normal;
font-variant-ligatures: normal; font-variant-caps: normal;
font-weight: 400; letter-spacing: normal; orphans: 2;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; widows: 2; word-spacing: 0px;
-webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
255); text-decoration-style: initial; text-decoration-color:
initial; display: inline !important; float: none;"></span></p>
<p>I have tried to use polling-periodic reservations:<br>
</p>
<p><font size="-1"><i>setsched Linux</i><i><br>
</i><i>root@dLitmus:/sandbox/my-demo# setsched P-RES</i><i><br>
</i><i>root@dLitmus:/sandbox/my-demo# showsched</i><i><br>
</i><i>P-RES</i><i><br>
</i><i>root@dLitmus:/sandbox/my-demo# resctl -n 1001 -t
polling-periodic -c 1 -b 5 -p 10</i><i><br>
</i><i>root@dLitmus:/sandbox/my-demo# resctl -n 1002 -t
polling-periodic -c 1 -b 2 -p 10</i><i><br>
</i><i>root@dLitmus:/sandbox/my-demo# rtspin -w -p 1 -r 1001 3
10 5&</i><i><br>
</i><i>[1] 3493</i><i><br>
</i><i>root@dLitmus:/sandbox/my-demo# rtspin -w -p 1 -r 1002 1
10 5&</i><i><br>
</i><i>[2] 3494</i><i><br>
</i><i>root@dLitmus:/sandbox/my-demo# release_ts</i><i><br>
</i><i>Synchronous release at time 2901000.00ms.</i><i><br>
</i><i>Released 2 real-time tasks.</i><i><br>
</i><i>root@dLitmus:/sandbox/my-demo# wait</i><i><br>
</i><i>[1]- Done rtspin -w -p 1 -r 1001 3 10
5</i><i><br>
</i><i>[2]+ Done rtspin -w -p 1 -r 1002 1 10
5</i></font><br>
<br>
</p>
<p>The result (...08-48-17.png) is attached to this email but it
doesn't seem to be a jitterless execution. <br>
</p>
<p>I have also tried to use table-driven reservations:</p>
<p><font size="-1"><i>setsched Linux</i><i><br>
</i><i>root@dLitmus:/sandbox/my-demo# setsched P-RES</i><i><br>
</i><i>root@dLitmus:/sandbox/my-demo# showsched</i><i><br>
</i><i>P-RES</i><i><br>
</i><i>root@dLitmus:/sandbox/my-demo# resctl -n 1001 -t
table-driven -c 1 -m 10 '[0,5)'</i></font></p>
<p><font size="-1"><i>root@dLitmus:/sandbox/my-demo# resctl -n 1002
-t table-driven -c 1 -m 10 '[5,7)' </i><i><br>
</i><i>root@dLitmus:/sandbox/my-demo# rtspin -w -p 1 -r 1001 3
10 5&</i><i><br>
</i><i>[1] 3775</i><i><br>
</i><i>root@dLitmus:/sandbox/my-demo# rtspin -w -p 1 -r 1002 1
10 5&</i><i><br>
</i><i>[2] 3776</i><i><br>
</i><i>root@dLitmus:/sandbox/my-demo# release_ts</i><i><br>
</i><i>Synchronous release at time 3381000.00ms.</i><i><br>
</i><i>Released 2 real-time tasks.</i><i><br>
</i><i>root@dLitmus:/sandbox/my-demo# wait</i><i><br>
</i><i>[1]- Done rtspin -w -p 1 -r 1001 3 10
5</i><i><br>
</i><i>[2]+ Done rtspin -w -p 1 -r 1002 1 10
5</i></font><br>
</p>
<p>The result (...08-56-20.png) is attached to this email, but as
one can see between 50ms and 60ms there is an execution of the
second rtspin outside the space that should have been allocated to
reservation 1002 (namely 55-57ms). <br>
</p>
<p>So, can I synchronize task execution or at least synchronize the
reservations, using P-RES? <br>
</p>
<p>2. When I attach some processes (rtspin for example) to
reservations, I am not able to visualize all the processes in
kernelshark (<a href="https://kernelshark.org/">https://kernelshark.org/</a>).
Could somebody tell me: why is this so? <br>
</p>
<p>I am able to visualize the rtspin execution with kernelshark if I
use another type of scheduling, but I have problems when using
P-RES.<br>
</p>
<p>I have attached a screenshot. The "release_ts" command is given
from the kernelshark. In the attached file only one process
(rtspin) appears, but the use case is the same as above (2 table
driven reservations, each reservation has one task). Moreover, in
this case only one execution (only one job) can be seen when
visualizing the execution of rtspin with kernelshark.<br>
</p>
<p>Thank you.<br>
</p>
<p>Yours sincerely,</p>
<p>Cristina Stangaciu<br>
</p>
<p><br>
</p>
</body>
</html>