Linus Torvalds released Linux Kernel 4.5 on Sunday:
So this is later on a Sunday than my usual schedule, because I just couldn’t make up my mind whether I should do another rc8 or not, and kept just waffling about it. In the end, I obviously decided not to,but it could have gone either way.
We did have one nasty regression that got fixed yesterday, and the networking pull early in the week was larger than I would have wished for. But the block layer should be all good now, and David went through all his networking commits an extra time just to make me feel comfy about it, so in the end I didn’t see any point to making the release cycle any longer than usual.
And on the whole, everything here is pretty small. The diffstat looks a bit larger for an xfs fix, because that fix has three cleanup refactoring patches that precedes it. And there’s a access type pattern fix in the sound layer that generated lots of noise, but is all very simple in the end.
In addition to the above, there’s random small fixes all over-shortlog appended for people who want to skim the details as usual.
Go test, and obviously with 4.5 released, I’ll start the merge window for 4.6.
Linux 4.4 added support for a faster and leaner loop device, 3D support in virtual GPU driver, TCP improvements, various file systems improvements for BTRFS, EXT-4, CIFS, XFS etc… Some notable changes made to Linux 4.5 include:
- Copy offloading with new copy_file_range(2) system call – Performance improvements on local file systems are marginal, but for networked file systems such as NFS, you could copy a file internally on a server drive without transferring file data over the network.
- Experimental PowerPlay for amdgpu driver
- Btrfs free space handling scalability improvements – New, experimental way of representing the free space cache that takes less work overall to update on each commit and fixes the scalability issues for large drives (30TB+). It can be enabled with
-o space_cache=v2mount option, and you can revert to the one method with
- Support for GCC’s Undefined Behavior Sanitizer (-fsanitize=undefined) – UBSAN (Undefined Behaviour SANitizer) is a debugging tool available since GCC 4.9. It inserts instrumentation code during compilation that will perform checks at runtime before operations that could cause undefined behaviors. Linux 4.5 supports compiling the kernel with the Undefined Behavior Sanitizer enabled.
- Next gen media controller whose “goal is to improve the media controller to allow proper support for other types of Video4Linux devices (radio and TV ones) and to extend the media controller functionality to allow it to be used by other subsystems like DVB, ALSA and IIO”. See lkml for details
Some new features and improvements specific to the ARM architecture:
- Allwinner A80 support – IR receiver driver, NMI controller,PRCM driver, R_PIO support, and RSB driver
- Allwinner H3 SoC support – H3 USB PHY clocks
- A10/A20 Video Engine clocks
- MIC1 capture for sun4i codec
- Audio codec enabled on various boards
- Added board – Orange Pi Plus
- Crypto module and io-domain driver enabled in multi_v7_defconfig
- Tweaks for RK3368 SoC and eval board
- Added Rockchip RK3228 SoC and eval board
- New RK3228 subdriver in pinctrl
- SPI driver fix
- Added support for RK3399 in thermal driver
- RK3036: Added SMP support, emac support
- Expose USB PHY PLLs
- Device tree changes – Add watchdog node to meson8b, add status LED for ODROID-C1
- Watchdog timer modifications
- eMMC/SDIO minor fixes usage of bindings on Snow and Peach chromebooks.
- Remove FIMD from Odroid XU3-family because on XU3 it cannot be used yet and on XU3-Lite and XU4 it is not supported.
- Remove deprecated since June 2013 samsung,exynos5-hdmi.
- Add support for Pseudo Random Generator on Exynos4 (Trats2 for now). This depends on new SSS clock.
- Add rotator nodes for Exynos4 and Exynos5.
- Switch DWC3_1 on Odroid XU3 and XU3-Lite to peripheral mode because now it cannot be used as OTG.
- Cleanup the G2D usage on Exynos4 and add it to a proper domain in case of Exynos4210.
- Put MDMA1 in proper domain on Exynos4210 as well.
- Minor cleanups
- New pinctrl subdrivers for Qualcomm MSM8996, PM8994, PM8994 MPP support
- Added Qualcomm PCIe controller driver
- Qualcomm ARM64: Add fixed rate oscillators to dts, fixup PMIC alias and properties, change 8916-MTP compatible to be compliant with new scheme, fix 8×16 UART pinctrl configuration, add SMEM, RPM/SMD, and PM8916 support on MSM8916
- ARM SoC multiplatform code – “This branch is the culmination of 5 years of effort to bring the ARMv6 and ARMv7 platforms together such that they can all be enabled and boot the same kernel”
- ARM64 – hugetlb: add support for PTE contiguous bit; perf: add support for Cortex-A72;
- Other new hardware or SoCs – Sigma Designs ARM Cortex-A9 Tango4 “Secure Media Processor” platforms (SMP8756, SMP8758, and SMP8759), TI-based DM3730 from LogicPD (Torpedo), Cosmic+ M4 (nommu) initial support (Freescale Vybrid), Veyron-mickey (ASUS Chromebit), BCM2836 and Raspberry Pi 2 B.
- Add support for PIC32MZDA platform
- bcm963xx: Add Broadcom BCM963xx board nvram data structure
- dts: Add initial DTS for the PIC32MZDA Starter Kit
- math-emu: Add IEEE Std 754-2008 ABS.fmt and NEG.fmt emulation
- math-emu: Add IEEE Std 754-2008 NaN encoding emulation
- math-emu: Add IEEE Std 754 conformance mode selection
- pci: Add MT7620a PCIE driver
- ralink: add MT7621 support
- zboot: Add support for serial debug using the PROM
If you want to get the full details, I’ve generated Linux 4.5 Changelog with comments only (12.2MB) using
git log v4.4..v4.5 --stat, but it’s probably a better idea to simply check out Linux 4.5 changelog on kernelnewbies.org.