2.6.28 merge window, part 2
last week's update
As of this writing, just under 6200 non-merge changesets have been merged
into the mainline kernel since the 2.6.27 release. This merge window
should be drawing to a close around October 24, so we are getting
closer to seeing what 2.6.28 will look like. User-visible changes merged
- New drivers have been merged for
Maxim/Dallas DS3234 SPI realtime clock chips,
VIA UniChrome Family graphics chipsets,
Toshiba Mobile IO framebuffers,
C-Media CM109 USB phones,
the touchpad shipped on OLPC XO systems,
Automata Sercos III PCI cards (via UIO),
Delcom USB 7-segment LED displays,
generic USB test-and-measurement devices,
Freescale QE/CPM USB device controllers,
Vernier Software Technologies USB spectrometers,
GPIO-connected NAND flash devices,
Freescale i.MX2 and i.MX3 flash controllers,
OMAP2/OMAP3-connected OneNAND flash devices,
Dialog DA9030/DA9034 multifunction controllers, and
Texas Instruments TWL4030/TPS659x0 multifunction controllers.
- The driver staging tree has been moved into the mainline.
It brings with it a new TAINT_CRAP flag and suitably tainted drivers
for Meilhaus ME-4000 data collection boards,
Go 7007 ("some weird device") video controllers,
Agere ET-1310 Gigabit Ethernet controllers,
Atmel at76c503/at76c505/at76c505a wireless USB cards,
Alacritech SLIC Technology non-accelerated 10Gb Ethernet cards,
Alacritech IS-NIC gigabit Ethernet cards,
Winbond w35und wireless network adapters,
and Prism 2.5 USB wireless network adapters (a driver which includes
its own 802.11 stack). Also added are an echo cancellation module and
a driver which enables the passing of network packets over a USB link.
- A lot of work on the Intel i915 graphics driver has been merged; this
work includes the Graphics
Execution Manager (GEM) GPU memory management subsystem and "IGD
OpRegion" support which enables ACPI backlight control. It looks like
kernel-based mode setting might not make it for 2.6.28, but much of
the rest of the big graphics rework is now merged.
- The way video drivers handle waiting for vertical blank cycles has
been changed to reduce interrupts - and, thus, power consumption.
- Rik van Riel's memory
management scalability patches have, at long last, been merged.
These patches separate the management of anonymous, file-backed, and
completely unevictable pages, eliminating a lot of useless page scanning.
- Another VM improvement causes the system to free a page's swap space
after that page is brought back into RAM; this effectively increases
the amount of swap available on the system.
- Nick Piggin's rewritten vmap
layer should give significant performance
improvements, especially as the number of CPUs on a system grows.
- Huge pages will now be included in core dumps, making the debugging of
applications using those pages easier.
- The container freezer
has been merged. It is now possible for the system to freeze all
processes within a container (control group) as a unit.
- The KVM virtualization code has seen a number of improvements,
including the ability to assign PCI devices to guests and support for
Intel "Tukwila" processors.
- Kprobes are now supported by the SuperH architecture.
- There is a new ext3 mount option (data_err=abort) which
causes filesystem operations to abort when I/O errors are
encountered. In the absence of this option, the old behavior
(continue but complain in the system log) remains.
- In-kernel interrupt balancing for 32-bit x86 systems has been
removed. This feature has been deprecated (in favor of user-space
balancing) for some time.
Changes visible to kernel developers include:
- A number of tracing-related patches have been merged. These include
mechanism, some instrumentation in the core scheduler code,
improvements to the ftrace function tracing feature,
a new ftrace-based stack tracer,
a new ftrace-based boot (initcall) tracer, and
the low-level trace
- The sysctl strategy() function prototype has changed: the
unused name and nlen parameters have been removed.
- Asynchronous I/O support can now be configured out of the kernel,
saving about 7KB of space on systems where AIO is not needed.
- As planned, device_create_drvdata() has been renamed to
device_create(), with the same parameters.
- There is now a mechanism to enable and disable output from
pr_debug() and dev_dbg() calls on a per-module
basis. Control is through a virtual file in debugfs. There is no
documentation file associated with this change; instructions on how
to use this feature can be found in the
- The new dev_WARN() function:
dev_WARN(struct device *dev, char *format, ...);
will output the formatted warning, along with a full stack trace.
This will allow the warnings to be collected at kerneloops.org and incorporated into
the reports there.
- The new %pR formatting directive allows printk() and
friends to output the contents of resource structures.
- There is a new function intended to make life easier for PCI driver
static inline void *pci_ioremap_bar(struct pci_dev *pdev, int bar);
This function will remap the entire PCI I/O memory region, as
selected by the bar argument.
See next week's Kernel Page for a summary of the final days of the 2.6.28
to post comments)