~/talk

Rusty Swapping: Rewriting a zswap Backend in Rust

Talkat Embedded Linux Conference @ EOSS NA 2024 · 2024-04-16..04-18· [rust]
links:none on file
slides:none on file

Rewrites zswap backend zblock in Rust and reimplements allocation algorithms, producing a working Rust module that matches C performance in tests (qemu/x86_64) and compares favorably against existing backends: zblock is on par with zbud and usually faster than zsm. Shows concrete layout: 48-byte header, example splitting 8K into 740-byte slots with a 4‑byte remainder, compressed pages range 2–496 bytes. Uses bindgen manually, struggles with Rust kernel toolchain pinning and spinlock API, and cannot be submitted as Rust for arm32 targets so C remains the ship candidate.

AI-written summary · about

  1. 0:00Introduction
  2. 1:47zswap and backend allocators
  3. 10:56Z block allocator design
  4. 16:51Motivation for Rust rewrite
  5. 21:24Rust in Linux kernel challenges
  6. 29:42Z block in Rust: registration
  7. 32:35Z block algorithms in Rust
  8. 34:03Locking in Rust
  9. 36:37C versus Rust comparison
  10. 39:58Summary and future
  11. 44:57Q&A
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.