[LITMUS^RT] Question about how to set task's release time in the base_task.c

Glenn Elliott gelliott at cs.unc.edu
Mon Oct 8 23:33:48 CEST 2012



On Oct 8, 2012, at 5:18 PM, Meng Xu <xumengpanda at gmail.com> wrote:

> Hi Glenn,
> 
> Thank you very much for your reply. Yes, I used your feather trace  and could record the release time and deadline of the job. But now I want to do experiment that release all tasks at the same time. Because I want to control the release time of each task, I think it's better to register the release time in the base_task.c .
> 
> When I only do one experiment, that's fine, I can change the code in the job.c and make it possible to release all task at the same time. But when I want to do many experiments,  that's impossible to change the code in the job.c each time. That's the reason why I think it's necessary to assign release time in base_task.c. 
> 
> Hi Giovani,
> 
> Yes, you are right. I can do it in the linux. In fact, we did that as you said in linux. We register a timer for each task and release a job when the timer expires. But in LITMUS, it forbids us to do that. So we have to use the base_task.c as the task's implementation.
> 
> 
> Meng
> 
> 2012/10/8 Glenn Elliott <gelliott at cs.unc.edu>
>> > Hi all,
>> >
>> > I want to run a task set in LITMUS. For each task in the task set, I want to assign an absolute time for it to release its 1st job. By doing that, I can record each job's response time and determine if the task misses its deadline or not.
>> >
>> > I looked around in the liblitmus folder, but didn't find any function that can assign a release time for the task.
>> >
>> > I found the release time of a task is assigned in release_at() in the litmus-rt/litmus/job.c file.
>> > But I still don't know how to assign the task's release time inside the base_task.c file?
>> >
>> > Can anyone help me?
>> >
>> > Thank you very much for your time in this question!
>> >
>> > Best Regards,
>> >
>> > Meng XU
>> 
>> 
>> Hi Meng,
>> 
>> Depending upon how you are doing your processing, you may not need to use specific release times.  Litmus can be configured to log job release and completion times.  There is no need to make these measurements from the user-space.
>> 
>> To get logging support, make sure "CONFIG_SCHED_TASK_TRACE=y" in your kernel's .config file.  See "Recording Scheduling Traces" here: https://wiki.litmus-rt.org/litmus/Tracing
>> 
>> -Glenn
>> 
>> 
>> _______________________________________________
>> litmus-dev mailing list
>> litmus-dev at lists.litmus-rt.org
>> https://lists.litmus-rt.org/listinfo/litmus-dev
> 
> _______________________________________________
> litmus-dev mailing list
> litmus-dev at lists.litmus-rt.org
> https://lists.litmus-rt.org/listinfo/litmus-dev


Can you not use wait_for_release() and release_ts() for synchronous task releases?  See liblitmus's rtspin for an example of wait_for_release().  You can then use liblitmus's release_ts program to call release_ts().  This causes all tasks currently waiting for release to be released.  For automated tests, you can write a script that reads /proc/litmus/stats and wait until the desired number of tasks are waiting for release before releasing them.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.litmus-rt.org/pipermail/litmus-dev/attachments/20121008/04faf3a6/attachment.html>


More information about the litmus-dev mailing list