<html><head><meta http-equiv="Content-Type" content="text/html charset=gb18030"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><br><div><div>On Dec 13, 2013, at 11:00 PM, Luo, Zheng <<a href="mailto:luozheng@wustl.edu">luozheng@wustl.edu</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr" fpstyle="1" aria-label="Message body" tabindex="0" id="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div name="divtagdefaultwrapper" id="divtagdefaultwrapper" style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; margin: 0px;"><div style="margin-top: 0px; margin-bottom: 0px;">Hi everyone,</div><div style="margin-top: 0px; margin-bottom: 0px;"><br></div><div style="margin-top: 0px; margin-bottom: 0px;">I have a question about how to choose dedicated group of cores on Litmus running G-EDF. For example, if my machine have 4 cores, I want to reserve core 0 for the Operating system, and core 1-3 to the rt-thread which can do the work. How can I do that? I tried the C-EDF, however used the L1,L2,L3 caches to do the division. I was wondering how can I do the division manually in the G-EDF?</div><div style="margin-top: 0px; margin-bottom: 0px;"><br></div><div style="margin-top: 0px; margin-bottom: 0px;">Also, I have a question about the relative deadline, I think the normally the G-EDF should have the absolute deadline. Does the Litmus automatically convert <span style="font-size: 12pt;">relative deadline to the absolute deadline when using the G-EDF?</span></div><div style="margin-top: 0px; margin-bottom: 0px;"><span style="font-size: 12pt;"><br></span></div><div style="margin-top: 0px; margin-bottom: 0px;"><span style="font-size: 12pt;">Thanks, Looking forward to the reply. </span><span style="font-size: 12pt;">   </span></div><div><div style="margin-top: 0px; margin-bottom: 0px;"><br></div><div style="margin-top: 0px; margin-bottom: 0px;"><br></div><div name="divtagdefaultwrapper" style="font-family: Calibri, Arial, Helvetica, sans-serif; margin: 0px;">Zheng Luo</div></div></div></div></blockquote></div><br><div>Hi Zheng,</div><div><br></div><div>I think you can accomplish what you want to do by using a ¡°Release Master¡±.  This is enabled by asserting the CONFIG_RELEASE_MASTER compile-time option under the ¡°Scheduling¡± menu.  This will reserve CPU0 (aka the ¡°Release Master¡±) for handling release interrupts for G-EDF running on the remaining CPUs.  You can also run general code on the release master CPU, assuming you have properly configured CPU affinity masks for those processes/threads.</div><div><br></div><div>All EDF schedulers, including G-EDF, always uses a job¡¯s absolute deadline to prioritize scheduling.  A relative deadline (a task attribute, not a job attribute) scheduler would be something like Deadline-Monotonic scheduling¡ª tasks with smaller relative deadlines have higher priority.  Implementing your own Deadline-Monotonic scheduler is not hard.  There are kludgey ways to do it in Litmus with just 5 to 10 minutes of coding.</div><div><br></div><div>-Glenn</div></body></html>