Rust for Linux is the project adding support for the Rust language to the Linux kernel. Soon after LPC 2022, the initial support for Rust was merged into the kernel for v6.1.
Since then, there has been progress in several different areas, including the addition of safe abstractions around kernel functionality and subsystems, as well as infrastructure and...
Testing and debugging kernels can be painfully slow: compiling the kernel, setting up a testing system (bare-metal or VM), deploying the recompiled kernel, executing tests, collect results and repeating the cycle.
Intensified by the fact that each kernel developer employs their own distinctive set of custom scripts and workflows to accomplish comparable goals can lead to inefficiencies and...
In order to emulate Windows NT kernel synchronization primitives, Wine currently uses a single server process, which fields operations on those primitives via RPC from client processes.
This has historically worked well, but has turned out to be a severe performance bottleneck in heavily multithreaded applications such as modern games.
In this talk, I propose to emulate the complexity of...
Problem - Sysfs and procfs are implemented as on-demand file systems. An on-demand file system maintains meta-data about the entries and creates inodes/dentries on access and keeps them till there is enough memory available in the system.
During system boot, it was observed that about 40% of sysfs and procfs entries were accessed. This means significant number of inodes/dentries have been...
Display and graphic drivers in Linux are part of the Linux DRM subsystem and are using DRM resources like memory management, interrupt handling, and DMA via Kernel Mode Settings (KMS) that act as an abstraction layer to provide uniform access to applications.
Encoders are one of the key KMS components that takes pixel data from a CRTC and converts it to a format suitable for an attached...
Increasing block sizes in storage devices will be one of the keys to support larger capacities, more density, and higher cost-effective SSDs in the future. Although R&D on this topic has been discussed in the Linux community for 16 years recent advances in Linux are making support for larger block sizes more easily attainable and we may soon be able to start leveraging support for it.
512...
The x86 architecture is extensive, with many features (and misfeatures) added since its first 32-bit i386 CPU, released 38 years ago.
Runtime identification of x86 CPU features occurs through the CPUID instruction. Through an input "leaf"/"sub leaf" mechanism, CPUID returns various information scattered through a vast list of output bitfields — now up to 750+ bitfields. The returned...
Demos on embedded systems using Linux are plentiful, but when it comes to reproducing them, things get complicated. Additionally, on decent embedded systems Linux is only one part of the system and interacts with real-time operating systems and virtualization solutions. This makes reproduction even harder.
Within the Linux Foundation’s ELISA project, we started to create a...
KVM, a virtualization technology in Linux, delegates memory and virtual CPU execution management of virtual machines to the Linux kernel. This has both advantages and disadvantages. One disadvantage is that it can lead to latency issues in time-sensitive workloads in the VM (such as audio and video). This is because KVM creates one task per vCPU for the VM and then delegates the scheduling of...
Syzbot is an automated system that continuously fuzzes OS kernels and routes the reports to kernel developers. Since 2017, syzbot has already found and published more than 10000 findings in the Linux kernel.
Levels of adoption and reception of the tool differ throughout the kernel, but it has definitely had a positive impact on the Linux kernel's health. To date, more than 5500 findings...
Linux kernel offers built-in self-protection mechanisms like control-register pinning, module/file authentication and protection restrictions; but a sophisticated kernel-level attacker can still bypass these. To get a much more effective defense, we propose to enforce such protection mechanisms via the hypervisor itself or a hypervisor-backed trusted entity. This also allows us to consider...
Users demand speed, reliability, and low-power from system-suspend. To assure Linux can meet these goals, Intel's upstream kernel team built "sleepgraph" a decade ago, and we have been running and improving it ever since.
Today, Linux OEM's demand over 10,000 consecutive successful suspend iterations to demonstrate suspend reliability. And so our efforts have evolved from function and...
fscrypt has long been the standard subsystem for filesystems to adopt filesystem-level encryption. Traditionally fscrypt has encrypted data on a per-inode level; however, this made snapshotting or reflinking encrypted data difficult. Over the past two years, btrfs has worked to add per-extent encryption to fscrypt: encrypting on a per-extent level allows reflinking and snapshotting of...
Can you trust your hardware? How do you know? And if not can you still use it?
These questions are not new, however linux currently lacks a comprehensive answer. The confidential computing platforms that are becoming more popular offer both a new perspective and new uses - and with them, a new sense of urgency - to efforts to answer these questions.
Being a common part of the...
Hardware platforms have started exposing useful and actionable memory access information to the OS in various ways [1] [2]. There are sub-systems in the kernel like NUMA balancing which need such information but currently employ software methods to generate and act upon such access information. They could benefit if hardware can directly provide access information to the kernel in an easy to...
Linux kernel perf events are great, however, individual events are often too low-level to understand a performance issue. For example, a metric like memory bandwidth may consist of read and write counters on multiple memory controllers, with different counters for different types of memory and with counts having additional data combined within them like acknowledgements. The Linux perf tool...