<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Feb 17, 2013, at 2:09 AM, Björn Brandenburg <<a href="mailto:bbb@mpi-sws.org">bbb@mpi-sws.org</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><br><br>On 17.02.2013, at 05:02, Glenn Elliott <<a href="mailto:gelliott@cs.unc.edu">gelliott@cs.unc.edu</a>> wrote:<br><br><blockquote type="cite">Quick question: Why does sys_release_ts() set release times to be on integral milliseconds?  Is this for tick scheduling, or something?<br></blockquote><br>A very benign reason: so that periodic release times would be aligned with integral milliseconds when visualizing the sched_trace data. Take it out if it poses a problem for something else.<br><br>- Björn<br></blockquote><br></div><div>Thanks!  I have a followup question about do_wait_for_ts_release() though.  This function sets the release point of the released task to be:</div><div><br></div><div><pre style="margin-top: 0px; margin-bottom: 0px; padding: 0px; border: 0px; font-size: 12px; font-family: Consolas, 'Liberation Mono', Courier, monospace; color: rgb(51, 51, 51); line-height: 16px; "><div class="line" id="LC54" style="margin: 0px; padding: 0px 0px 0px 10px; border: 0px; ">54<span class="Apple-tab-span" style="white-space:pre">      </span><span class="n" style="margin: 0px; padding: 0px; border: 0px; ">litmus</span><span class="o" style="margin: 0px; padding: 0px; border: 0px; font-weight: bold; ">-></span><span class="n" style="margin: 0px; padding: 0px; border: 0px; ">release_at</span><span class="p" style="margin: 0px; padding: 0px; border: 0px; ">(</span><span class="n" style="margin: 0px; padding: 0px; border: 0px; ">current</span><span class="p" style="margin: 0px; padding: 0px; border: 0px; ">,</span> <span class="n" style="margin: 0px; padding: 0px; border: 0px; ">wait</span><span class="p" style="margin: 0px; padding: 0px; border: 0px; ">.</span><span class="n" style="margin: 0px; padding: 0px; border: 0px; ">ts_release_time</span></div><div class="line" id="LC55" style="margin: 0px; padding: 0px 0px 0px 10px; border: 0px; ">55 <span class="Apple-tab-span" style="white-space:pre"> </span><span class="o" style="margin: 0px; padding: 0px; border: 0px; font-weight: bold; ">+</span> <span class="n" style="margin: 0px; padding: 0px; border: 0px; ">current</span><span class="o" style="margin: 0px; padding: 0px; border: 0px; font-weight: bold; ">-></span><span class="n" style="margin: 0px; padding: 0px; border: 0px; ">rt_param</span><span class="p" style="margin: 0px; padding: 0px; border: 0px; ">.</span><span class="n" style="margin: 0px; padding: 0px; border: 0px; ">task_params</span><span class="p" style="margin: 0px; padding: 0px; border: 0px; ">.</span><span class="n" style="margin: 0px; padding: 0px; border: 0px; ">phase</span></div><div class="line" id="LC56" style="margin: 0px; padding: 0px 0px 0px 10px; border: 0px; ">56         <span class="o" style="margin: 0px; padding: 0px; border: 0px; font-weight: bold; ">-</span> <span class="n" style="margin: 0px; padding: 0px; border: 0px; ">current</span><span class="o" style="margin: 0px; padding: 0px; border: 0px; font-weight: bold; ">-></span><span class="n" style="margin: 0px; padding: 0px; border: 0px; ">rt_param</span><span class="p" style="margin: 0px; padding: 0px; border: 0px; ">.</span><span class="n" style="margin: 0px; padding: 0px; border: 0px; ">task_params</span><span class="p" style="margin: 0px; padding: 0px; border: 0px; ">.</span><span class="n" style="margin: 0px; padding: 0px; border: 0px; ">period</span><span class="p" style="margin: 0px; padding: 0px; border: 0px; ">);</span></div></pre><div><br></div></div><div>Why is the task period subtracted from wait.ts_release_time if wait.ts_release_time denotes time=0?  Why isn't the release time simply "wait.ts_release_time + current->rt_params.phase"?  Won't the "synchronous" task set not be released synchronously if all tasks have different periods?  Perhaps at some point release_at() added back the task period to the release time, but it doesn't appear to now.</div><div><br></div><div>-Glenn</div></body></html>