|
|
Subscribe / Log in / New account

4.3 Merge window, part 2

By Jonathan Corbet
September 10, 2015
As of this writing, some 10,200 non-merge changesets have been pulled into the mainline repository — 6,200 since last week's summary. The 4.3 development cycle thus looks to be a busy one, even if it doesn't quite match the volume seen in 4.2. Quite a few interesting features have been pulled into the mainline over the last week.

First, though, a couple of items from last week deserve a followup mention:

  • As predicted, the removal of the ext3 filesystem eventually went through. Linus was worried about the effect of the removal on ext3 users, but was eventually convinced that the ext4 maintainers will continue to support those users without forcing their filesystems forward to the ext4 format.

  • The disabling of the VM86 feature described last week appears to have been a bit premature; some complaints have made it clear that it's a feature that would be missed. So VM86 will likely come back before the 4.3 kernel is released. Linus had an interesting idea, though: setting the mmap_min_addr parameter to a non-zero value effectively makes VM86 unusable for DOS emulation, so it would be reasonable to disable VM86 in that case. The kernel's default setting is 4,096, and most distributions use a value at least that high, so the end result would be to disable VM86 on the vast majority of systems where it cannot be used anyway.

Other interesting, user-visible activity in the last week includes:

  • The user-space page-fault handling patch set has been merged at last. The main use case for this feature is live migration of virtualized guests, but others probably exist as well. See Documentation/vm/userfaultfd.txt for more information.

  • The ambient capabilities work has been merged, changing the way capability inheritance is managed. See this commit message for lots of details.

  • Support for IPv6 is now built into the kernel by default. Tom Herbert justified this change in the changelog by saying: "IPv6 now has significant traction and any remaining vestiges of IPv6 not being provided parity with IPv4 should be swept away. IPv6 is now core to the Internet and kernel."

  • The networking layer now has "lightweight tunnel" support. In the networking pull request, Dave Miller said: "I've heard rumblings that the lightweight tunnels infrastructure has been voted networking change of the year. But what do I know?" Indeed it may be a while before any of us know, since this feature appears to be quite thoroughly undocumented. A bit of information does appear in this merge commit, though.

  • Equally undocumented is the virtual routing domains feature, which allows the splitting of the kernel's routing tables into disjoint planes. It appears to be a virtualization feature. See the merge commit for some information.

  • The identifier locator addressing feature is aimed at communication within data centers where tasks can migrate from one machine to another.

  • The discard_max_bytes parameter associated with block devices is now writable. Administrators who are concerned about massive latencies caused by large discard operations can tweak this parameter downward, causing those operations to be split into smaller operations.

  • The Open vSwitch subsystem has gained a new module providing access to the kernel's network connection-tracking mechanism.

  • The new "overflow scheduler" in the IP virtual server subsystem "directs network connections to the server with the highest weight that is currently available and overflows to the next when active connections exceed the node's weight"

  • The MIPS architecture has gained support for the user-space probes (uprobes) mechanism.

  • There is a new ptrace() operation (PTRACE_O_SUSPEND_SECCOMP) that can be used to suspend secure computing (seccomp) filtering. This operation can only be invoked by a process with CAP_SYS_ADMIN in the initial namespace; it is intended to make it possible to checkpoint processes running in the seccomp mode.

  • The Smack security module has gained the ability to associate labels with IPv6 addresses.

  • The SELinux security module has a new ability to check ioctl() calls on a per-command basis.

  • Audit rules can now target the actions of a process based on which executable it is running.

  • New hardware support includes:

    • Audio: Cirrus Logic CS4349 codecs, Option GTM601 UMTS modem audio codecs, InvenSense ICS-43432 I2S MEMS microphones, Realtek ALC298 codecs, and STI SAS codecs.

    • DMA: NXP LPC18xx/43xx DMA engines, Allwinner A10 DMA controllers, ZTE ZX296702 DMA engines, and Analog Devices AXI-DMAC DMA controllers.

    • Media: Toshiba TC358743 HDMI to MIPI CSI-2 bridges, Renesas JPEG processing units, Sony Horus3A and Ascot2E tuners, Sony CXD2841ER DVB-S/S2/T/T2/C demodulators, STM LNBH25 SEC controllers, NetUP Universal DVB cards, and STMicroelectronics C8SECTPFE DVB cards.

    • Miscellaneous: NXP LPC SPI flash interfaces, IBM CXL-attached flash accelerator SCSI controllers, ZTE ZX GPIO controllers, LG LG4573 TFT liquid crystal displays, Freescale DCU graphics adapters, NXP LPC178x/18xx/408x/43xx realtime clocks, NXP LPC178x/18xx/408x/43xx I2C controllers, Zynq Ultrascale+ MPSoC realtime clocks, Renesas EMEV2 IIC controllers, Atmel SDMMC controllers, and Intel OPA Gen1 InfiniBand adapters.

    • Multi-function devices: Wolfson Microelectronics WM8998 controllers and Dialog Semiconductor DA9062 power-management ICs.

    • Networking: Teranetics TN2020 PHYs, Sypnopsys DWC Ethernet QOS v4.10a controllers, Mellanox Technologies switches, Microchip LAN78XX-based USB Ethernet adapters, Samsung S3FWRN5 NCI NFC controllers, and Fujitsu Extended Socket network devices.

    • Pin control: Freescale i.MX6UL pin controllers, UniPhier PH1-LD4, PH1-Pro4, PH1-sLD8, PH1-Pro5, ProXstream2, and PH1-LD6b SoC pin controllers, Qualcomm SSBI PMIC pin controllers, and Qualcomm QDF2xxx pin controllers.

