The release of 2.6.16-rc1 was supposed to signal the closing of the window
for new features. For the most part, things have happened that way. A few
additional features did find their way in after 2.6.16-rc1 came out,
though. Here is a quick list.
- The work of making the slab allocator smarter on NUMA machines
continues. In previous versions of the kernel, slab allocations
made during the bootstrap process would all end up on the boot node,
causing an imbalance across the NUMA system. It was also possible for
processes with non-default memory allocation policies to "contaminate"
allocations for other processes. The 2.6.16 slab allocator will make
more explicit decisions about just how allocations should be performed
to spread out boot-time allocations and to ensure that each process
gets the allocation policy it asked for.
- NUMA systems can also perform memory reclamation on individual memory
zones, on the theory that forcing out pages can be cheaper than
allocating non-local pages.
- A number of new system calls, including openat() and friends,
ppoll(), and pselect(), have been merged. These
calls were discussed here last December.
- Perhaps the biggest late addition is the EDAC ("error detection and
correction") subsystem. The purpose of the EDAC code is to watch for
errors in the operation of the system and to scream when they are
detected. EDAC, as merged, is oriented mainly toward memory errors.
It will poll the memory controllers (drivers for a few families of
controllers have been merged) on a regular basis for both correctable
and uncorrectable errors. Log messages can be generated for both
types of errors, and there is a sysfs interface as well. Optionally,
the EDAC code can be told to immediately panic the system on an
uncorrectable error; in this way, it is hoped, uncorrectable errors
will not lead to data corruption elsewhere in the system.
One assumes that uncorrectable errors will be rare, however. The real
intent is to allow administrators to see when significant numbers of
correctable errors are being detected. Since those errors will often
degrade, over time, into uncorrectable problems, the presence of
correctable errors is a strong indication that the affected memory
bank should be replaced.
The EDAC code can also watch for parity errors on the system's PCI
buses. Getting good information from the PCI subsystem can be harder,
however, since, apparently, some vendors do not follow the specs when
it comes to the generation of parity information.
For more information on EDAC, including details on the sysfs interface, see drivers/edac/edac.txt in the current
mainline documentation directory.
At this point, the 2.6.16 merge window can truly be considered closed; the
feature set for this release is probably complete.
to post comments)