LWN.net Logo

3.2 merge window, part 1

By Jonathan Corbet
November 2, 2011
Linus released the 3.1 kernel and opened the 3.2 merge window on October 24 while sitting in the 2011 Kernel Summit. As of this writing, nearly 8200 non-merge changesets have been pulled into the mainline. That is a large number of changes, and a number of significant trees have yet to be pulled. This looks like it will be the busiest development cycle in some time, perhaps the biggest ever.

The most significant user-visible changes merged for 3.2 include:

  • The TCP stack now supports proportional rate reduction, an algorithm which allows for faster recovery after transient network problems.

  • Support for persistent alias names for disk devices has been added to the block layer.

  • The TOMOYO security module can now implement restrictions on environment variable names and socket operations.

  • The extended verification module subsystem, which uses the trusted platform module to protect a system against offline modifications to files, has been merged.

  • The CFS bandwidth controller, allowing an administrator to set maximum CPU usage for groups of processes, has been merged. See the documentation file for information on how to use this feature.

  • RAID 5 support has been added for object-storage devices. This is the third RAID 5 implementation in the kernel, with another (for btrfs) due to arrive in the near future.

  • The s390 architecture has gained kernel crash dump support.

  • The cross-memory attach facility, meant to provide for fast interprocess messaging, is now in the mainline. The form of the system calls has changed since this patch was last covered here, though:

        ssize_t process_vm_readv(pid_t pid, const struct iovec  *lvec, 
    			     unsigned long liovcnt, const struct iovec *rvec,
    		 	     unsigned long riovcnt, unsigned long flags);
    
        ssize_t process_vm_writev(pid_t pid, const struct iovec  *lvec, 
    			      unsigned long liovcnt, const struct iovec *rvec,
    		 	      unsigned long riovcnt, unsigned long flags);
    

    See the man page for more information.

  • The mremap() system call now works properly with transparent huge pages, reducing the number of page-split operations.

  • The x86 architecture has gained an SSSE3-optimized implementation of the SHA1 hash algorithm. From the changelog: "With this algorithm I was able to increase the throughput of a single IPsec link from 344 Mbit/s to 464 Mbit/s on a Core 2 Quad CPU using the SSSE3 variant -- a speedup of +34.8%." Optimized implementations of Blowfish and Twofish have been added as well.

  • There is a new user-space configuration interface for the crypto layer. Unfortunately, the implementers do not yet appear to have gotten around to writing any documentation for this interface.

  • Support for the "Hexagon" DSP-based architecture has been merged; see this article for more information.

  • DVFS ("dynamic voltage and frequency scaling") is a new mechanism for controlling devices that can operate at multiple voltage and frequency values, trading off between power consumption and performance as required. It is analogous to the cpufreq governor mechanism used for the CPU.

  • New device drivers:

    • Processors and systems:: Analog Devices EVAL-ADAU1373 boards, RSI Embedded Webserver boards, Calao USB-A9G20 boards, Samsung EXYNOS4212 SoC processors, Samsung SMDK4412 boards, Picochip picoXcell-based boards, OMICRON electronics DEVIXP, MICCPT, and MIC256 boards, DENX M28EVK boards, Vision Engraving Systems EP9307 systems, and Calxeda Highbank-based boards.

    • Block: Realtek RTS5139 USB card readers and Marvell Universal Message Interface devices.

    • Graphics: SMSC UFX6000/7000 USB framebuffer devices, Aeroflex Gaisler framebuffer devices, and Samsung SoC EXYNOS series graphic units.

    • Input: BMA150/SMB380 acceleration sensors, Wiimote accelerometer and IR devices, and Bachmann electronic TSC-10, 25 or 40 serial touchscreens.

    • Media: Wolfson Micro WM5100 low-power audio subsystems, Analog Devices ADAU1373 audio codecs, Au1000/Au1500/Au1100 audio controllers, ITE IT913x demodulators and tuners, Aptina MT9P031 and MT9T001 sensors, NXP TDA10071 DVB-S/S2 demodulators, Conexant CX24118A tuners, TOPRO USB cameras, Pinnacle PCTV HDTV Pro USB devices, and TT Connect S2-3600 cards.

    • Miscellaneous: Incite Technology USB-DUXsigma data acquisition boards, Qualcomm PM8xxx-base vibrator devices, Analog Devices AD7280A lithium ion battery monitoring devices, Analog Devices AD7190, AD7192 and AD7195 analog to digital convertors, Wiimote rumble and force-feedback devices, TI PICO DLP mini-projector devices, Samsung EXYNOS4 thermal management units, Linear Technologies LTC2978 hardware monitoring systems, ePAPR hypervisor byte channels, Renesas TPU LED controllers, and GPIO-controlled regulators.

    • Networking: Marvell PCIE 8766 wireless adapters.

    • USB: Marvell PXA168 on-chip EHCI HCD controllers and DesignWare USB3 DRD controllers.

    • Note also that the ath6kl wireless driver, the brcm80211 wireless driver, the tm6000 V4L2 driver, the Altera FPGA firmware download module, and the core hyper-v driver have graduated from the staging directory into the mainline.

Changes visible to kernel developers include:

  • The network drivers directory (drivers/net) has been massively rearranged with most drivers moved into media-specific or protocol-specific subdirectories.

  • The new "pin control subsystem" allows developers on embedded systems to configure the many multi-purpose pins found on contemporary system-on-chip processors. See Documentation/pinctrl.txt for the details. Drivers for the U300 and CSR SiRFprimaII pinmuxes have been added as well.

  • The new module_platform_driver() macro can eliminate a bunch of boilerplate code for simple platform drivers.

  • The power management quality-of-service API has grown a new capability for the management of per-device QOS constraints; it is intended to be used with the new DVFS subsystem. See Documentation/power/pm_qos_interface.txt for details on this API.

The merge window can be expected to run through approximately November 7. The latter part of the merge window will be summarized here in the November 10 Weekly Edition.


(Log in to post comments)

3.2 merge window, part 1

Posted Nov 3, 2011 8:44 UTC (Thu) by Lumag (subscriber, #22579) [Link]

I'm a little bit biased, but the kernel has also gained another transport for IPv6 networks: initial support for 6lowpan - IPv6 over IEEE 802.15.4 networks (http://tools.ietf.org/wg/6lowpan/) was merged.

3.2 merge window, part 1

Posted Nov 3, 2011 11:39 UTC (Thu) by jlayton (subscriber, #31672) [Link]

The cifs module also added support for async readpages and larger rsize. Depending on the situation, that can double to quadruple read performance.

3.2 merge window, part 1

Posted Nov 3, 2011 23:39 UTC (Thu) by BenHutchings (subscriber, #37955) [Link]

The network drivers directory (drivers/net) has been massively rearranged with most drivers moved into media-specific or protocol-specific subdirectories.

Actually, most drivers were in subdirectories like that before. The big change is that Ethernet drivers are now under a specific subdirectory too.

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