<div dir="ltr"><span style="font-size:12.8px">Hi Björn,</span><div><br style="font-size:12.8px"><span style="font-size:12.8px">Thank you for your answer. I read a paper about "</span>On the Design and Implementation of a Cache-Aware Multicore
Real-Time Scheduler<span style="font-size:12.8px">" by </span>John M. Calandrino and James H. Anderson.</div><div><br></div><div>Is the details available in git hub for ca-sched scheduler.I wanted to know how the same is implemented.</div><div><br></div><div>Sincerely,</div><div><br></div><div>Sijili</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Dec 12, 2017 at 11:49 PM, Björn Brandenburg <span dir="ltr"><<a href="mailto:bbb@mpi-sws.org" target="_blank">bbb@mpi-sws.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
> On 12. Dec 2017, at 07:20, sijili s <<a href="mailto:sijili.mec@gmail.com">sijili.mec@gmail.com</a>> wrote:<br>
><br>
> I want to search all the available CPUs and find the best one among them based on a criteria. According to my understanding, at present GSN_EDF uses the most recent used CPU for scheduling the released task.<br>
><br>
> If we need to search all the CPUs with their current status, where or in which module should I implement this operation. As I am new to Linux Kernel coding I am really stuck here.<br>
<br>
</span>LITMUS^RT’s GSN-EDF implementation can be found in litmus/sched_gsn_edf.c.<br>
<br>
        <a href="https://github.com/LITMUS-RT/litmus-rt/blob/linux-4.9-litmus/litmus/sched_gsn_edf.c" rel="noreferrer" target="_blank">https://github.com/LITMUS-RT/<wbr>litmus-rt/blob/linux-4.9-<wbr>litmus/litmus/sched_gsn_edf.c</a><br>
<br>
The state maintained by the scheduler can be seen here:<br>
<br>
        <a href="https://github.com/LITMUS-RT/litmus-rt/blob/4acc377593580e7d04ad8b42b258e8c2b39030ee/litmus/sched_gsn_edf.c#L108-L114" rel="noreferrer" target="_blank">https://github.com/LITMUS-RT/<wbr>litmus-rt/blob/<wbr>4acc377593580e7d04ad8b42b258e8<wbr>c2b39030ee/litmus/sched_gsn_<wbr>edf.c#L108-L114</a><br>
<br>
Understanding how the scheduler works and how one best goes about modifying it will take some time, but in the end it’s just a concurrent C program. So with some time spent studying it and the surrounding kernel you should be able to make sense of it. Unfortunately, there’s not much we can do to help here;  you’ll just have to study the code yourself.<br>
<br>
Regards,<br>
Björn<br>
<br>
<br>
______________________________<wbr>_________________<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" rel="noreferrer" target="_blank">https://lists.litmus-rt.org/<wbr>listinfo/litmus-dev</a><br>
</blockquote></div><br></div>