Kir Kolyshkin (k001) wrote in openvz,
Kir Kolyshkin

2.6.25 is out; memory controller and network namespaces are in

As you may already know Linux kernel 2.6.25 is released today. Among many other things (see Linux 2.6.25 changelog at for details), it moves us one step closer to having containers in the mainstream Linux. Or maybe even two steps.

First is memory controller. The code is submitted by Balbir Singh (of IBM), and is mostly based on an earlier work by Pavel Emelyanov (of OpenVZ), Balbir and some others. It uses the "control groups" (cgroups) framework introduced earlier by Paul Menage of Google. Basically, memory controller (in its current form) lets one to control the amount of physical memory used by a group of processes (i.e. by a container). This is a vital feature for containers since all the containers are using the same RAM resource, so for containers to co-exist nicely they should not be allowed to use too much memory. Now, system administrator can set a per-container memory limits. The whole technology is known as User Beancounters (or just Beancounters) in OpenVZ world -- it's just we have more different parameters (and thus knobs and dials) in OpenVZ.

But, in a sense, the memory controller that is now in mainstream is better than one we have in OpenVZ. The one in mainstream limits the amount of physical (RSS) pages used by a container, and if this limit is exceeded, pages are swapped out. Well, in fact, they are not swapped out -- this would cause the unnecessary disk I/O activity in case it's just a container limit being hit, and otherwise there is enough memory on the system. In this case container's memory pages are put to the swap cache. In case of global memory shortage this swap cache will be freed, i.e. swapped out to disk. To summarize, this cool feature allows to have containers with strict memory limits, but decent overall system behavior.

The second feature (and thus the second step) is network namespaces -- an ability to for containers to have their own network stacks. This is still a work in progress. The first bits and pieces appeared in 2.6.24. A lot of network namespaces code (more than 200 changesets I guess) now appeared in 2.6.25, and despite my earlier predictions it's still not the end of the journey. A lot more code (also about 200 changesets) is now in net-2.6.26 tree (networking subsystem branch maintained by David Miller), scheduled to be included in Linux 2.6.26. Risking to be wrong for the second time, I'm still thinking that in Linux 2.6.26 we will likely have fairly complete implementation of net namespaces. A short description of what we will try to have in 2.6.26 as it comes for networking is here.

Speaking of 2.6.26 -- looks like it will be our next base kernel. We are now maintaining 2.6.24-based development branch (which is also used for OpenVZ-enabled Ubuntu Hardy Heron kernels), and will start porting OpenVZ patchset to 2.6.26 soon.

Finally, here's the graph that shows how many changesets, per kernel release, our team has contributed. No need to comment it I guess.

Also, here's the list of top10 contributors to the Linux 2.6.25. Our company is #7.
Top changeset contributors by employer
(None)                    1188 (9.3%)
Red Hat                   1181 (9.3%)
Novell                     817 (6.4%)
IBM                        703 (5.5%)
Intel                      472 (3.7%)
Bartlomiej Zolnierkiewicz  307 (2.4%)
Parallels                  278 (2.2%) <---
Oracle                     255 (2.0%)            227 (1.8%)
(Academia)                 225 (1.8%)

Pavel Emelyanov has made it to top10 of developers.
Developers with the most changesets
Bartlomiej Zolnierkiewicz  307 (2.4%)
Adrian Bunk                234 (1.8%)
Patrick McHardy            225 (1.8%)
Ingo Molnar                213 (1.7%)
Paul Mundt                 207 (1.6%)
Greg Kroah-Hartman         172 (1.4%)
Thomas Gleixner            166 (1.3%)
Jesper Nilsson             166 (1.3%)
Pavel Emelyanov            160 (1.3%) <---
Harvey Harrison            150 (1.2%)

Another prominent OpenVZ guy is Denis Lunev, who is number 26 in the list with 87 changesets. The full list of people contributed to this release is more than 1200 lines long.
Tags: kernel, openvz
  • Post a new comment


    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 1 comment