4.3 Merge window, part 2
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.
- Audio:
Cirrus Logic CS4349 codecs,
Option GTM601 UMTS modem audio codecs,
InvenSense ICS-43432 I2S MEMS microphones,
Realtek ALC298 codecs, and
STI SAS codecs.
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 | |
---|---|
Kernel | Releases/4.3 |
Posted Sep 13, 2015 11:12 UTC (Sun)
by robert_s (subscriber, #42402)
[Link] (2 responses)
I can imagine somebody awfully clever using this in some way to aid in the implementation of software transactional memory.
Posted Sep 13, 2015 14:12 UTC (Sun)
by JGR (subscriber, #93631)
[Link] (1 responses)
Posted Sep 17, 2015 14:19 UTC (Thu)
by nix (subscriber, #2304)
[Link]
4.3 Merge window, part 2
4.3 Merge window, part 2
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