|
|
Subscribe / Log in / New account

3.19 Merge window part 2

By Jonathan Corbet
December 17, 2014
Last week's 3.19 merge window summary noted that things had gotten off to a slow start. Linus has made up for lost time since then, though; as of this writing, just over 10,400 changesets have been pulled into the mainline repository — over 8,000 since last week. Needless to say, those changes represent a great deal of fixes and new work. The most significant user-visible changes include:

  • The networking layer has a new subsystem for offloading switching and routing duties to suitably capable hardware.

  • The NFS client and server both now support the NFS 4.2 ALLOCATE and DEALLOCATE options. The former can be used to request preallocation of storage for a file, while the latter is useful for punching holes.

  • The f2fs filesystem has a new "fastboot" option that shorts out a number of boot-time checks.

  • Filters used with the ftrace subsystem now support the logical NOT ("!") operator in expressions.

  • Device tree overlay support has been merged. This feature should make life easier for developers working on systems with "shields" or other types of daughterboards that need to be worked into the device tree at system boot time.

  • There is a new getsockopt() option called SO_INCOMING_CPU. It returns the CPU on which processing for the given socket is happening. When used with multi-queue hardware on large systems, this option can allow an application to divide work across processors, maximizing throughput.

  • It is now possible to attach enhanced BPF programs to network sockets. For now, this capability can only be used for statistics gathering, but other applications should become possible in future development cycles.

  • The new "ipvlan" driver enable the creation of virtual network devices for container interconnection. It is designed to work well with network namespaces. Ipvlan is much like the existing macvlan driver, but it does its multiplexing at a higher level in the stack.

  • The Btrfs filesystem's RAID5 and RAID6 implementation finally has support for disk scrubbing and replacement.

  • The execveat() system call has been merged. Like the other "at" system calls, it takes a file descriptor for the directory to be used as the starting point for finding the executable file. It can also be used to execute a binary file directly from an open file descriptor, allowing for a better implementation of the fexecve() system call found on other Unix-like systems.

  • The squashfs filesystem now supports compression with the LZ4 algorithm.

  • The "AMD KFD" driver has been merged; it provides a new interface to graphical processors for non-graphics (e.g. GPGPU) applications.

  • Some complaints on the mailing lists notwithstanding, the Android "binder" code has been moved from the staging tree into the kernel proper. In the end, it's an API that has been shipped in millions of systems and has to be supported somehow.

  • New hardware support includes:

    • Audio: Intel Baytrail-based audio devices, Samsung Exynos7 I2S controllers, NXP Semiconductors TFA9879 amplifiers, and Texas Instruments TS3A227E headset chips.

    • Graphics: Sharp LQ101R1SX01 panels, Freescale i.MX GPUs (staging graduation), R-Car DU HDMI encoders, Analog Device ADV7511(W) and ADV7513 HDMI encoders, and Rockchip SoC-based GPUs.

    • IIO: Silicon Labs Si7013/20/21 humidity/temperature sensors, Bosch Sensortec BMP280 pressure sensors, and Qualcomm SPMI PMIC current analog-to-digital converters.

    • Miscellaneous: Dallas/Maxim DS1374 watchdog timers, Freescale Layerscape PCIe controllers, Qualcomm SPMI PMIC pin controllers, Intel Cherryview/Braswell pin controllers, IMG synchronous peripheral flash interfaces, IMG I2C serial control bus controllers, Amlogic Meson I2C controllers, Amlogic Meson SPI flash controllers, ACPI "platform communication channel" devices, IBM OPAL real-time clocks, IBM PowerNV OPAL IPMI interfaces, IPMI controllers connected via SMBUS, TI OMAP internal UARTs, Xilinx Clocking Wizard clock generators (staging), and TI LP8860 4 channel LED controllers.

    • Networking: Marvell 88E6352 ethernet switch chips and Rocker network switches.

    • USB: Broadcom USB3.0 device controllers, STMicroelectronics MIPHY28LP PHYs, and Marvell Berlin USB PHYs.

    • Video4Linux: DVBSky S950 V3 video bridges, Montage M88RS6000 internal tuners, Panasonic MN88472 and MN88473 demodulators, and Amlogic Meson IR remote receivers.

Changes visible to kernel developers include:

  • The x86 memory-management code now makes fuller use of the page attribute table (PAT) modes offered by current processors. In particular, this change enables the use of write-through caching.

  • There is a new API that allows drivers to obtain device property information from either ACPI or a device tree without having to know which is in use. See this commit for a brief overview of the new calls and this commit for a related interface for use when no device structure is present.

  • The virtio subsystem has seen a lot of work to make it comply with the virtio 1.0 standard.

  • The I2C subsystem can now enable a Linux system to act like an I2C slave if the bus controller supports that mode. Documentation is nonexistent, but we are promised that it will show up before the end of the cycle.

  • The GPIO subsystem can now change the values of multiple GPIO outputs simultaneously — if the hardware supports it, of course. See the documentation changes at the top of this commit for a list of the API additions to support this functionality.

  • The owner field has been dropped from struct platform_driver, leading to extensive tree-wide changes to remove all uses of that field.

  • Support for the ARM "Coresight" tracing mechanism has been added to the kernel. See Documentation/trace/coresight.txt for information about this subsystem and how to work with it.

  • Atomic modesetting support has been added to the direct rendering layer; this feature allows multiple graphical mode parameters to be set in a single, atomic operation. See this merge commit for an overview of what's provided. One important thing that is still missing is the actual ioctl() to provide the feature to user space; that will likely come in 3.20 along with more driver support.

As always, the kernel has a wide variety of contributors. While it is often hard to tell a contributor's age from their posted patches, your editor is confident that this patch is the first from a four-year-old to ever make it into the kernel.

At this point, most of the major trees (from contributors of all ages) have been pulled, so the rate of change in the mainline repository can be expected to slow. That said, the merge window will probably remain open until December 21. Next week's summary will cover the final patches that are pulled for the 3.19 development cycle.

Index entries for this article
KernelReleases/3.19


to post comments

3.19 Merge window part 2

Posted Dec 19, 2014 1:16 UTC (Fri) by nix (subscriber, #2304) [Link]

From the original patch submission:

> When I was reading the documentation, my 4-year-old
> niece wanted to see what I was doing. After telling her,
> she noticed that something was very wrong and asked
> me to fix it. Instead, I helped her fix it herself.

And that is how an entire community of kernel hackers melted.

3.19 Merge window part 2

Posted Dec 19, 2014 14:24 UTC (Fri) by ekram (guest, #70515) [Link] (2 responses)

I'd be interested to know what the 4 yr old's stance is on the systemd debate.

3.19 Merge window part 2

Posted Dec 19, 2014 19:34 UTC (Fri) by johannbg (guest, #65743) [Link] (1 responses)

What stance is that supposed to be?

3.19 Merge window part 2

Posted Dec 19, 2014 21:59 UTC (Fri) by bronson (subscriber, #4806) [Link]

More nuanced than much of the recent debian-devel noise, presumably.


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