|
|
Subscribe / Log in / New account

3.4 Merge window part 1

By Jonathan Corbet
March 21, 2012
The release of the 3.3 kernel on March 18 has led inevitably to the opening of the merge window for the 3.4 development cycle. As of this writing, some 3,500 non-merge changesets have been pulled into the mainline; this cycle, in other words, has just begun.

Some of the user-visible features merged for 3.4 include:

  • The perf utility understands a new --uid flag, which restricts data gathering to processes owned by the given user ID. It is also now possible to specify multiple processes or threads with the --pid and --tid options.

  • The perf events subsystem can now sample "taken branch" events on hardware with the "last branch record" functionality.

  • The "zcache" compressed caching system (still in staging) can now use the crypto API for access to compression algorithms.

  • The "Yama" security module has been merged; for now it just implements some restrictions on how the ptrace() system call can be used, but others may follow. Yama is meant to be a place to collect various discretionary access control mechanisms intended to make a system more secure.

  • The kernel now has read-only support for the qnx6fs filesystem used with the QNX operating system.

  • New drivers include:

    • Crypto: Tegra AES crypto engines.

    • Miscellaneous: EnergyMicro EFM32 UART/USART ports, Maxim DS2781 battery monitors, Solarflare SFC9000-family hwmon controllers, Solarflare SFC9000-family SR-IOV controllers, TI TPS62360 and TPS65217 power regulators, Samsung S5M8767 regulators, Renesas RSPI controllers, SuperH HSPI controllers, CSR SiRFprimaII SPI controllers, Broadcom BCM63xx SPI controllers, and Freescale i.MX on-chip ANATOP LDO regulators.

    • Network: Xilinx 10/100/1000 AXI Ethernet controllers, PEAK PCAN-ExpressCard, PCAN-USB and PCAN-PC CAN controllers, NXP Semiconductor LPC32xx ARM SoC-based Ethernet controllers, and TI CPSW switches.

    • USB: Ozmo USB-over-WiFi controllers.

    • Staging transitions: the old telephony drivers have been moved into staging in anticipation of their eventual removal from the kernel altogether.

    The kernel now also contains an audio USB gadget driver compliant with USB audio class 2.0.

Also worth noting: the "ramster" transcendent memory functionality was briefly added to the staging tree before being removed; various other changes had caused it to be seriously broken. Ramster can be thought of as a way of sharing memory across machines; a system with spare pages can host data for another that is under memory pressure. See this article for more details and this article for an exposition of the vision behind Ramster. Adding this functionality requires carving a number of features out of the OCFS2 filesystem and making them globally available. One assumes these patches will return for 3.5.

Changes visible to kernel developers include:

  • Jump labels have been rebranded again; after a false start they are now known as "static keys". Details can be found in the new Documentation/static-keys.txt file.

  • The (now) unused get_driver() and put_driver() functions have been removed from the kernel.

  • The debugfs filesystem understands the uid=, gid=, and mode= mount options, allowing the ownership and permissions for the filesystem to be set in /etc/fstab.

  • The zsmalloc allocator has been added to the staging tree; the older "xvmalloc" allocator has been removed.

  • The Android "alarm" driver has been added to the staging tree.

  • The deferred driver probing mechanism has been merged.

  • The list of power management stages continues to grow; the kernel has new callbacks called suspend_late(), resume_early(), freeze_late(), thaw_early(), poweroff_late(), and restore_early() for operations that must be performed at just the right time.

  • The "IRQ domain" abstraction has been merged; IRQ domains make it easier to manage interrupts on systems with more than one interrupt controller. See Documentation/IRQ-domain.txt for more information.

  • The long-unused second argument to kmap_atomic() has been removed. Thanks to some preprocessor trickery, calling kmap_atomic() with two arguments still works, but a deprecation warning will result.

  • There is a new mechanism for the autoloading of drivers for specific x86 CPU features. Such drivers should declare a MODULE_DEVICE_TABLE with the x86cpu type; see the comments at the head of arch/x86/kernel/cpu/match.c for details.

The 3.4 merge window can be expected to continue until roughly April 2. There are a lot of subsystem trees yet to be pulled, so one can expect a large number of changes to go in between now and then.

Index entries for this article
KernelReleases/3.4


to post comments

3.4 Merge window part 1

Posted Mar 22, 2012 1:50 UTC (Thu) by djm1021 (guest, #31130) [Link] (2 responses)

Thanks for the mention of RAMster and the other article references! A couple of quick corrections: (1) RAMster is still in 3.4 as can be seen in Linus' git tree under drivers/staging/ramster. It is marked with CONFIG_BROKEN only because it is waiting for another patch (submitted by Konrad Wilk) changing the name of some functions in cleancache that it depends on... as soon as that patch is merged, the CONFIG_BROKEN can be removed from ramster's Kconfig. (2) In the merged ramster code, the ocfs2 dependency has been removed. At the request of Sunil Mushran, the small amount of ocfs2 cluster management and messaging code has now simply been duplicated for ramster as it will likely evolve quite differently and there just isn't enough code to make it worth pulling it out for global use beyond ocfs2. (This decision can be revisited later before ramster would be promoted out of staging.)

3.4 Merge window part 1

Posted Mar 24, 2012 22:36 UTC (Sat) by cesarb (subscriber, #6266) [Link] (1 responses)

AFAIK, Corbet was not wrong. IIRC, ramster *was* removed, and added back again a few patches later.

3.4 Merge window part 1

Posted Mar 25, 2012 16:38 UTC (Sun) by djm1021 (guest, #31130) [Link]

OK, I see what you mean. Actually, ramster *was* reverted just after it was merged into staging-next in early February (because it was dependent on xvmalloc which, coincidentally, had just been removed from staging-next) and then ramster was added back to staging-next soon after, and THEN disabled with CONFIG_BROKEN because it was dependent on a git pull ordering (cleancache fix) in linux-next. That sordid staging-next history was entirely merged into linux-next and into Linus's tree. So 3.4-rc0 never reverted ramster, although the git log might imply otherwise.

So we were both not wrong. ;-)

Now that all those dependencies are resolved in Linus's tree, a simple patch to remove the CONFIG_BROKEN in ramster's KConfig has been submitted and is awaiting merging for -rc1 via GregKH. Anyone wishing to try ramster in 3.4-rc0 can manually remove the CONFIG_BROKEN.

3.4 Merge window part 1

Posted Mar 28, 2012 1:14 UTC (Wed) by BenHutchings (subscriber, #37955) [Link]

Solarflare SFC9000-family hwmon controllers, Solarflare SFC9000-family SR-IOV controllers

The SFC9000 family chips are network controllers. The hwmon and SR-IOV support are new and optional features of the existing driver (sfc).


Copyright © 2012, 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