6.13

Linus message

Featured

ARM64

can now run virtual machine under Confidential Compute Architecture (CCA) [1][2]

now supports user-space Shadow Stack feature [1]

--------

There is a new madvise() operation, MADV_GUARD_INSTALL, that installs "guard" pages in the indicated address range; an attempt to access a guard page will result in a SIGSEGV signal. These guard pages are a more efficient way to prevent code from running off the end of an allocation than PROT_NONE mappings (the only current way to do that) because it does not require the allocation of a new Virtual memory area (VMA). MADV_GUARD_REMOVE will remove existing guard pages.[8]

6

FS:

the statmount() system call has gained options to return the filesystem subtype, superblock source, and security mount options. There is also a new flag, STATMOUNT_OPT_ARRAY, that returns filesystem options as a series of NUL-separated strings and without the usual "\000" escaping.[1]

There is a new set of system calls for the management of extended attributes: setxattrat(), getxattrat(), listxattrat(), and removexattrat(). They are variants of setxattr(), getxattr(), listxattr(), and removexattr() that can be used on file descriptor.[1]

reiserfs filesystem has been removed from the kernel.[8]

BcacheFS's Kent Overstreet ban for this release cycle for Code of conduct violation.[16]

Arch specific:

X86

AMD

bus lock detection support wasn't merged in 6.12 but it is now!Linux/Kernel/Versions/6.12#^8e0230[1]

AMD 3D V-Cache Optimizer Driver Headlines The x86 Platform Enhancements[10]

Fixes Issue Where Applying AMD Zen1/Zen2 Microcode Updates Could Slow Boot Times[11]

-PCI Express TLP Processing Hints (PCIe TPH) support that is found with new AMD EPYC 9005 "Turin" servers.[12]

-AMD EPYC 9005 "Turin" CPUs will now default to using the AMD P-State driver[13]

all x86

Significant CRC32C Throughput Optimization

This reduces the binary code size of crc_pclmul() from 4546 bytes to 418 bytes, a 91% reduction. and more.[14]

s390

support for the resizing of virtual machines with virtio-mem[1][3]

RISC-V

The kernel now supports the "Smmpm", "Smnpm", and "Ssnpm" RISC-V pointer-masking extensions whichs adds security by using some of the bits of the pointer for a tag that can be used as a check on overflow/corruption.[8]

Maple

Support for PowerPC "Maple" platforms has been removed.¸"Sadly all those machines have passed into memory, and there's been no evidence for years that anyone is still using any of them"-Michael Ellerman.[7]

MIPS

-looks removed-support for MIPS multi-cluster interrupt controllers.[1]

Misc:

BPF

others

The PIDFD_GET_INFO ioctl() operation, which will fetch information about a process represented by a pidfd, has been merged.[1][4]

The io_uring subsystem has a new command, IORING_REGISTER_RESIZE_RINGS, that allows on-the-fly resizing of the submission and completion rings. This allows applications to start with a pair of relatively small rings, and grow them later should the need arise.[1]

DRM Panic Support To (nouveau) NVIDIA GPUs[15]

Removed dontdiff: pre-git file that was there to avoid including changes to irrelevant files (those generated by the build process, for example, or editor backup files)[1]

-Some preliminary work needed to implement proxy execution(V13), an improved approach to the avoidance of priority inversion, has been merged. The proxy execution feature itself, though, has not yet landed.[1]

-looks removed-Support has been added to allow system-call entry and exit tracepoints to incur page faults in order to read user-space parameters.[8]

-The new transparent_hugepage_shmem= command-line parameter controls the policy for the allocation of transparent huge pages in the shmem/tmpfs filesystems.[8]

Power

Add thermal user thresholds support, which is a way to have the userspace to tell the thermal framework to send a notification when a temperature limit is crossed. Not much documentation for now...[5]

Security

-The SELinux security module can now manage policies for individual netlink operations; see this commit message for a terse overview.[1]

-The /sys/fs/selinux/user configuration knob has been deprecated and will be removed in a future release.[1]

Network

-Networking performance in many cases is constrained by contention on the RTNL lock — a problem that has been understood for years. The 6.13 kernel contains work turning the RTNL lock into a per-network-namespace lock as a way of reducing that contention in namespace-heavy workloads (running containers, for example). It is just one step in a long process, and the regression potential is considered to be significant, so the per-namespace behavior is disabled by default. The DEBUG_NET_SMALL_RTNL configuration variable can be used to turn it on.[8]

-There is a new, more flexible API for the control of traffic shaping.[8]

-There is a new netlink API for the control of NAPI (polling) behavior in network drivers.[8]

-The long-obsolete wireless extensions emulation within the kernel will no longer export a set of symbols to loadable modules. No in-tree drivers need that feature at this point; it is possible that out-of-tree drivers might break.[8]

-There is a new mechanism allowing network drivers to suspend interrupts during busy-traffic periods.[8]

Virtualization

-The IOMMUFD subsystem has gained a number of new operations aimed at better support for virtual machines[8]

-The sound subsystem has a new pass-through mode for audio-related accelerators.[8]

-The new virtual CPU-frequency driver allows CPU-frequency coordination between hosts and guests.[8]

Rust

There are now Rust abstractions for a number of VFS data structures and interfaces — enough to support the Rust implementation of (android's) binder.[1][6]

-Trace events in Rust code are now supported.[8]

-Rust bindings for misc devices have been added, opening the door to the merging of a number of drivers in future development cycle.[8]

-There is a new memory allocator for Rust code that removes the dependency on the external Alloc module.[8]

Misc 2

-Maybe? The bulk of the file-descriptor memory-safety work has been merged.[1]

-? The kernel's cryptographic subsystem has gained a new internal API for signature generation. There is some kerneldoc documentation available.[1]

-? - There is a new variant of the sleepable RCU ("SRCU") API that makes the read side cheaper at the cost of more expensive write operations. Documentation for the new functions — srcu_read_lock_lite() and srcu_read_unlock_lite() — can be found by reading through this commit.[1]

-?- The debugobjects subsystem for details.[1]

-See this merge message for a summary of new features added to the perf tool.[8]

-The build system has gained support for optimization with AutoFDO and Propeller.[8]

Benchmark

incremental gain when testing with giga amd cpu EPYC 9575F (which is 4 cpu in one....)[9]

Sources: