Linux Kernel Newbies is reporting that Linux Kernel 2.6.25 is released and contains memory management enhancements needed for the virtualization environment.
The memory resource controller is a cgroups-based feature. Cgroups, aka "Control Groups", is a feature that was merged in 2.6.24, and its purpose is to be a generic framework where several "resource controllers" can plug in and manage different resources of the system such as process scheduling or memory allocation. It also offers a unified user interface, based on a virtual filesystem where administrators can assign arbitrary resource constraints to a group of chosen tasks. For example, in 2.6.24 they merged two resource controllers: Cpusets and Group Scheduling. The first allows to bind CPU and Memory nodes to the arbitrarily chosen group of tasks, aka cgroup, and the second allows to bind a CPU bandwidth policy to the cgroup.
The memory resource controller isolates the memory behavior of a group of tasks -cgroup- from the rest of the system. It can be used to:
- Isolate an application or a group of applications. Memory hungry applications can be isolated and limited to a smaller amount of memory.
- Create a cgroup with limited amount of memory, this can be used as a good alternative to booting with mem=XXXX.
- Virtualization solutions can control the amount of memory they want to assign to a virtual machine instance.
- A CD/DVD burner could control the amount of memory used by the rest of the system to ensure that burning does not fail due to lack of available memory.