The benchmarks are too good! ext4 has had a massive gain since 6.15 (around 18% gain) [38]
Multi-Core/SMP Support Now Unconditional (CONFIG_SMP=y). This will "simplify the scheduler and remove around 200 ifdef/else/endif blocks from the scheduler." (Ingo Molnar, Maintainer for schedulers)" [1]
AMD Instinct Accelerators hibernation issues fixed. These data center with a lot of VRAM had issues to hibernate. the standard way to hibernate a GPU is to take its VRAM and dump it in RAM where it can be written to your swap disk. This could result in a RAM usage bigger than total RAM in the system. here is an example:
8 dGPU with 192GB VRAM each: Total 1536GB
Total memory of a standard server containing such GPUs: 2TB
Seems good? no, here we are ignoring the size that is taken by the graphics translation table (GTT) which maps the VRAM inside of RAM. the GTT will be at worst as big as VRAM. so 2x our 8x GPUs and you get 3TB.
Solution? Start by copying the VRAM to Swap, then once it is done you copy the GTT to swap.
This isn't the only fix they brought: When the kernel wakes up from hibernation, it now leaves the VRAM memory in swap waiting for it to be called before restoring it. it may be that in a lot of cases the memory will be purged anyway so no need in restoring it in VRAM. This process could save around 50 mins.[29] [30]
today we have 2 dramas in one, as we know, Kent Overstreet, bcachefs creator got kicked off the kernel for not following the rules. Now for bcachefs, it was put under "Externally maintained" which means that it should be stripped from the kernel next release and assumed to always be a module from now on.
Even while out of the kernel, Kent couldn't keep himself from being trying his luck. He sent a request to Linus with his changes to bcachefs in 6.17. https://lore.kernel.org/lkml/22ib5scviwwa7bqeln22w2xm3dlywc4yuactrddhmsntixnghr@wjmmbpxjvipv/
Now.... he had the balls to write "So, the experimental label is coming off in 6.18." which is very funny.
Linus on his end, absolutely ignored him and didn't merge anything.
Now has it usually happens with Kent, the thread became a shitshow where everyone is trying to help Kent see what is plainly obvious to most but with Kent arguing back.
This is where enters, kernel certified unit, Matthew Wilcox enters:
lets put kent on pause a bit and check are 2nd drama:
https://lore.kernel.org/lkml/mhng-655602B8-F102-4B0F-AF4A-4AB94A9F231F@Palmers-Mini.rwc.dabbelt.com/
so we can contrast a bit ;
Single RunQueue Proxy Execution ABSOLUTE BANGNER TO EXPLAIN.... https://www.phoronix.com/news/Linux-6.17-Proxy-Execution
TLDR, made to solve Priority inversion
Processes will now track "Block_on" mutex in order for another process to inherit the permission of the process waiting. This is very usefull with android as background processes may hold mutex and be limiting the foreground process.
Need to enable with Kconfig "SCHED_PROXY_EXEC"
SMP Call Now more aware of Numa topology. "smp_call_function_any()" tries to make a local call as it's the cheapest option, or switches to a CPU in the same node. If it's not possible, the algorithm gives up and searches for any CPU, in a numerical order.
Instead, it can search for the best CPU based on NUMA locality, including the 2nd nearest hop (a set of equidistant nodes), and higher."[2]
Hardware Feedback Interface (HFI) where a simple change in the default Energy Performance Preference (EPP) value divided by 2 the wattage used by the CPU... the issue is more on the implementation of existing features.
CPUID faulting support.
CPUID is a CPU instruction allowing you to get the features of the CPU (mmx, avx...).
CPUID faulting allows the kernel to fault on a non-ring-0 (kernel) CPUID. This allows a tracer to emulate a CPUID instruction thus make the user-space/VMs have different information about the cores they are running on. This was available on Intel' side since 2017. [16]
-Support for Branch Record Buffer Extension (BRBE) allows for capturing a recent sequence of branches for low-compute and low-memory overhead capture/analysis for tracing/debug purposes.[23]
Intel is having to cut cost and go through layoffs because of their financial issues.[8] Here is a quick TLDR:
Kirill Shutemov Left Intel after 14 years. (Worked a lot on TDX)[4]
Jithu Joseph Left Intel after 10 years. Maintainer of Intel's Slim BootLoader Firmware, now left orphaned (With no maintainer)
Wu Hao "Email not working anymore", Maintainer for subsystems related to FPGA, 15 years at intel [5].
Pravin Pathak maintained Intel Dynamic Load Balancer. Phoronix reported that he still works for intel but i think he is gone (linkedin) 23 years at intel [6]
Clear linux is gone, despite great perf (Bench from phoronix showed 48% faster) [7]
After the FSCRYPT changes, the priority of Intel's QuickAssist Technology accelerators (QAT) has been lowered significatively with SKCIPHER and AEAD algorithms. Intel's Giovanni Cabiddu (Maintainer of QAT driver) "Most kernel applications utilizing the crypto API operate synchronously and on small buffer sizes, therefore do not benefit from QAT acceleration."[11]
3X perf gain CRC32C (cyclic redundancy check code) for AVX-512 processors with the VPCLMULQDQ instruction.[17]
Intel Xe3 Panther Lake OpenGL Vulkan Support Now Enabled By Default. Both DRM and Mesa drivers are ready. Panther Lake laptops are expected to come out at the end of this year.[24]
Support for Single Root I/O Virtualization (SR-IOV) for Arc Pro (not the consumer side). SR-IOV allows different VMs to share a single PCI Express hardware interface. [25]
There is now DRM Panic support for the Intel i915 and Xe kernel drivers. [27]
DRM Panic support for the Microsoft Hyper-V driver. [32]
AMD SmartMux Support. Mux short for multiplexer, Should allow for better hybrid GPU laptop support. Without it, a buffer copy from the dGPU to iGPU/APU was needed to get the frame to the screen, No need to say that this is better for power/latencies...[28]
-Initial support for Wildcat Lake integrated graphics
-Preparations for multi-device support for Intel's Xe driver. (useful for AI)[26]
-initial Flip Queue implementation. Flip queue support allows for multiple future frames to be sent to the display controller queue for helping the CPU and portions of the GPU to move to a lower power state while those future frames are being presented. [26]
-Wildcat Lake support for the IVPU accelerator driver[31]
-NFS
With that info, we might want to ask: How does EXT4 fare against the other FS?
Welp, EXT4 is killing it. i never expected EXT4 to be leading in Phoronix "Geometric mean of all test result" diagram but here we are. EXT4 up there, slightly faster than XFS. [39]
While talking about benchmarks, Phoronix did a benchmark comparing a bunch of version from 5.15.189(2021) to an RC version of 6.17. we see that over the years, gained a lot of perf(around 37%) which is good to see.[40]
Added Intel's IPU7 (Image Processing Unit) driver (Allows support for Webcams On Lunar Lake Panther Lake Laptops).[12]
The Error Detection And Correction "EDAC" driver support covering Granite Rapids D, Wildcat Lake, and Raptor Lake HX. Also Bartlett Lake, Intel Core i5 14600 and Core i7 14700. [13]
The Apple System Management Controller (SMC) driver was added, bringing the ability to reboot Apple M1/M2 Macs in Linux. The SMC handles sensors for temp, voltage/power and for handling Shutdown/Reboot. This should make other feature that needed the SMC possible. No doubt we will see some next release. [14]
Support for Raspberry Pi RP1. Packaged with the Raspberry Pi 5, the RP1 can act as an I/O controller used for providing the camera input, display output, USB 2, USB 3, analog video output, Gigabit Ethernet, and other I/O functionality.[21]
Standardizes The Keycode For The "Performance Boost" Key seen on some laptop. (KEY_PERFORMANCE as 0x2bd) This allows the userspace to act when the key is pressed.[33]
F13 to F24 keys now correctly mapped and working for PS/2 Keyboards. old weird keyboard like the Unicomp PC 122 got them...[34]
In 6.15, we talked about the Macbook pro touchbar support being added to the kernel. Now i made a mistake, i said that both the M1/M2 + some old X86 macbook pros had gained support. turns out only M1/M2 got it and it was stated some initial work was done for the x86. We now gain support for it. (commit back 6.15 https://git.kernel.org/pub/scm/linux/kernel/git/hid/hid.git/commit/?h=for-nextid=8e9b9152cfbdc2a90a8acb68acbc1407ef67d139)[35]
We also see support for 2 Apple Magic Keyboard USB-C model (A3118, A3119). The kernel already have all the code needed to support the keyboards, all that needed to be done was add the new device IDs to the hid-apple driver.[36]
Back in 6.12, we talked about Takashi Sakamoto, the Absolute Unit that stepped up to maintain the Firewire subsystem. This release he replace the tasklet with workqueue. The firewire subsystem is now free of tasklet. (You can think of tasklet as little task that are started by software interrupts)(For your knowledge, there has been pushes to remove tasklet for a while, even Linux said in 6.9-RC1 that "The tasklet interface has basically been deprecated for a long while" Fun to know that we still have firewire support when Apple cut the support in their latest macOS 26.[37]
-wake on touch intel THC[36]
-A bunch of SOCs [20]
-Risc-V boards [22]
-10x Improvement For Intel TDX.
-OVMF Debug Log Driver
Attack Vector Controls allows for simple management of mitigation. splits the mitigation in 5 sets:
user-to-kernel, user-to-user, guest-to-host, guest-to-guest, and cross-thread vulnerabilities. [3]
Limitation from 1993 now fixed. A Linux engineer from Alibaba Yin Fengwei saw that an ELF executable he generated from assembly wouldn't run. Now the test that our engineer did was on Arm64 with a 4k page size so he tried on 64K where it ran correctly. He than dug up the function that contained the issue:
load_elf_phdrs():
size = sizeof(struct elf_phdr) * elf_ex->e_phnum;
if (size == 0 || size > 65536 || size > ELF_MIN_ALIGN)
goto out;
Now ELF executable have an "ELF header" which describes how you should go about executing the code and it should be followed by one or more "Program Header" which shows different part of the executable.
What this code would do is check the size of the "Program Headers" in the ELF binary and if they are bigger that page size (ELF_MIN_ALIGN) it refuses to execute our binary. (which turns out to be the issue)
Now Fun Fact: No such limitation exist for elf binaries. This isn't needed by.... anything....
A search for "The reason why this ever existed" started and Longtime Linux developer Kees Cook dug as deep as he could on the subject.
The patch where this code was added was: When ELF interp support was added in 9e11983a5a3e ("Import 0.99.15f")....1993
Sooo we have no rational why this even exist.... They removed the check as it doesn't seem to be needed.
-Turbostat Now Displays CPU L3 Cache Topology Information[9]
-Intel Panther Lake Perf Integration[18]
-Power Management Refines Async Suspend/Resume[19]
Major source:
: https://www.phoronix.com/news/Linux-6.17-Unconditional-SMP
: https://www.phoronix.com/news/Linux-6.17-NUMA-Locality-Random
: https://www.phoronix.com/news/Shutemov-Intel-Linux-Leaving
: https://www.linkedin.com/in/%E6%98%8A-%E5%90%B4-106219336/?locale=en_US
: https://www.phoronix.com/news/Intel-Driver-Maintainers-6.17
: https://www.phoronix.com/news/Intel-QAT-FSCRYPT-Linux-6.17
: https://www.phoronix.com/news/Apple-SMC-Driver-In-Linux-6.17
: https://www.phoronix.com/news/AMD-HFI-CPUID-Fault-Linux-6.17
: https://www.phoronix.com/news/AMD-HFI-CPUID-Fault-Linux-6.17
: https://www.phoronix.com/news/Intel-Panther-Lake-Mesa-Default
: https://www.phoronix.com/news/Intel-Enables-BMG-SR-IOV-Linux
: https://www.phoronix.com/news/Intel-Xe-Driver-Linux-6.17-Big
: https://www.phoronix.com/news/Intel-WCL-Display-FQ-Linux-6.17
: https://www.phoronix.com/news/AMD-Too-Much-vRAM-RAM-Hibernate
: https://www.phoronix.com/news/Linux-6.17-AMDGPU-Hibernation
: https://www.phoronix.com/news/Intel-Wildcat-Lake-NPU-Linux
: https://www.phoronix.com/news/FireWire-IEEE-1394-Linux-6.17