Hello,
There have been several proposals so far on this subject and no
consensus seems to have been reached on what an acceptable CPU controller
for Linux needs to provide. I am hoping this mail will trigger some
discussions in that regard. In particular I am keen to know what the
various maintainers think about this subject.
The various approaches proposed so far are:
- CPU rate-cap (limit CPU execution rate per-task)
http://lkml.org/lkml/2006/5/26/7
- f-series CKRM controller (CPU usage guarantee for a task-group)
http://lkml.org/lkml/2006/4/27/399
- e-series CKRM controller (CPU usage guarantee/limit for a task-group)
http://prdownloads.sourceforge.net/ckrm/cpu.ckrm-e18.v10.patch.gz?download
- OpenVZ controller (CPU usage guarantee/hard-limit for a task-group)
http://openvz.org/
- vserver controller (CPU usage guarantee(?)/limit for a task-group)
http://linux-vserver.org/
(I apologize if I have missed any other significant proposal for Linux)
Their salient features and limitations/drawbacks, as I could gather, are summarized later below. To note is each controller varies in degree of complexity and addresses its own set of requirements.
In going forward for an acceptable controller in mainline it would help, IMHO, if we put together the set of requirements which the Linux CPU controller should support. Some questions that arise in this regard are:
- Do we need mechanisms to control CPU usage of tasks, further to what
already exists (like nice)? IMO yes.