These are experimental kernels released by Andrew Morton. The -mm tree serves as a sort of proving ground for new features and other experimental patches. Once a patch has proved its worth in -mm for a while Andrew pushes it on to Linus for inclusion in mainline. This branch is in constant flux and contains many experimental features, a lot of debugging patches not appropriate for mainline etc and is the most experimental of the branches described in this document.
These kernels are not appropriate for use on systems that are supposed to be stable and they a more risky to run than any of the other branches (make sure you have up-to-date backups - that goes for any experimental kernel but even more so for -mm kernels). These kernels in addition to all the other experimental patches they contain usually also contain any changes in the mainline -git kernels available at the time of release.
Testing of -mm kernels is greatly appreciated since the whole point of the tree is to weed out regressions, crashes, data corruption bugs, build breakage (and any other bug in general) before changes are merged into the more stable mainline Linus tree. But testers of -mm should be aware that breakage in this tree is more common than in any other tree.
The -mm kernels are not released on a fixed schedule, but usually a few -mm kernels are released in between each -rc kernel (1 to 3 is common).
The mm kernels apply to either a base 2.6.x kernel (when no -rc kernels have been released yet) or to a Linus -rc kernel.
Here are some examples of applying the -mm patches
# moving from 2.6.12 to 2.6.12-mm1 $ cd ~/linux-2.6.12 # change to the 2.6.12 source dir $ patch -p1 < ../2.6.12-mm1 # apply the 2.6.12-mm1 patch $ cd .. $ mv linux-2.6.12 linux-2.6.12-mm1 # rename the source appropriately
# moving from 2.6.12-mm1 to 2.6.13-rc3-mm3 $ cd ~/linux-2.6.12-mm1 $ patch -p1 -R < ../2.6.12-mm1 # revert the 2.6.12-mm1 patch
- # we now have a 2.6.12 source
$ patch -p1 < ../patch-2.6.13-rc3 # apply the 2.6.13-rc3 patch
- # we now have a 2.6.13-rc3 source
$ patch -p1 < ../2.6.13-rc3-mm3 # apply the 2.6.13-rc3-mm3 patch $ cd .. $ mv linux-2.6.12-mm1 linux-2.6.13-rc3-mm3 # rename the source dir