Wasmgrind: Towards Dynamic Concurrency Analysis for Multithreaded WebAssembly
summary
Wasmgrind implements an instrumentation framework that generates offline traces for race and deadlock prediction, proving an embedder-agnostic ABI that exposes thread start/join, memory alloc/free and atomic ops. It patches multiple module instances into a single linear memory using a shared linear memory patching approach (stack moved to heap for extra instances) and emits compressed traces in the rapidbin trace format. The prototype extends wasmbind-style layout fixes and records loads/stores, and it currently produces usable traces for small examples as Wasmgrind instrumentation framework.
AI-written summary · about
chapters (10)
- 0:00Wasmgrind project intro
- 1:25WebAssembly embedder challenges
- 3:33Shared memory for multithreading
- 6:49Runtime API abstraction design
- 8:16Patching instances for shared memory
- 10:46Tracing shared memory ops
- 12:12Q&A: bugs and benchmarks
- 13:39Q&A: rapidbin format and tools
- 14:42Q&A: threading interfaces
- 15:03Q&A: data race detection
related talks
24mMeta-tracing Interpreters in WebAssembly
23mWhamm: A Framework for Performant, Sandboxed Instrumentation.
16mDebugging WebAssembly? Put some Whamm on it!
46mWebAssembly (Digging a bit deeper)
26mA journey of multithreading using WebAssembly
32mThe Amazing Trace: Enhancing Distributed WebAssembly With OTEL- Brooks Townsend
26mNavigating Strategies for Debugging WASM
32mAll The Memory Safety Of C Combined With All The Blazing Speed Of JavaScript
