|
|
Subscribe / Log in / New account

4.9 Merge window part 2

By Jonathan Corbet
October 12, 2016
As of this writing, Linus has pulled 13,488 non-merge changesets into the mainline repository for the 4.9 development cycle. That suggests that not only will 4.9 be the busiest cycle in the kernel's history, but that it will surpass the previous record (3.15, at 13,722 changesets) before the merge window closes. The merging of the greybus driver code has a lot to do with that but, even without greybus, there is a lot going on this time around.

Among the user-visible changes merged since last week's summary are:

  • The system calls for the memory protection keys feature have been merged. The pkey_alloc(), pkey_free(), and pkey_mprotect() calls are as described in this article, but the pkey_set() and pkey_free() calls, which can be implemented purely in user space, were not included. See Documentation/x86/protection-keys.txt for details.

  • The bottleneck bandwidth and RTT (BBR) congestion control algorithm has been merged.

  • The BATMAN mesh networking subsystem has a new netlink-based configuration mechanism that will, over time, supersede and replace the older, debugfs-based interface.

  • The netfilter module supports a new "quota" mechanism designed to enable the enforcement of byte quotas. There's also a new random-number generation module intended to enable the random distribution of packets (across multiple queues, for example).

  • There is a new just-in-time BPF compiler that can be used to load BPF programs for execution within Netronome network interfaces. In 4.9, only the cls_bpf classifier module will take advantage of this capability.

  • The filesystems in user space (FUSE) module now supports POSIX access-control lists.

  • The Greybus subsystem has been merged. This bus was intended for the "Project Ara" phone, which has since been canceled, but Greg Kroah-Hartman successfully argued for its inclusion anyway. This merge includes the entire development history for this code, some 2,400 changesets in total.

  • There is a new set of resource limits controlling how many namespaces may be created within any given user namespace. See Documentation/sysctl/user.txt for details.

  • The hardware latency tracer (which seeks to flush out latencies caused by the hardware itself) has moved into the mainline from the realtime tree. See Documentation/trace/hwlat_detector.txt for details and usage information.

  • The ubifs filesystem now supports overlayfs and the O_TMPFILE file-creation option.

  • New hardware support includes:

    • Systems and processors: Broadcom BCM53573-based processors.

    • Audio: Nuvoton NAU8810 audio codecs, Realtek RT5660/RT5663/RT5668 audio codecs, X-Powers AC100 audio codecs, and Samsung Exynos SoC low power audio subsystems.

    • Industrial I/O: Maxim thermocouple sensors, Measurement Computing CIO-DAC digital-to-analog converters, Asahi Kasei AK8974 3-axis magnetometers, Domintech DMARD05/DMARD06/DMARD07 accelerometers, Texas Instruments ADC161S626 1-channel differential analog-to-digital converters, Texas Instruments' ADC12130/ADC12132/ADC12138 analog-to-digital converters, MediaTek mt65xx analog-to-digital converters, Linear Technology LTC2485 analog-to-digital converters, Analog Devices AD8801/AD8803 digital-to-analog converters, Apex Embedded Systems STX104 analog-to-digital converters, mCube MC3230 digital accelerometers, and Murata ZPA2326 pressure sensors.

    • Media: Atmel image sensor controllers, Analog Devices AD5820 lens voice coils, Techwell TW5864 video/audio grabber/encoders, STMicroelectronics HVA multi-format video encoders, STMicroelectronics STiH4xx HDMI CEC interfaces, and Gennum GS1662 HD/SD-SDI serializers.

    • Miscellaneous: Rockchip RK818 power-management chips, Elan eKTF2127 touchscreen controllers, Microsemi PQI SCSI controllers, Intel integrated sensor hubs, Cavium ThunderX I2C buses, Cavium ThunderX random number generators, APM X-Gene SoC performance monitoring units, Qualcomm external bus interfaces (version 2), JDI LT070ME05000 WUXGA DSI panels, and Amlogic Meson PWM controllers.

    • Networking: Microsemi VSC85xx PHYs, Amazon Elastic Network adapters, Thunder RGX/RGMII MAC interfaces, Chelsio crypto coprocessors, Qualcomm EMAC gigabit Ethernet controllers, and Qualcomm Atheros QCA8K Ethernet switches.

    • Pin Control / GPIO: Aspeed G4/G5 pin and GPIO controllers, NextThing GR8 pin controllers, X-Powers AXP209 PMIC GPIO controllers, Intel Whiskey Cove PMIC GPIO controllers, Diamond Systems GPIO-MM controllers, Technologic Systems FPGA I2C GPIO controllers, and TI LP873X PMIC GPIO controllers.

    • Thermal: Qualcomm TSENS temperature sensors, QorIQ thermal monitoring units, and Intel Broxton PMIC thermal monitors.

Changes visible to kernel developers include:

  • The handling of messages printed with printk() has changed for the case of single-line messages created with multiple printk() calls. The rule has long been that the continuation lines should be marked with the KERN_CONT pseudo log level, but that requirement has not been enforced for several years. As of this commit, the use of KERN_CONT is again mandatory; without it, output will be garbled. Many places in the kernel will need fixing; for the short term, expect some ugly output from 4.9-rc kernels.

  • The "kthread_worker" API has seen a number of changes. These include the renaming of most functions to start with "kthread_" (e.g. init_kthread_worker() becomes kthread_init_worker()), the addition of kthread_create_worker() and kthread_destroy_worker(), support for delayed kthread work, and support for freezable kthreads.

  • The network subsystem has added a module called "strparser"; its job is to parse (in-kernel) application-layer protocol messages from a TCP connection. See Documentation/networking/strparser.txt for details.

  • The handling of extended attributes in filesystems has changed. Filesystems that support extended attributes should create an xattr_handlers structure with its low-level methods and attach it to the superblock structure. The setxattr(), getxattr() and removexattr() inode operations are no longer used and have been removed.

  • The rename() inode operation has gained a flags argument. In truth, rename() was removed and the rename2() operation was, well, renamed; all in-kernel filesystems have been updated to reflect the change.

  • The new function current_time() returns the current time at the proper resolution for storage in a specific filesystem; it replaces the old CURRENT_TIME() macro. Among other things, the new API is year-2038 safe.

At this point, it seems likely that things will slow down considerably as the 4.9 merge window approaches its scheduled closing on October 16.

Index entries for this article
KernelReleases/4.9


to post comments


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