Hi All,
Here is another posting for IO controller patches. Last time I had posted
RFC patches for an IO controller which did bio control per cgroup.
http://lkml.org/lkml/2008/11/6/227
One of the takeaway from the discussion in this thread was that let us
implement a common layer which contains the proportional weight scheduling
code which can be shared by all the IO schedulers.
Implementing IO controller will not cover the devices which don't use
IO schedulers but it should cover the common case.
There were more discussions regarding 2 level vs 1 level IO control at
following link.
https://lists.linux-foundation.org/pipermail/containers/2009-January/015402.html
So in the mean time we took the discussion off the list and spent time on
making the 1 level control apporoach work where majority of the proportional
weight control is shared by the four schedulers instead of each one having
to replicate the code. We make use of BFQ code for fair queuing as posted
by Paolo and Fabio here.
http://lkml.org/lkml/2008/11/11/148
Details about design and howto have been put in documentation patch.
I have done very basic testing of running 2 or 3 "dd" threads in different
cgroups. Wanted to get the patchset out for feedback/review before we dive
into more bug fixing, benchmarking, optimizations etc.
Your feedback/comments are welcome.
Patch series contains 10 patches. It should be compilable and bootable after
every patch. Intial 2 patches implement flat fair queuing (no cgroup
support) and make cfq to use that. Later patches introduce hierarchical
fair queuing support in elevator layer and modify other IO schdulers to use
that.
Thanks
Vivek