Linuxchanges – linux kernel newbies fibrous histiocytoma skin

Linux has supported asynchronous I/O for a long time. However, the interface suffers from a large number of shortcomings. It does not support buffered I/O, only unbuffered ( O_DIRECT) I/O, which only a subset of a subset of applications use. Even in those cases asynchronous IO was some times not fibrous histiocytoma skin really asynchronous or fast. All attempts to fix the existing interface have failed.

A new asynchronous interface, io_uring, has been created and merged in the release, with the purpose of finally adding fast, scalable asynchronous I/O to linux, both buffered and unbuffered. It also supports asynchronous polled IO, and other features that will be added in the future. For more details, read this document (PDF). For performance details, see this email.

Additionally, a user space library, liburing, has been created to provides basic functionality for applications that fibrous histiocytoma skin don’t need or want to care about how to fiddle fibrous histiocytoma skin with the low level details of the kernel interface. It has helpers to allow applications to easily set up fibrous histiocytoma skin an io_uring instance, and submit/complete IO through it without knowing about the intricacies of fibrous histiocytoma skin the rings, and will continue to grow support helper functions and features fibrous histiocytoma skin as time progresses.

Unlike other operating systems, linux does not have an efficient way to watch changes fibrous histiocytoma skin on a large file system. The only way to monitor file system dirent modification events fibrous histiocytoma skin is recursive inotify watches, which scales poorly for large directory trees. The fanotify interface, introduced in linux 2.6.36, was intended to supersede inotify and solve its deficiencies, and it initially took several steps in the direction of fibrous histiocytoma skin solving scalability issues, but the work needed to completely supersede inotify.

After considering several proposals, the linux kernel has added a new syscall, pidfd_send_signal(2), which uses file descriptors from /proc/ as stable handles on struct pid. Even if a pid is recycled the handle will not fibrous histiocytoma skin change, and the file descriptor can be used to safely send fibrous histiocytoma skin signals to the process it refers to. Note that the next kernel release will add a flag fibrous histiocytoma skin to clone(2) that will allow to retrieve from that syscall the pid fibrous histiocytoma skin file descriptor.

Linux supports persisten memory devices, but they are often used as storage devices. Some users want to use persistent memory as additional volatile fibrous histiocytoma skin memory, they are willing to cope with potential performance differences, and want to use typical linux memory management apis rather fibrous histiocytoma skin than a userspace memory allocator layered over an mmap() of a dax file. This release allows them to do so. This is intended for use with nvdimms that are physically fibrous histiocytoma skin persistent (physically like flash) so that they can be used as a cost-effective RAM replacement.

The cpuidle subsystem is the part of the kernel in fibrous histiocytoma skin charge of deciding which CPU deep idle state should be fibrous histiocytoma skin used when the CPU has nothing to do (deeper idle states save more power, but it takes more time to get out of them). There are two cpuidle governors, menu and ladder, each one using different heuristics. However, the menu governor is believed to have a number of fibrous histiocytoma skin shortcomings in its heuristics, but instead of being fixed an alternative was introduced in fibrous histiocytoma skin this release so people can compare both: TEO, the timer events oriented governor, which seems to offer improved performance with no extra power fibrous histiocytoma skin consumption cost. You can check your governor in /sys/devices/system/cpu/cpuidle/current_governor_ro) and change the default cpuidle governor at boot time with fibrous histiocytoma skin the cpuidle.Governor=teo boot parameter.

Btrfs has support zstd compression since linux 4.14, but it didn’t allow to configure the compression level used by the fibrous histiocytoma skin filesystem, which can make a big difference. This release adds support for configuring the compression level used fibrous histiocytoma skin in a btrfs file system, as it’s done with zlib, by using the mount option -o compress=zstd:level. To see the levels available and their impact in performance fibrous histiocytoma skin and compression rate, see this commit

In order to boot to a filesystem placed in a fibrous histiocytoma skin device-mapper device, you need an initramfs. Some people, however, don’t want or can’t use an initramfs. This release allows to use of DM targets in the fibrous histiocytoma skin boot process (as the root device or otherwise) without the need of an initramfs, with the help of a tricky kernel boot parameter. For more details see the documentation

There might be dependencies between livepatches. If multiple patches need to do different changes to the fibrous histiocytoma skin same function(s) then it’s necessary to define an order in which the patches fibrous histiocytoma skin will be installed. And function implementations from any newer livepatch must be done fibrous histiocytoma skin on top of the older ones. This might become a maintenance nightmare for distros, especially if anyone would want to remove a patch that fibrous histiocytoma skin is in the middle of the stack.

