Rusty Swapping: Rewriting a zswap Backend in Rust
Talkat Embedded Open Source Summit 2024 · 2024-04-16..04-18· at 11:00· Hall M1 (Level 1), Vienna, Austria·
summary
Rewrites zblock (a high‑density zswap allocation backend) from C into Rust and measures outcomes: allocation scheme keeps a 48-byte header and can split two pages into 11 slots (~740 B each), runtime compression and throughput stay on par with the C version on x86/qemu and Raspberry Pi tests, stripped Rust object is smaller than C while unstripped is larger, build requires specific Rust toolchain and bindgen/manual bindings, locking needs requires unsafe blocks and the project stalls because arm32 support missing.
AI-written summary · about
chapters (11)
- 0:00Introduction
- 1:47zswap and backend allocators
- 10:56Z block allocator design
- 16:51Motivation for Rust rewrite
- 21:24Rust in Linux kernel challenges
- 29:42Z block in Rust: registration
- 32:35Z block algorithms in Rust
- 34:03Locking in Rust
- 36:37C versus Rust comparison
- 39:58Summary and future
- 44:57Q&A
related talks
50mRusty Swapping: Rewriting a zswap Backend in Rust
39mRusty Swapping: Rewriting a Zswap Backend in Rust
39mRusty Swapping: Rewriting a Zswap Backend in Rust
33mMoving kernel swapping infrastructure to Rust
17mExploring a real life RCU use case for Rust
34mWhoops! I Rewrote it in Rust
26mAllocating Less: Really Thin Rust Cloud Apps
57mFast encrypted backups with Rust
