Rusty Swapping: Rewriting a Zswap Backend in Rust
summary
Rewrites the zswap backend Zblock in Rust, registers it with the kernel and runs side‑by‑side comparisons against C Zblock, zsm and zbd. Uses specific Rust toolchain versions and bindgen hacks to map kernel structs; builds for x86_64 and arm64 (32‑bit ARM is unsupported so Rust variant is disqualified for mainline). Rust Zblock produces smaller stripped objects, matches or exceeds load/read latency in some traces but is slower on store paths than the C build; keeps unsafe regions minimal for safety.
AI-written summary · about
chapters (13)
- 0:00Introduction
- 1:48Consulo group's Linux kernel work
- 5:45Zswap and allocators overview
- 8:40Zblock allocator details
- 13:22Rust for kernel development
- 16:37Rust in Linux kernel setup
- 19:51Rust kernel challenges
- 22:01Rewriting Zblock in Rust
- 25:37Rust atomics and locks
- 27:01C versus Rust performance
- 30:42Testing Rust Zblock
- 31:26Summary and future
- 33:55Q&A
related talks
39mRusty Swapping: Rewriting a Zswap Backend in Rust
50mRusty Swapping: Rewriting a zswap Backend in Rust
50mRusty Swapping: Rewriting a zswap Backend in Rust
33mMoving kernel swapping infrastructure to Rust
17mExploring a real life RCU use case for Rust
20mZNSwap: un-Block your Swap
48mRustZone: Writing Trusted Applications in Rust
20mAn Empirical Study of Rust-for-Linux: The Success, Dissatisfaction, and Compromise
