~/talk

Performant Bounds Checking for 64-Bit WebAssembly

Talkat VMIL 2024 · on Sunday, 2024-10-20· [webassembly]
links:none on file
links:none on file
slides:none on file

Implements and compares four approaches inside a C++ Wasm runtime (LLVM-based codegen, Linux mprotect + signal-to-exception trampoline): plain software checks, masked 64-bit guard pages, two-level guard pages that map 1 GB chunks to micro-guard pages, and experiments with x86-64 memory keys. Benchmarks (four SPEC CPU ports + a custom microbenchmark, single-threaded) show software checks can exceed 100% overhead while the two-level scheme drops overhead to 12.7%, and the paper reports an optimal macro/micro region at 256 GB each (512 GB total).

AI-written summary · about

  1. 0:00WebAssembly intro
  2. 1:02Why WebAssembly outperforms JavaScript
  3. 2:05Bounds checking basics
  4. 4:15Software bounds flaws
  5. 6:4532-bit guard pages
  6. 8:32CPU exceptions to WASM traps
  7. 10:3764-bit address challenges
  8. 12:2264-bit guard pages
  9. 14:08Two-level guard pages
  10. 17:23Optimizing guard page sizes
  11. 18:28Benchmarking bounds checks
  12. 20:3665-bit overflow handling
  13. 22:44Summary and future
  14. 23:04Q&A: Memory allocation
~/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.