<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div><br></div><div><br>On 19.09.2014, at 17:56, Namhoon Kim <<a href="mailto:namhoonk@cs.unc.edu">namhoonk@cs.unc.edu</a>> wrote:<br><br></div><blockquote type="cite"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="">> Are interrupts disabled when we enter gsnedf_schedule()? Does anyone know how to modify page access bits in schedule() properly?<br>
<br>
</span>Yes, of course. Interrupts are always disabled while scheduling in Linux to defend against scheduler invocations within interrupts. You can easily see this for yourself by observing that gsnedf_schedule() is called from within schedule(), which disables all interrupts.<div style="display: none;"><br>
</div><span class=""><div style="display: none;"></div><font color="#888888"><div style="display: none;"><br></div></font></span></blockquote><div><br></div><div>I can put the set_pte() and flush_tlb_page() in Linux schedule() after interrupts enabled, but I think it is not the proper way. I don't want to touch any Linux functions. What is the proper way to use smp_call_functions in LITMUS schedule()? </div></blockquote><br><div>There is no way to call such functions from within a plugin's schedule() callback. I'm afraid you'll have to design Dealing with interrupt and locking restrictions is one of the main issues that make scheduler development "fun"...</div><div><br></div><div>- Björn </div></body></html>