RE: [Linux-hls-devel] HLS errors appearing with cpu reservations
Status: Pre-Alpha
Brought to you by:
lucabe
|
From: Paul K. <pko...@au...> - 2003-08-29 04:24:57
|
Hi Luca,
Yes, the patch to bottom.c seems to have fixed the problem with
hourglass.
I'm using 2.4.18 with HLS gensched patch, and (still for now) RML's
variable-hz, preemption and lock-break patches.
Typing=20
hourglass -n 2 -t 1 -rh 10ms 50ms -w PERIODIC 10ms 50ms
gave the following output:
...
thread 1 will have hard res of amount 10000 and period 50000
thread 1 will run workload PERIODIC
thread 1 will have amount 10000
thread 1 will have period 50000
5.722046 MB allocated for trace records
Hourglass 0.5 : 2 threads; 10.000000 seconds; 1194.408907 MHz processor
max gap is 2388 cycles
this test will last for 10.000000 seconds
numthreads: 2
work done by thrd 0 : 125491982
work done by thrd 1 : 25940366
thread 1: missed 170 deadlines, hit 20
there were 10009 out of 300000 trace records; 3.336333 % used.
in cycles, trace start 718129657440, end 730083432498, duration
11953775058
trace duration 10.008109 seconds
thread 0 recorded 7.990135 seconds
thread 1 recorded 1.890859 seconds
total thread time 9.880994 seconds
time slots in ms: thread start end duration gap:
tracerec: 1 1.012524 1.987656 0.975132 601243.730409
tracerec: 1 1.999265 2.988340 0.989075 0.011609
tracerec: 1 2.999037 3.989064 0.990026 0.010697
tracerec: 1 3.999727 4.989773 0.990046 0.010663
...=20
The 10s trace looks as I expected apart from a 500ms portion near the
start. Task 1 gets the CPU for its first period and then nothing until
550ms; thereafter it gets 10ms every 50ms.
(BTW, the missed deadlines count drops to only 1 if 11ms is reserved for
task 1 rather than 10ms exactly; John pointed the need to do this in an
hourglass conference paper I have.)=20
However, dmesg still shows us some HLS issues:
HLS MP initializing (HLS_DBG_PRINT_LEVEL =3D 1).
[738959619], 801 : sched 'ROOT' registered in slot 0
[812802016], 801 : sched 'JOIN' registered in slot 1
[886628438], 801 : sched 'TH' registered in slot 2
[957733126], 801 : sched 'RR' registered in slot 3
[1028835251], 801 : sched 'PS' registered in slot 4
[1101303379], 801 : sched 'RES' registered in slot 5
already PRIVATE_DATA !=3D NULL???
already PRIVATE_DATA !=3D NULL???
HLS Error: 902 has private_data =3D NULL???
../hls/hls_hooks.c:56: failed HLS assertion: "(State =3D=3D
TASK_UNINTERRUPTIBLE) || (State =3D=3D TASK_INTERRUPTIBLE)".
../hls/hls_hooks.c:56: failed HLS assertion: "(State =3D=3D
TASK_UNINTERRUPTIBLE) || (State =3D=3D TASK_INTERRUPTIBLE)".
HLS ERROR: not panicing, but continuing...
HLS ERROR: not panicing, but continuing...
hls_ctl: Moving to res1
...and setting the parameters!
When I get a chance I'll rebuild the 2.4.18 kernel without RML's
preemption and lock breaking patches and see if the HLS error msgs go
away.
Regards,
Paul Koufalas
Senior Communications Engineer
AUSPACE Limited
Level 1 Innovation House
Technology Park MAWSON LAKES SA 5095
AUSTRALIA
T +61 8 8260 8236
F +61 8 8260 8226
M +61 404 837 122
www.auspace.com.au
This email is for the intended addressee only. If you have received this
e-mail in error, you are requested to contact the sender and delete the
e-mail. Nothing in this email shall bind Auspace Limited in any contract
or obligation.
-----Original Message-----
From: Luca Abeni [mailto:luc...@em...]=20
Sent: Friday, August 29, 2003 2:38 PM
To: lin...@li...
Subject: Re: [Linux-hls-devel] HLS errors appearing with cpu
reservations
Hi Paul,
I reproduced the bug, and I think I fixed it.
This was the problem: hourglass does first a sched_setscheduler(p,
SCHED_FIFO, ...), and then does another sched_setscheduler() to schedule
it with the res scheduler. But the first setsched() transformed the task
in a regular linux task, and the second one complained about this fact
without changing the task to HLS...
Now, it should work. Have a look at the patch on the cvs commit mailing
list (it will appear in the anonymous cvs in 1 or 2 days).
This brings up a question: what should we do when a sched_setscheduler()
is performed on an HLS task changing the policy to SCHED_FIFO, SCHED_RR,
or SCHED_OTHER? Two possibilities:
1) do nothing (the task remains an HLS task)
2) transform the task in a regular linux task. This is a little bit
conterintuive, because regular linux task are scheduled in background
respect to HLS tasks...
Other possibilities would require to know the scheduler hierarchy in
advance...
Ideas and suggestions are welcome.
Thanks,
Luca
--=20
________________________________________________________________________
_____
Copy this in your signature, if you think it is important:
N O W A R ! ! !
--
Email.it, the professional e-mail, gratis per te: http://www.email.it/f
Sponsor:
Non hai ancora aperto Conto Arancio? Allora clicca qui.
Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid=3D667&d=3D28-8
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf _______________________________________________
Linux-hls-devel mailing list Lin...@li...
https://lists.sourceforge.net/lists/listinfo/linux-hls-devel
|