What happens on timeslice overrun?
Rene Wittmann
wittmaennle at gmx.de
Sun Aug 14 22:16:09 CEST 2005
Hi,
I have 2 questions on the RT part in DROPS:
1.) I have 2 RT working threads, each with 3 timeslices:
Thread 1: period=10ms
ts1=30ms prio1=50
ts2=10ms prio2=30
ts3=20ms prio3=50
Thread 2: period=10ms
ts1=20ms prio1=40
ts2=5ms prio2=30
ts3=10ms prio3=40
Assume both threads are ready at the same time.
So thread 1 starts and does its work until it
releases the voluntarily or it's preempted by
its preempter-thread. So say it releases
voluntarily after 20ms.
Who will get the left 10ms? I guess nobody.
Or can I assign my left time to a specific
thread, say ts2 of thread 1, that is has 20ms
after recognizing that ts1 was finished 10ms
earlier?I could do with l4_rt_change_timeslice(),
but this would probably not work for the the
current period! (or yes?)
I could even imagine that it would work in my case
described above, as thread 2 would be next after ts1
of thread 1, but consider thread 2 didn't exist...
2.) Consider we have a deadline miss. And we say
l4_rt_next_period(): would it wait for the beginning
of the next (which means:
period 1: deadline miss
period 2: call next period (because we think we're
still in period 1)+ wait to end of period
period 3: normal work)
Or do I have to care that we do not call
l4_rt_next_period() in case of a deadline miss?
BTW: I compiled the fiasco-kernel with apic+one shot
mode. But this should not be relevant for my question.
Regards,
Rene
More information about the l4-hackers
mailing list