[LITMUS^RT] HRT/SRT Schedulability

Mikyung Kang mkkang01 at gmail.com
Tue Oct 7 20:31:47 CEST 2014


Hello Glen,

The missing/utilization problem of st_trace records (9/18-9/19) was
resolved by using rt_launch, not rtspin.

As you said, I'm getting runtime behavior, not theoretical analysis.
While running rt_launch, I could check the top result is gotten as expected:

  Utilization Expected Real  0.90 11% Cpu(s): 11.3%us,  0.8%sy,  0.0%ni,
87.6%id,  0.0%wa,  0.2%hi,  0.0%si,  0.0%st  1.80 23% Cpu(s): 22.5%us,
0.8%sy,  0.0%ni, 76.1%id,  0.4%wa,  0.2%hi,  0.0%si,  0.0%st  2.70 34% Cpu(s):
33.7%us,  0.7%sy,  0.0%ni, 65.4%id,  0.0%wa,  0.2%hi,  0.0%si,  0.0%st  3.60
45% Cpu(s): 44.9%us,  0.7%sy,  0.0%ni, 54.1%id,  0.1%wa,  0.2%hi,  0.0%si,
0.0%st  4.50 56% Cpu(s): 56.1%us,  0.7%sy,  0.0%ni, 43.0%id,  0.1%wa,
0.2%hi,  0.0%si,  0.0%st  5.40 68% Cpu(s): 67.1%us,  0.9%sy,  0.0%ni,
31.8%id,  0.1%wa,  0.1%hi,  0.0%si,  0.0%st  6.30 79% Cpu(s): 78.3%us,
0.8%sy,  0.0%ni, 20.7%id,  0.1%wa,  0.1%hi,  0.0%si,  0.0%st  7.20 90% Cpu(s):
89.4%us,  0.8%sy,  0.0%ni,  9.7%id,  0.0%wa,  0.1%hi,  0.0%si,  0.0%st

Using st_job_stats, I'm checking the traced information for all tasks and
the related jobs/period/response to check the deadline miss ratio.
All the jobs of each task are scheduled every period and they should meet
all deadline (HRT), for all tasks.

# Task,   Job,     Period,   Response, DL Miss?,   Lateness,  Tardiness
# task NAME=rt_launch PID=20342 COST=180000000 PERIOD=200000000 CPU=0
 20342,     2,  200000000,  180138369,        0,  -19861631,          0
 20342,     3,  200000000,  180108634,        0,  -19891366,          0
 20342,     4,  200000000,  180110191,        0,  -19889809,          0
 20342,     5,  200000000,  180115887,        0,  -19884113,          0
...

Now I'm increasing the running time of rt_launch and got a little bit
better result.
Even though more tests are needed, up to 56%, the schedulability is 1.
After that, it's dropped and fluctuated. Is this expected result?

Thanks,
Mikyung


On Tue, Oct 7, 2014 at 1:37 PM, Glenn Elliott <gelliott at cs.unc.edu> wrote:

>
> On Oct 7, 2014, at 1:21 PM, Mikyung Kang <mkkang01 at gmail.com> wrote:
>
> r="ltr">Hello all,
>
> I'm trying to check schedulability for simple HRT/SRT task sets using
> Litmus-rt 2014.2.
> * 8 Cores, no hyper-threading, 16G memory
> * Bare-metal testing, Ubuntu 12.04 (Linux 3.10.41)
> * rt_launch program, 20-30 seconds
>
> On top of clean OS and litmus-rt, only rt_launch is running and then st-*
>  trace files are recorded.
> I expected that all cases should be schedulable and c-edf result is better
> than g-edf result.
> (At least, if Utilization <= 70% then c-edf schedulability >= 0.8)
>
> But, as shown in the first following table and the second graph
> (bare-metal litmus-rt),
> even w/ 45% CPUs utilization (6*(120,200)=3.6), the schedulability is
> dropped  so much and c-edf result isn't better than g-edf case.
> The schedulability for c-edf and g-edf (6th and 7th column) is an averaged
> value (20 times).
>
> Based on other related papers, I expected that the schedulability (c-edf)
> will be larger than 0.7~0.8 (at least) up to 74.4% utilization (5.95).
> But, HRT and SRT, both cases produced around 0.5 schedulability.
>
> Even though I tried 1*(180,200) ~ 8*(180,200) as shown in the third graph,
> it's little bit better but still not good and fluctuation is happened.
> And, even though the utillization is similar, the schedulability is very
> different if the number of task sets is different.
>
> Is this correct? How can I increase the schedulability? How can I see the
> difference between c-edf and g-edf?
> Is there anything that I should check for schedulability? Any tips to get
> best schedulability?
>
> (1)
>    num-tasks period wcet utilization ratio bm-c-edf bm-g-edf  4.00 200.00
> 60.00 1.20 15.0% 0.99 1.00  4.00 200.00 100.00 2.00 25.0% 1.00 0.99  5.00
> 200.00 110.00 2.75 34.4% 0.87 0.92  6.00 200.00 120.00 3.60 45.0% 0.64
> 0.79  6.00 200.00 145.00 4.35 54.4% 0.70 0.70  7.00 200.00 150.00 5.25
> 65.6% 0.49 0.51  7.00 200.00 170.00 5.95 74.4% 0.50 0.59  7.00 200.00
> 180.00 6.30 78.8% 0.57 0.50  7.00 200.00 190.00 6.65 83.1% 0.49 0.51  8.00
> 200.00 180.00 7.20 90.0% 0.41 0.41
> (2)
> <bm.png>
>
> (3) 1*(180,200) ~ 8*(180,200)
> <bm2.png>
>>
> Thanks,
> Mikyung
>
>
>
> Hi Mikyung,
>
> What is your criteria for determining schedulability?  That is, what makes
> a task set unschedulable?  One deadline miss (HRT)?  A deadline miss of
> more than X time units (SRT)?  From your email, I get the feeling that
> you’re observing runtime behavior to determine schedulability, rather than
> theoretical analysis-based schedulability.  Is this correct?  If this is
> the case, what is the collective utilization of your tasks as reported by
> the *nix utility ‘top’?  Can you copy/paste the line that starts with
> “%Cpu(s)”?  The “%us” should be relatively close to what you provision with
> rt_launch.
>
> Did you manage to resolve your problems you reported on last September?
> The issues you reported made it sound like your system CPUs were
> experiencing much heavier load than you had expected (resulting in
> incomplete traces).
>
> -Glenn
>
>
>
> _______________________________________________
> litmus-dev mailing list
> litmus-dev at lists.litmus-rt.org
> https://lists.litmus-rt.org/listinfo/litmus-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.litmus-rt.org/pipermail/litmus-dev/attachments/20141007/64fead66/attachment.html>


More information about the litmus-dev mailing list