An elegant solution included in this release is the feature fibrous histiocytoma skin called atomic replace. It allows creation of so called cumulative patches. They include all wanted changes from all older livepatches and fibrous histiocytoma skin completely replace them in one transition. As a result, the livepatch authors might maintain sources only for one cumulative fibrous histiocytoma skin patch. For more details, see the documentation

VFS: introduce filesystem context. This is an intensive rework of the linux file system fibrous histiocytoma skin mounting internals intended to solve limitations imposed by the existing fibrous histiocytoma skin mount(2) design, and provide a foundation that will allow to provide new fibrous histiocytoma skin functionality that is impossible to achieve now. While no new user-visible feature has been introduced in this release, a lot of the new infrastructure has been merged in fibrous histiocytoma skin this release. For more details, see this recommended LWN article or this email. Code: commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

(FEATURED) livepatch: add atomic replace. It allows to create cumulative patches. They are useful when you maintain many livepatches and want fibrous histiocytoma skin to remove one that is lower on the stack. In addition it is very useful when more patches touch fibrous histiocytoma skin the same function and there are dependencies between them commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

Lockdep: current lockdep implementation is that it requires lock keys to fibrous histiocytoma skin be allocated statically. Add support for dynamic keys in the lockdep code and fibrous histiocytoma skin eliminates a class of false positive reports from the workqueue fibrous histiocytoma skin implementation commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

Increase success rates and reduce latency of compaction (physical memory defragmentation), reducing the number of scanned pages for migration by 65%, and free pages for migration targets by 97%, while improving transparent hugepage allocation success rates significantly. Commit commit commit commit commit commit commit commit commit commit fibrous histiocytoma skin commit commit commit commit commit commit commit commit commit commit fibrous histiocytoma skin commit commit

Add new jmp32 instructions. Current ebpf ISA has 32-bit sub-register and has defined a set of ALU32 instructions. However, there is no JMP32 instructions, the consequence is code-gen for 32-bit sub-registers is not efficient. For example, explicit sign-extension from 32-bit to 64-bit is needed for signed comparison commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

Add support for annotating BPF programs, using the PERF_RECORD_BPF_EVENT and PERF_RECORD_KSYMBOL recently added to the kernel fibrous histiocytoma skin and plugging binutils’s libopcodes disassembly of BPF programs with the existing annotation fibrous histiocytoma skin interfaces in ‘perf annotate’, ‘perf report’ and ‘perf top’ various output formats (–stdio, –stdio2, –tui) commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

Add initial BPF map dumper, initially just for the current, minimal needs of the augmented_raw_syscalls BPF example used to collect fibrous histiocytoma skin pointer args payloads that uses BPF maps for pid and fibrous histiocytoma skin syscall filtering, but will in time have features similar to ‘perf stat’ –interval-print, –interval-clear, ways to signal from a BPF event that a specific fibrous histiocytoma skin map (or range of that map) should be printed, optionally as a histogram, etc commit, commit

LSM: module stacking ie. The ability to load one LSM module in top of fibrous histiocytoma skin another commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

Add safesetid LSM module. SafeSetID gates the setid family of syscalls to restrict UID/GID transitions from a given UID/GID to only those approved by a system-wide whitelist. These restrictions also prohibit the given uids/gids from obtaining auxiliary privileges associated with CAP_SET{U/G}ID, such as allowing a user to set up user namespace fibrous histiocytoma skin UID mappings. For now, only gating the set*uid family of syscalls is supported, with support for set*gid coming in a future patch set. Documentation. Commit, commit

Introduce a new generic SOL_SOCKET-level socket option called SO_BINDTOIFINDEX. It behaves similar to SO_BINDTODEVICE, but takes a network interface index as argument, rather than the network interface name. User-space often refers to network-interfaces via their index, but has to temporarily resolve it to a name for fibrous histiocytoma skin a call into SO_BINDTODEVICE. This might pose problems when the network-device is renamed asynchronously by other parts of the system. When this happens, the SO_BINDTODEVICE might either fail, or worse, it might bind to the wrong device commit

Bitmain BM1880 chip used in the sophon edge TPU developer fibrous histiocytoma skin board. The chip is intended for deep learning applications, and comes with dual-core arm cortex-A53 to run linux as well as a RISC-V microcontroller core to control the tensor unit. For the moment, the TPU is not accessible in mainline linux, so it’s treated it as a generic arm soc commit, commit

Sun4i-codec: add FM playback volume, FM left, FM right, FM playback switch commit, add line playback volume, line boost volume, line right, line left, line playback switch commit, add MIC2 pre-amplifier, mic2 input commit, add mic playback volume commit, add mic1 boost volume, mic2 boost volume commit, add mic1 playback switch, mic2 playback switch commit

RELATED_POSTS