Re: Adding a new scheduling algorithm to Fiasco.OC

Valentin Hauner <[email protected]>
Newsgroups gmane.comp.micro-kernel.l4.devel
Message-ID <[email protected]>
Hi,

I've added a new config directive for 'sched_edf' to the Modules.* files
in 'kernel/fiasco/src', that is:
PREPROCESS_PARTS-$(CONFIG_SCHED_EDF) += sched_edf
This enables the user to compile the kernel with EDF scheduling when
setting this directive, right?

I want to implement the preemptive EDF algorithm, i.e. any running task
must be preempted if a new task with a shorter deadline arrives.
dominates() from sched_context-edf.cpp and next_to_run() from
ready_queue_edf.cpp are designed to choose the one with the shortest
deadline, but how can I tell Fiasco to act preemptive?

Thanks in advance!

Best regards,
Valentin

On 06/13/2014 10:01 PM, Adam Lackorzynski wrote:
> Hi,
>
> On Thu Jun 12, 2014 at 16:29:43 +0200, Valentin Hauner wrote:
>   
>> I'm planning to add a new scheduling algorithm to Fiasco.OC. I will
>> implement EDF.
>> First of all, is there some handout written by you main developers that
>> copes with the issues of implementing EDF in Fiasco.OC?
>>     
> No, there's no such memo.
>  
>   
>> What I've achieved so far:
>> I've created the files sched_context-edf.cpp and ready_queue_edf.cpp in
>> ./kernel/fiasco/src/kern, using the corresponding source files for your
>> fixed-priority scheduler as templates.
>> I've named the config directive used in ./kernel/fiasco/src/Modules.*
>> files analogous to yours, that is 'sched_edf' in my case.
>> Now, I'm beginning to modify sched_context-edf.cpp and
>> ready_queue_edf.cpp to fit the requirements of EDF, especially the en-
>> and dequeuing as well as the 'dominates' method.
>>
>> Are there any other major source files that I do have to alter?
>>     
> That looks good. You should look at the wfq files as those already
> implement an algorithm that is quite close to EDF.
>
>
>
> Adam
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.