[LITMUS^RT] Modifying Page Table Entry in gsnedf_schedule()

Björn Brandenburg bbb at mpi-sws.org
Fri Sep 19 18:23:15 CEST 2014



On 19.09.2014, at 17:56, Namhoon Kim <namhoonk at cs.unc.edu> wrote:

>> > Are interrupts disabled when we enter gsnedf_schedule()? Does anyone know how to modify page access bits in schedule() properly?
>> 
>> 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.
> 
> 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()? 

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"...

- Björn 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.litmus-rt.org/pipermail/litmus-dev/attachments/20140919/8e4b41c7/attachment.html>


More information about the litmus-dev mailing list