4.2 Merge window part 2
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.
- Systems and processors:
Socionext UniPhier SoCs.
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.
- 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.
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 | |
---|---|
Kernel | Releases/4.2 |