LWN.net Logo

The 2.6.16 straggler list

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.


(Log in to post comments)

Copyright © 2006, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds