3.16 merge window, part 1
The merge window for the 3.16 kernel might be showing us a glimpse of a future where kernel releases happen even more frequently than they do today. By opening the window for 3.16 before the final release of the 3.15 kernel, Linus Torvalds may have shaved a week off the time between the two kernels. The length of kernel development cycles has generally trended downward, but has leveled off between 60 and 70 days for recent releases. While Torvalds's reason for overlapping the development cycles of two kernels—a family vacation—may not recur anytime soon, he may find that some parallelism in kernel development suits his purposes moving forward.
So, unlike previous merge windows, Torvalds is juggling two branches for a week—or possibly longer if serious problems pop up in -rc8. There is the mainline (or "master") branch on his tree that is accumulating the—hopefully small—fixes that are going into 3.15. In addition, he is managing a "next" branch that is collecting all of the changes bound for 3.16 (i.e. the merge window changes). Once 3.15 is released, he will presumably merge next to master and keep on merging from there.
As he said in the -rc8 release
announcement, this part
of the development cycle is typically fairly boring for Torvalds and the
rest of the kernel hackers.
Normally, Torvalds is "just waiting around to make sure nothing bad is
happening
" for the last few weeks of each cycle. If
this "experiment" works well, one—or even two—week overlaps between kernel
cycles could become a regular occurrence. That could increase the
already
frenetic pace of kernel development substantially.
As of this writing, Torvalds has pulled 5348 non-merge changes for 3.16 (and 54 into the mainline after the v3.15-rc8 tag). Since we are in uncharted territory, it is a little hard to say for sure when the merge window will close, but one could guess that it will before he leaves on vacation, so an -rc1 on or about June 15 seems just about right.
Changes visible to users include:
- Xen on ARM systems now supports suspend and resume.
- SMP support has been added for Marvell Armada 375 and 38x SoCs. SMP has been reworked for the Allwinner A31 SoC.
- The Goldfish virtual platform now has 64-bit support.
- Early debug serial consoles have been made generic and support for early consoles on the p1011 serial port has been added.
- KVM on s390 gained some optimizations, support for migration, and GDB support.
- KVM has added initial little-endian support for POWER8. The project has also done MIPS user-space interface and virtualized timer work along with adding support for nested fully-virtualized Xen guests on x86 hosts.
- ACPI video will now default to using native backlight drivers, rather
than the
ACPI backlight interface, "
which should generally help systems with broken Win8 BIOSes
", Rafael Wysocki said in the pull request. - New hardware support includes:
- Systems and processors: Support for several ARM system-on-chips (SoCs) has been added via device tree bindings, including ST Microelectronics STiH407; Freescale i.MX6SX; Samsung EXYNOS 3250, 5260, 5410, 5420, and 5800; and LSI Axxia AXM55xx.
- Audio: Behringer BCD2000 DJ controllers; NVIDIA Tegra HD Audio controllers; FireWire devices based on the Echo Digital Audio Fireworks board; FireWire devices based on BridgeCo DM1000/DM1100/DM1500 with BeBoB firmware; SoC Audio for Freescale i.MX CPUs; TI STA350 speaker amplifiers; Realtek ALC5651 codecs; Analog Devices ADAU1361 and ADAU1761 codecs; Analog Devices ADAU1381 and ADAU1781 codecs; Cirrus Logic CS42L56 low-power stereo codecs; Intel Baytrail with MAX98090 codecs; Realtek ALC5677 codecs; Google Snow boards.
- Sensors: AS3935 Franklin lightning sensors; Asahi Kasei AK8963 magnetometers; Invensense MPU6500 gyroscope/accelerometers; Freescale MPL115A2 pressure sensors; Melexis MLX90614 contact-less infrared sensors; Freescale MMA8452Q accelerometers; Nuvoton NCT6683D hardware-monitoring chips.
- Miscellaneous: SSI (Synchronous Serial Interface, aka McSAAB) protocol support; OMAP3 SSI; Nokia N900 modems; Renesas R-Car PCIe controllers; Maxim MAX77836 Micro-USB interface controllers (MUIC); Analog Devices AD799x analog-to-digital converters (ADC) graduated from staging; Microchip Technology MCP3426, MCP3427, and MCP3428 ADCs; HID device rotation; MEN 16z135 High Speed UARTs; SC16IS7xx serial ports; Exynos 5 USB dual-role device (DRD) PHYs; Maxim MAX3421 HCDs (USB-over-SPI); Marvell Armada 375/38x ARM SOC xHCI host controllers; Qualcomm APQ8064 top-level multiplexing (TLMM) blocks; Qualcomm IPQ8064 TLMM blocks; Cadence SPI controllers; X-POWERS AXP20X PMIC regulators; LTC3589, LTC3589-1, and LTC3589-2 regulators; CPU idle has been added for Cirrus Logic CLPS711X SOCs; Synaptics RMI4 touchpads; HDMI support for OMAP5.
Changes visible to kernel developers include:
- The m68k architecture now has early_printk() support for more platforms.
- Lots of cleanup and refactoring has been done in the GPIO subsystem.
- Much work has gone into the multiqueue
block layer; "
3.16 will be a feature complete and performant blk-mq
", Jens Axboe said in his pull request. Multiqueue SCSI will be coming in 3.17. The Micron PCIe flash driver (mtip32xx) has been converted to multiqueue and those changes were merged as well. - Several block layer files have moved from the fs/ and mm/ directories to the block/ directory: bio.c, bio-integrity.c, bounce.c, and ioprio.c.
- Samsung Exynos ARM SoCs now support multi-cluster power management, which allows big.LITTLE CPU switching. There is also support for multi-platform kernels incorporating Exynos, though there is still some driver work to do.
- CONFIG_USB_DEBUG has been removed and all USB drivers have been converted to use the dynamic debug interface.
- The smp_mb__{before,after}_{atomic,clear}_{dec,inc,bit}() family of memory-barrier functions has been substantially reduced, to just two: smp_mb__{before,after}_atomic().
Next week's edition will pick up any merges made after this report. If
there are any significant merges after that, we'll write those up for the
following week as well.
Index entries for this article | |
---|---|
Kernel | Releases/3.16 |
Posted Jun 5, 2014 13:42 UTC (Thu)
by smitty_one_each (subscriber, #28989)
[Link]
Posted Jun 7, 2014 12:32 UTC (Sat)
by alonz (subscriber, #815)
[Link]
3.16
Having a concurrent development branch and stabilization branch looks eerily similar to the old pre-2.6-era development model…
Are we seeing a return to history?