Adding a new scheduling algorithm to Fiasco.OC

Adam Lackorzynski adam at
Tue Aug 5 22:59:34 CEST 2014

On Fri Aug 01, 2014 at 16:28:12 +0200, Valentin Hauner wrote:
> On 06/13/2014 10:01 PM, Adam Lackorzynski wrote:
> > You should look at the wfq files as those already
> > implement an algorithm that is quite close to EDF
> I've found out that Weighted Fair Queuing is used for scheduling network
> data packets. However, no source I've read through mentions a similarity
> to EDF.
> I'm not sure what all those parameters in sched_context-wfq.cpp mean.
> Quantum and weight seem clear to me, but what's the semantic of qdw
> (quantum divided by weight) and dl? Does the latter one stand for deadline?
> What sense does it make to add quantum/left attributes to a EDF-simliar
> algorithm?

I wanted to express that it is similar, goes into that direction. I did
not want to say that it is there. Yes, dl is meant as a deadline there I

> Another problem was arising when I tried to compile Fiasco with my EDF
> scheduler:
> I've removed the attributes quantum and left from my
> sched_context-edf.cpp implementation and got this error:
> > context.cpp:1039:49: error: ‘class Sched_context’ has no member named
> ‘left’
> Obviously, Sched_context needs these parameters, but why? They are used
> in context.cpp which should be independent of any concrete scheduling
> algorithm, shouldn't it? There is no quantum in deadline based algorithms.

Being independent of any specific algorithm also means that the
interface between the different algorithms and the generic code is so
abstract that any algorithm can be plugged in. Maybe this is not the
case, maybe it is. Anyway, left() tells the generic code how long a
thread still has time to run. I think you'll also have a value to put
in there, at least it should be known at which point in time a
reevaluation of the situation should be done. The quantum value is not
used in generic code so it seems ok to not supply it.

Adam                 adam at

More information about the l4-hackers mailing list