Linus Torvalds released Linux Kernel 4.6 earlier today:
It’s just as well I didn’t cut the rc cycle short, since the last week ended up getting a few more fixes than expected, but nothing in there feels all that odd or out of line. So 4.6 is out there at the normal schedule, and that obviously also means that I’ll start doing merge window pull requests for 4.7 starting tomorrow.
Since rc7, there’s been small noise all over, with driver fixes being the bulk of it, but there is minor noise all over (perf tooling, networking, filesystems, documentation, some small arch fixes..)
The appended shortlog will give you a feel for what’s been going on during the last week. The 4.6 kernel on the whole was a fairly big release – more commits than we’ve had in a while. But it all felt fairly calm despite that.
Linux 4.5 added support for GCC’s Undefined Behavior Sanitizer flag (-fsanitize=undefined) which should make the Linux kernel even more secure,an implementation of the next generation media controller, some performance improvements for file systems, etc…
Linux 4.6 brings many changes including:
- USB 3.1 SuperSpeedPlus (10Gbps) support – This release adds support for the USB 3.1 SuperSpeedPlus 10 Gbps speeds for usb core and xHCI host controller, meaning that a USB 3.1 mass storage connected to a USB 3.1 capable xHCI host should work with 10Gbps speeds.
- Improve the reliability of the Out Of Memory task killer – The OOM killer kills tasks in order to free memory, but some tasks may take a long time before freeing up the memory, for example if it is stuck into an uninterruptible state. Linux 4.6 kernel adds oom_reaper thread that tries to reclaim memory by preemptively reaping the anonymous or swapped out memory owned by the OOM victim.
- OrangeFS, a new distributed file system – OrangeFS is an LGPL scale-out parallel storage system used in applications such as HPC, BigData, Streaming Video, Genomics, Bioinformatics. You can read The OrangeFS distributed filesystem LWN article for more details.
- 802.1AE MAC-level encryption (MACsec) – MACsec standard provides encryption for all traffic over Ethernet using GCM-AES-128.
- BATMAN V protocol – B.A.T.M.A.N. (Better Approach To Mobile Adhoc Networking) adds support for the V protocol, which does not rely on packet loss anymore, but the estimated throughput.
ARM architecture improvements and new features:
- Allwinner A83T support – Initial bringup; timer, watchdog and reboot
- Allwinner H3 – R_PIO support
- Allwinner A64 – Initial support
- NAND – ECC layout definition rework (partially) and randomizer support. Note: For devices that use eMMC, old device trees may no longer work with this version (i.e. you have to rebuild your .dtb files). Expect eMMC I/O errors otherwise.
- ASoC – A10/A20 SPDIF driver
- AXP223 PMIC support
- Added board – Allwinner A83TDevBoard, Cubietruck Plus, Itead Ibox, Lamobo R1
- Rockchip rk3399 support for the rockchip-io-domain adaptive voltage scaling (AVS) driver
- Rockchip rk3368 gains power domain support
- Add Rockchip mailbox drive
- pl330 updates to support DMAFLUSHP for Rockchip platforms
- SPI controller bug fixes
- Add driver for rockchip Display Port PHY
- Add driver for the Rockchip SoC internal eMMC PHY
- Add usb-uart functionality in rockchip-usb
- Support for Amlogic S905 SoC and Tronsmart Vega S95 boxes
- Enable Amlogic Meson GXBaby platform
- Samsung exynos5433 updates for clk id errors, HDMI support, suspend/resume simplifications
- Enable Samsung MFD and related configs
- Fix for the Samsung I2S driver locking
- Samsung Exynos ARM64 improvements – Remove separate ARCH_EXYNOS7 symbol and consolidate it into one ARCH_EXYNOS
- Samsung Exynos (and older platforms) improvements
- Split out Exynos PMU driver implementation from arm/mach-exynos to the drivers/soc/samsung which will allow re-use of it on ARM64.
- Use generic DT cpufreq driver on Exynos542x/5800.
- Minor cleanups.
- Device tree updates
- Split common reboot/poweroff node to separate DTSI
- Don’t overheat Odroid XU3 by cooling CPU with cpufreq
- Add SROM controller device nodes.
- Add Ethernet chip as child of SROM controller on SMDK5410.
- Allow simultaneous usage exynos-rng and s5p-sss drivers on Exynos5.
- Cleanup CPU configuration on Exynos542x/5800.
- Add necessary nodes for cpufreq-dt driver on Exynos542x/5800 (OPPs, regulator supplies) which allows frequency and voltage scaling of this SoC.
- Minor cleanups
- ARM64 – Added support for Qualcomm MSM8996 SoC support, updates & cleanups for Qualcomm APQ8064, MSM8974, MSM8916, and others
- Revert of patches for the Qualcomm BAM, these need to be reworked for 4.7 to avoid breaking boards other than the one they were intended for
- Add Qualcomm NAND controller driver
- ASoC capture support for Qualcomm drivers
- Add Qualcomm Technologies HIDMA channel & HIDMA management drivers
- Qualcomm IPQ4019 support in pinctrl
- Qualcomm ARM Based Device Tree Updates:
- Add documentation for Kryo
- Add RPMCC node for APQ8064
- Updates for MSM8974
- Add board clocks
- Add support for Nexus7 device
- Fixup pmic reg properties
- Various updates/cleanups for APQ8064 based boards
- Added support for Mediatek MT7623 SoC
- SMP support for Mediatek mt2701
- Revert part of the power domain initialization changes that broke mt8173-evb
- Introduce Mediatek thermal driver
- New Mediatek IOMMU driver
- ASoC – New machine driver for Mediatek systems with RT5650 CODECs
- Add Mediatek MT8173 EFUSE driver
- Texas Instruments
- Improved support for Nokia N900 and other OMAP machines
- DaVinci & OMAP now uses the new DMA engine dma_slave_map
- Other new ARM hardware or SoCs – 96Boards Husky board, AMD Overdrive board, Annapurna Labs Alpine family and development board, Broadcom Vulcan servers, Broadcom Northstar 2 SoC, Marvell Armada 3700 family and development board, Axis Artpec-6 SoC, TI Keystone K2G SoC, ST Microelectronics stm32f469, ARM Juno R2, Buffalo Linkstation LS-QVL and LS-GL, D-Link DIR-885L, ARM RealView PB1176 and PB11MPCore, Google Nexus 7, Homlet v2, LG Optimus Black, Logicpd DM3730, Raspberry Pi Model A, NXP i.MX6QP
MIPS pull request included the following changes:
- Fix spelling mistakes all over arch/mips
- Provide __bswapsi2 so XZ kernel compression will build with older GCC
- ATH79 clock fixes.
- Fix clock-rated copy-paste erros in ATH79 DTS.
- Fix gisb-arb compatible string for 7435 BMIPS
- Enable NAND and UBIFS support in CI20.
- Fix BUG() assertion caused by inapropriate smp_processor_id() use.
- Fix exception handling issues for the sake of debuggers
- Fix the last remaining instance of irq_to_gpio in the db1xxx_ss PCMCIA code
- Fix MSA unaligned load failures
- Panic if kernel is configured for a not TLB-supported page size
- Bail out on unsupported relocs in modules.
- Partial fix for Qemu breakage after recent IPI rewrite
- Wire up the preadv2 and pwrite2 syscalls
- Fix the ar724x clock calculation
I’ve generated Linux 4.6 changelog with comments only using
git log v4.5..v4.6 --stat, but you might as well as just read the changelog on kernelnewbies.org which is also detailed and includes links to relevant articles.