|
|
Subscribe / Log in / New account

4.2 Merge window part 2

By Jonathan Corbet
July 1, 2015
Last week's merge window summary noted that "things are just getting started." Since then, Linus has pulled nearly 8,000 non-merge changesets into the mainline repository, making the total for the 4.2 merge window just short of 11,000. It is fair to say that things have truly started now.

Whether 4.2 will, as Linus recently predicted, be the busiest development cycle ever remains to be seen. That record is currently held by 3.15, which saw just over 12,000 changesets pulled during its merge window. Things seem to be winding down on the 4.2 front, so it may not exceed 3.15's totals. There is no doubt, though, that this is a busy development cycle.

Some of the more interesting changes merged since last week's summary include:

  • The Linux security module stacking patches have been merged, finally giving the kernel the ability to combine security modules in a generic manner.

  • A new packet classifier called "Flower" has been added. With Flower, "you will be able to classify packets based on a configurable combination of packet keys and masks." This classifier appears to be entirely lacking in documentation, unfortunately.

  • A driver for GENEVE (Generic Network Virtualization Encapsulation) tunnels has been added to the networking subsystem.

  • The netfilter subsystem has gained support for ingress-time packet classification.

  • Unix-domain sockets now support the splice() system call.

  • Support for the delay-gradient congestion-control algorithm has been merged.

  • The F2FS filesystem has gained support for a number of features including per-file encryption and the FALLOC_FL_ZERO_RANGE and FALLOC_FL_COLLAPSE_RANGE fallocate() operations.

  • The ext4 filesystem now supports the FALLOC_FL_INSERT_RANGE operation, which inserts a range of zero-filled space into an existing file.

  • Support for the Renesas H8/300 architecture was removed a couple of years ago due to lack of maintenance; that code has now been rewritten, fixed up, and merged back into the kernel.

  • The control group writeback patches have been merged. This work allows for better control of data writeback within control groups, fixing an area that has not worked well for a long time.

  • The device mapper's dm-cache module has gained support for stochastic multi-queue caching. See the commit message for details.

  • The thermal control subsystem has a new power-allocator governor, designed to divide power among heat sources while keeping the overall temperature of the system within bounds. See Documentation/thermal/power_allocator.txt for information on how it works.

  • The XFS filesystem has gained the ability to directly access persistent-memory devices via the DAX interface.

  • The CIFS filesystem can now handle (in an experimental mode) version 3.1.1 of the SMB protocol.

  • New hardware support includes:

    • Systems and processors: Socionext UniPhier SoCs.

    • Audio: Texas Instruments TAS5711/TAS5717/TAS5719 power amplifiers, ZTE zx296702 I2S digital audio interfaces, and Mediatek AFE PCM controllers.

    • Block: Broadcom STB AHCI SATA controllers and CEVA AHCI SATA controllers.

    • Graphics: Samsung Exynos SoC mobile image compressors. Support has been merged for new AMD GPUs; it currently supports AMD "Tonga," "Iceland," and "Carrizo" systems. The driver is not small, clocking in at well over 400,000 lines of code. There is also a new "virtio-gpu" driver that implements a kernel-mode-setting virtual GPU for use within virtual machines.

    • I2C: APM X-Gene SoC SLIMpro I2C controllers, MediaTek I2C adapters, and Broadcom Settop I2C controllers.

    • IIO: Sensortek STK3310 ambient-light and proximity sensors, Sensortek STK8312 and STK8BA50 3-axis accelerometers, Bosh BMC150 magnetometers, MEMSIC MMC35240 3-axis magnetic sensors, ROHM BH1750 ambient light sensors, ACPI ambient light sensors, Mitsubishi M62332 digital-to-analog converters, and Marvell Berlin2 analog-to-digital converters.

    • Media: DataTranslation DT3155 frame grabbers (staging graduation), Conexant CX24120-based tuners, Cisco Cobalt video cards, and STMicroelectronics BDISP 2D blitters.

    • Miscellaneous: APM X-Gene SoC error-detection and correction units, TI DRV2665 haptic controllers, Dialog DA9063 power buttons, Broadcom BCM2835 mailboxes, Mediatek MT6397 realtime clocks, Cortina Gemini SoC realtime clocks, NVIDIA Tegra124 external memory controllers, ARM CCI500 performance-monitoring units, Qualcomm power-management units, Allwinnner SoC SRAM controllers, CoreSight Embedded Trace Macrocell 4.x tracer modules, Unisys visorbus devices, and Himax HX8357D LCD controllers.

    • Networking: Cavium ThunderX network controllers, Mellanox Technologies ConnectX-4 interfaces, ATUSB transceivers, Texas Instruments DP83867 Gigabit PHYs, Mediatek MT7601U-based wireless USB dongles, Cavium LiquidIO Intelligent Server adapters, Renesas Electronics Ethernet AVB controllers, EZchip Ethernet interfaces, Atmel WILC1000 wireless interfaces, and Unisys visornic interfaces.

    • Pin control: NXP LPC18xx/43xx system control units, Freescale IMX7D pin controllers, IMG Pistachio SoC pin controllers, Mediatek MT6397 pin controllers, CSR SiRFatlas7 pinmux controllers, Allwinner a33 SoC pin controllers, Qualcomm 8660 pin controllers, and Renesas R8A7794 SoC pin controllers.

    • Thermal: Intel Quark digital temperature sensors, Qualcomm SPMI PMIC temperature alarms, and Hisilicon thermal sensors.

    • TTY: UniPhier on-chip UARTs, NXP LPC18xx/43xx serial ports, and STMicroelectronics STM32 serial ports.

    • USB: TI TUSB1210 ULPI PHY modules, Broadcom STB SATA PHYs, Marvell USB 2.0 28nm PHYs, Marvell USB HSIC 28nm PHYs, and IMG Pistachio USB2.0 PHYs.

Changes visible to kernel developers include:

  • The networking subsystem's "page fragment" allocator has been moved into the memory-management subsystem. Page fragments are arbitrarily sized chunks of memory, allocated for short periods of time. They are allocated and freed with:

        void *__alloc_page_frag(struct page_frag_cache *nc, unsigned int fragsz, 
                                gfp_t gfp_mask);
        void __free_page_frag(void *addr);
    

  • The kernel self-tests subsystem has gained tests for the futex and secure computing ("seccomp") subsystems.

  • There is a new kernel subsystem called "libnvdimm," which provides various types of access to non-volatile memory (NVM) arrays. At the lowest level, it is able to enumerate arrays found on the system and present them as devices to the rest of the system. There are some add-on layers as well:

    • Some new functions have been introduced for the safe writing of data to NVM devices: memremap_pmem(), memcpy_to_pmem(), and wmb_pmem(). Their purpose is to ensure that data has actually been written to the device and is not lurking in a processor or bus cache somewhere — that it's actually persistent, in other words.

    • "Regions" are ranges of NVM that are separated out into separate virtual devices; they may span more than one physical device.

    • The "BLK" driver provides a mode of access where only a small "window" into an NVM device is mapped into the kernel's address space at any given time. The primary purpose for this mode appears to be to minimize the chances of persistent-memory corruption via writes to random pointers.

    • The "BTT" (block translation table) module adds an indirection layer to provide for atomic, sector-sized access to NVM arrays. The idea is to prevent the creation of corrupted filesystem blocks should the system go down in the middle of a block-write operation.

    See Documentation/nvdimm/nvdimm.txt for lots of details.

By the usual schedule, the merge window should stay open until July 5. Check back next week for a summary of the final commits merged for this development cycle.

Index entries for this article
KernelReleases/4.2


to post comments


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