|
|
Subscribe / Log in / New account

3.9 Merge window part 1

By Jonathan Corbet
February 20, 2013
The 3.9 merge window has gotten off to a relatively slow start, with a mere 1,200 non-merge change sets pulled into the mainline as of this writing. The process may have been slowed a bit by a sporadic reboot problem that crept in relatively early, and which has not yet been tracked down. Even so, a number of significant changes have already found their way in for 3.9, with many more to follow.

Important user-visible changes include:

  • Progress has been made toward the goal of eliminating the timer tick while running in user space. The patches merged for 3.9 fix up the CPU time accounting code, printk() subsystem, and irq_work code to function without timer interrupts; further work can be expected in future development cycles.

  • A relatively simple scheduler patch fixes the "bouncing cow problem," wherein, on a system with more processors than running processes, those processes can wander across the processors, yielding poor cache behavior. For a "worst-case" tbench benchmark run, the result is a 15x improvement in performance.

  • The format of tracing events has been changed to remove some unused padding. This change created problems when it was first attempted in 2011, but it seems that the relevant user-space programs have since been fixed (by moving them to the libtraceevent library). It is worth trying again; smaller events require less bandwidth as they are communicated to user space. Anybody who observes any remaining problems would do well to report them during the 3.9 development cycle.

  • The ftrace tracing system has gained the ability to take a static "snapshot" of the tracing buffer controllable via a debugfs file. See this ftrace.txt patch for documentation on how to use this feature.

  • The perf bench utility has a new set of benchmarks intended to help with the evaluation of NUMA balancing patches.

  • perf stat has been augmented to include the ability to print out information at a regular interval.

  • New hardware support includes:

    • Systems and processors: The "Goldfish" virtual x86 platform used for Android development, Technologic Systems TS-5500 single-board computers, and SGI Ultraviolet System 3 systems.

    • Input: Cypress PS/2 touchpads and Cypress APA I2C trackpads.

    • Miscellaneous: ST-Ericsson AB8505, AB9540, and AB8540 pin controllers, Maxim MAX6581, MAX6602, MAX6622, MAX6636, MAX6689, MAX6693, MAX6694, MAX6697, MAX6698, and MAX6699 temperature sensor chips, TI / Burr Brown INA209 power monitors, TI LP8755 power management units, NVIDIA Tegra114 pinmux controllers, Allwinner A1X pin controllers, ARM PL320 interprocessor communication mailboxes, Calxeda Highbank CPU frequency controllers, Freescale i.MX6Q CPU frequency controllers, and Marvell Kirkwood CPU frequency controllers.

Changes visible to kernel developers include:

  • The workqueue functions work_pending() and delayed_work_pending() have been deprecated; users are being changed throughout the kernel tree.

  • The "regmap" API, which simplifies management of device register sets, now supports a "no bus" mode if the driver supplies simple "read" and "write" functions. Regmap has also gained asynchronous I/O support.

If the usual schedule holds, the 3.9 merge window should stay open until approximately March 5. As usual, LWN will list the most significant changes throughout the merge window; tune in next week for the next exciting episode.

Index entries for this article
KernelReleases/3.9


to post comments


Copyright © 2013, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds