The 3.16 merge window concludes
On June 15, Linus Torvalds put out the 3.16-rc1 prepatch and closed the merge window for this cycle. From here on in, features are unlikely to be added as fixes and stabilization patches should predominate.
At this point, Torvalds has merged 11,364 non-merge commits for 3.16. That's around 3,200 since last week's look (and a total of nearly 6,000 since part 1 of our merge window coverage). The last two merge windows have been two of the top three windows in terms of commits, with 3.16 in third place behind 3.10 (11,963) and 3.15 (12,034). We will have to see if the trend continues and we get 11,000–12,000 patches for 3.17 and beyond.
In any case, here are some of the more significant changes that users will see in 3.16:
- Modules now have the read-only (RO) and no-execute (NX) bits set on their data sections much earlier in the loading process, before parsing any module arguments. This will further reduce the time window in which a misbehaving (or malicious) module can modify or execute its data.
- The secure computing (seccomp) BPF filters are now just-in-time (JIT) compiled.
- Support for TCP fast open over IPv6 has been added.
- The Xen virtual network interfaces now have multi-queue support, which provides much better performance.
- Support for busy polling on stream control transmission protocol (SCTP) sockets has been added. Busy polling is set on a socket using the SO_BUSY_POLL socket option; it can reduce the latency of receives on high-traffic interfaces that support the option.
- The extended verification module (EVM) has added configuration options to support putting new extended attributes (xattrs) into the calculated HMAC value for a file. Using that facility, three Smack attributes (SMACK64EXEC, SMACK64TRANSMUTE and SMACK64MMAP) can now be added into the HMAC calculation.
- Btrfs has added a new ioctl() called BTRFS_IOC_TREE_SEARCH_V2 to search the filesystem for keys. As its name would imply, it is a more flexible version of the existing BTRFS_IOC_TREE_SEARCH that allows for a larger buffer to be passed in to retrieve larger search results that won't fit into the 3992-byte fixed-sized buffer.
- New hardware support:
- Graphics: The Nouveau driver now supports NVIDIA Tesla K40 GK110B devices and has initial support for NVIDIA Tegra K1 GK20A devices. ASPEED AST2400 devices.
- Miscellaneous: Freescale Quad Special Peripheral Interface (SPI) controllers; LPDDR2-NVM flash chips; Broadcom Kona pulse-width modulation (PWM) blocks; Intel system-on-chip (SoC) platform digital temperature sensors (DTSs); and Sensiron SHTC1 and SHTW1 humidity and temperature sensors.
- Network devices: Broadcom BCM7xxx set-top box SYSTEMPORT Ethernet MACs; STMicroelectronics ST21NFCA near field communication (NFC) controllers; Renesas R-Car SoC controller area network (CAN) controllers; Geschwister Schneider USB/CAN devices; Xilinx CAN devices; Hisilicon HIX5HD2 family network devices; and AMD SoC 10GbE Ethernet devices.
- Staging graduation: Freescale i.MX5/6 v3 image processing units (IPUv3).
Changes of interest to kernel developers include:
- A simple interval-tree interface has been added as lib/interval_tree.c. The interval tree is implemented as an augmented red-black tree.
- Tracepoints have been added to give finer resolution of events during suspend and resume.
- The BPF interpreter now has a self-test that covers both classic and internal BPF instructions.
- A software TCP segmentation offload (TSO) API has been added; several drivers have used it to add software TSO support (mvneta, mv643xx_eth, fec).
- The Documentation/mutex-design.txt file has been extensively updated to better reflect today's reality.
- Optimistic spinning has been added to read-write semaphores (rwsems). Also, a queued variant of read-write locks (qrwlocks) has been added.
- Two new methods, read_iter() and write_iter(), have been added to struct file_operations. They are intended to support the move toward using the iov_iter interface and are meant to eventually replace the aio_read() and aio_write() methods.
Now the stabilization phase for 3.16 begins. That means we are likely to see a final 3.16 release sometime in early August depending on how the cycle goes. Then it will be time to start the festivities all over again for 3.17.
Index entries for this article | |
---|---|
Kernel | Releases/3.16 |