Changes visible to kernel developers include:

  • The handling of block I/O errors has been simplified. There is a new bi_error field in struct bio; when something goes wrong an error code will be stored there. The two older error-handling methods (clearing BIO_UPTODATE and passing errors to bi_end_io()) have been removed.

  • The patch sets adding atomic logic operations and relaxed atomic operations have been merged.

  • The static-key interface has changed in ways that, one hopes, will reduce the number of recurrent bugs caused by confusing naming in the previous API. See Documentation/static-keys.txt for details.

  • The ARM architecture has a new, software-implemented "privileged access never" mode that prevents kernel code from accessing user-space addresses. With this mode enabled (the default), only accesses via the kernel's accessor functions will succeed. ARM64 also supports this mode, but it's a direct hardware mode in this case.

  • There are two new functions for the allocation and freeing of multiple objects from a slab cache:

        bool kmem_cache_alloc_bulk(struct kmem_cache *cache, gfp_t gfp,
        	 		       size_t count, void **objects);
        void kmem_cache_free_bulk(struct kmem_cache *cache, size_t count,
        			      void **objects);
    

    These functions are useful in performance-critical situations (networking, for example) where the fixed costs of allocation and freeing need to be amortized across a large number of objects.

  • Module signing now uses the PKCS#7 message format. One change that results is that openssl-devel library (or equivalent) must be installed to build the kernel with signing enabled.

  • The memremap() mechanism for the remapping of device-hosted memory has been merged. Also merged is the "struct page provider" patch set (described in this article) that creates page structures for nonvolatile memory as needed.

The merge window is set to remain open through September 13, but the pace has clearly slowed. It is probably fair to say that we have seen the bulk of the changes that will go into the 4.3 kernel. That said, tune in next week for a summary of any remaining changes that slip in before the merge window closes.

Index entries for this article
KernelReleases/4.3


to post comments

4.3 Merge window, part 2

Posted Sep 13, 2015 11:12 UTC (Sun) by robert_s (subscriber, #42402) [Link] (2 responses)

"The user-space page-fault handling patch set has been merged at last. The main use case for this feature is live migration of virtualized guests, but others probably exist as well"

I can imagine somebody awfully clever using this in some way to aid in the implementation of software transactional memory.

4.3 Merge window, part 2

Posted Sep 13, 2015 14:12 UTC (Sun) by JGR (subscriber, #93631) [Link] (1 responses)

> I can imagine somebody awfully clever using this in some way to aid in the implementation of software transactional memory.
User-space page-fault handling has a fairly significant performance cost attached to it, which would largely negate the benefit of transactional memory if it could be done that way.

4.3 Merge window, part 2

Posted Sep 17, 2015 14:19 UTC (Thu) by nix (subscriber, #2304) [Link]

It definitely might be useful for various sorts of garbage collector though.


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