This ticket is a parent for tracking work needed to implement/test/simulate/integrate the new global scheduling and write-limiting techniques for handling kernel output. This is funded by Sponsor F.
Making serious progress on this will become my top priority after the Oakland deadline tomorrow. You can expect frequent updates from me starting then.
These tickets were tagged "6s194" as ideas for possible term projects for students in MIT subject 6.S194 spring 2016. I'm retagging with term-project-ideas, so that the students can use the 6s194 tag for tickets they're actually working on.
Hi, pastly & dgoulet! I just skimmed over the merge request on oniongit and added a few comments and questions. It's not a thorough review; just a cursory inspection. I'm sure dgoulet will have more questions and comments when he's back from vacation.
Just went over the whole thing. Many things to discuss! but overall, I'm very happy and optimistic about this change. It makes things so much easier to understand, nice interface and design imo.
We can either discuss on IRC if you want to go faster than the back and forth on Gitlab. I'm good either way but ping me (us) when you have replied. Thanks!
I removed the SchedulerLowWaterMark__, SchedulerHighWaterMark__, and SchedulerMaxFlushCells__ options. They were ineffective and never meaningful.
Low: Tor had to have less than this in its outbufs or else it wouldn't start a scheduling round. High: Tor would stop a scheduling round if it hit this. MaxFlush: Tor would flush this many cells at maximum from a circuit queue to its outbuf at a time before moving on to another channel.
They were all set so high that they didn't matter.
I'm pretty sure the bug you are thinking of is #20459 (moved) fixed in c09993fdf6.
sched_run_interval (or _freq as it was called then) has a maximum of 100 ms. If diff is larger than sched_run_interval, the code block with event_active is called instead so it doesn't matter.
reviewed; left more comments on branch. also please see threads that didn't get checked off; I thought those had open questions when I looked. Also this needs a changes file.