-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Target switching in hierarchical LSTF
/EDF
and SJN
#51
Comments
Happy to go some other way of course, but I kinda think that a policy like So, your
Your problem is very interesting, but, like it sorta reads like the user didn't really know what they wanted! In general I do think it's okay if certain hierarchical compositions cancel each other out, or smother a child, or whatever. |
Discussing our attempts to resolve this in #55. |
Hi Nate, Thanks again for chatting. In this email I'm hoping to crisp up the main issue in writing. Consider the policy:
Where, morally, the policies are:
In moving to PIFO tree implementations, we need to think of scheduling transactions that will grant ranks in accordance with those policies:
Now back to our example. Let's say that packets arrive like so:
Let's visualize the tree at every point in time. The tree is:
where I'll write out the contents of all internal PIFOs in a table indexed by time.
Recall that we read queues from right to left, so the most favorably ranked entry is the rightmost one.
Now, let's say starting at time 6, we pop this tree repeatedly.
The overall order is
We of course know that such target switching needs to be allowed. As we have been telling people during talks and such, this is exactly the power of PIFO trees. This case is particularly interesting because a child got to mess so badly with a parent. If a parent (having an "overarching" policy, vaguely speaking), were to dominate a child, I guess I'd understand. But this current situation feels very mind-bendy and un-compositional! |
Before reading this issue, it would be helpful to familiaize yourself with the
EDF
in our glossary of scheduling policies.Consider the following DSL program; while it's specific to
EDF
, the same discussion can be had aboutSJN
.Question 1: when pushing a packet, what rank do we give it's associated pointer in the root PIFO?
Perhaps using the packet's "slack" is a good choice? let's go with that for now!
Suppose we encounter the following sequence of packets (before performing any
pop
s)Flushing our PIFO tree yields
Question 2: is this right?
Notice how packet
B_1
was popped before every packet other thanA_1
despite having a drastically larger slack than them.Question 3: is this strange or a problem? I think
B_1
could maybe overtakeA_2
andA_3
but passingC_1
feels wrong. Similarly,A_3
losing toC_1
seems odd.In general, it seems policies that use properties inherent to packets have confusing behavior when realized on trees, similar to our previous discussion on PIEO trees. There, we got away with this because target switching would only happen between ripe packets (which we deemed okay); here, all packets and internal references are always visible.
The text was updated successfully, but these errors were encountered: