Hi Glenn,<div><br></div><div>Thank you so much! Yes, I can try that way. But in fact, it's still limited. Suppose I want to release tasks one by one with 1ms offset, I can't do that. If there is a way that I can assign the release time in base_task.c, it's more convenient. :)</div>
<div><br></div><div>Meng<br><br><div class="gmail_quote">2012/10/8 Glenn Elliott <span dir="ltr"><<a href="mailto:gelliott@cs.unc.edu" target="_blank">gelliott@cs.unc.edu</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="auto"><div><div class="h5"><div><br><br>On Oct 8, 2012, at 5:18 PM, Meng Xu <<a href="mailto:xumengpanda@gmail.com" target="_blank">xumengpanda@gmail.com</a>> wrote:<br><br></div><blockquote type="cite"><div>
Hi Glenn,<div><br></div><div>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 .</div>
<div><br></div><div>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. </div>
<div><br></div><div>Hi Giovani,</div><div><br></div><div>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.</div>
<div><br></div><div><br></div><div>Meng<br><br><div class="gmail_quote">2012/10/8 Glenn Elliott <span dir="ltr"><<a href="mailto:gelliott@cs.unc.edu" target="_blank">gelliott@cs.unc.edu</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div>> Hi all,<br>
><br>
> 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.<br>
><br>
> I looked around in the liblitmus folder, but didn't find any function that can assign a release time for the task.<br>
><br>
> I found the release time of a task is assigned in release_at() in the litmus-rt/litmus/job.c file.<br>
> But I still don't know how to assign the task's release time inside the base_task.c file?<br>
><br>
> Can anyone help me?<br>
><br>
> Thank you very much for your time in this question!<br>
><br>
> Best Regards,<br>
><br>
> Meng XU<br>
<br>
<br>
</div></div>Hi Meng,<br>
<br>
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.<br>
<br>
To get logging support, make sure "CONFIG_SCHED_TASK_TRACE=y" in your kernel's .config file. See "Recording Scheduling Traces" here: <a href="https://wiki.litmus-rt.org/litmus/Tracing" target="_blank">https://wiki.litmus-rt.org/litmus/Tracing</a><br>
<br>
-Glenn<br>
<br>
<br>
_______________________________________________<br>
litmus-dev mailing list<br>
<a href="mailto:litmus-dev@lists.litmus-rt.org" target="_blank">litmus-dev@lists.litmus-rt.org</a><br>
<a href="https://lists.litmus-rt.org/listinfo/litmus-dev" target="_blank">https://lists.litmus-rt.org/listinfo/litmus-dev</a><br>
</blockquote></div><br></div>
</div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>litmus-dev mailing list</span><br><span><a href="mailto:litmus-dev@lists.litmus-rt.org" target="_blank">litmus-dev@lists.litmus-rt.org</a></span><br>
<span><a href="https://lists.litmus-rt.org/listinfo/litmus-dev" target="_blank">https://lists.litmus-rt.org/listinfo/litmus-dev</a></span><br></div></blockquote><br><div><br></div></div></div><div>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.</div>
</div><br>_______________________________________________<br>
litmus-dev mailing list<br>
<a href="mailto:litmus-dev@lists.litmus-rt.org">litmus-dev@lists.litmus-rt.org</a><br>
<a href="https://lists.litmus-rt.org/listinfo/litmus-dev" target="_blank">https://lists.litmus-rt.org/listinfo/litmus-dev</a><br>
<br></blockquote></div><br></div>