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