Add notes for 21-08-05 wasmtime meeting (#3165)

This commit is contained in:
Till Schneidereit
2021-08-09 11:22:36 +02:00
committed by GitHub
parent 9c550fcf41
commit 13b9ce8902

View File

@@ -6,9 +6,66 @@
- Alex: update on Wasm64 - Alex: update on Wasm64
- Andrew: update on differential fuzzing against spec interpreter - Andrew: update on differential fuzzing against spec interpreter
- Till: meetings are finally public - Till: meetings are finally public
- Chris: SIMD complete on x64 and aarch64
## Attendees ## Attendees
- Alex
- Andrew
- Benjamin
- Chris
- Dan
- Johnnie
- Nick
- Pat
- Till
## Notes ## Notes
### Wasmtime project meetings public
Till: We now invite the public to join this meeting.
Alex: Should we record these meetings?
Various: Its a tradeoff, but recording meetings has the downside of making people less open, so it seems like well continue to not record them for now.
### Wasm64 support
Alex: Im implementing wasm64 in Cranelift.
Initial focus is on getting it working; optimization will happen later.
PR is almost ready; currently doing fuzzing and fixing bugs
Initial implementation will bounds-check on every access
Andrew: Is there a way to use guard pages?
CF: Could we do pointer masking?
Alex: Wasm semantics need a bounds check.
Alex: Our focus right now is just to make sure all our infrastructure is in place for 64-bit addresses. Well look at optimization later, and hopefully the people championing wasm64 will help come up with ideas in this space.
Alex: It will also help once we have benchmarks to help us evaluate performance.
Alex: In some settings we may be able to specialize for the case where the memory is dynamically always less than 4 GIB.
Till: If wasm64 becomes popular, people may start asking about ASLR. Theres a lot to think about here?
Dan: Hardware support could significantly accelerate wasm64 and give us more options for things like ASLR.
Till: There are actual use cases for wasm64 out there.
### Differential fuzzing against spec interpreter
Andrew: Wasm spec interpreter and fuzzing.
Fuzzing against the spec interpreter would be nice because wed be able to compare wasmtime to the spec interpreter. The spec interpreter is written in OCaml, so Im using the OCaml API to run the spec interpreter.
Its only scalar for now, but well add SIMD, which will be one of the big motivations for this work.
Requires having OCaml installed on the system.
Instrumentation indicates that about half of the fuzz-generated modules are actually getting executed, so it seems like its working pretty well.
Theres currently an unexplained segfault.
Some work items remaining to enable SIMD:
Enable wasm-smith to emit SIMD code
Either use git tricks to use the simd proposal repo, or wait for simd to merge to the spec repo
### SIMD support complete
Chris: Wasm SIMD support is now complete, big thanks to Andrew and Johnnie, and Anton and
Enable it with a command-line flag. One more PR needed for arm64 support.
Getting ready to announce it publicly; need more testing, and possibly the OCaml fuzzing work before enabling it by default
Alex: One way to test is to compile misc Rust crates with autovectorization.
Chris: The fuzzer would be the big thing to aim for.
### [ad-hoc item] Project positioning
Benjamin: What is the project positioning about?
Chris: Were starting to put together an RFC.
Till: As the project grows, we need to communicate shared goals.
Johnnie: Have there been any specific problems related to this?
TIll: No, but this is something we see across many projects, where individuals and organizations will go off and add features or make changes that meet their needs, and it can be difficult to integrate them into a coherent whole if we dont have well-communicated shared goals.
### [ad-hoc item] Status of replacing Lucet with Wasmtime?
Andrew: What is the status of replacing Lucet with Wasmtime?
Pat: Weve made lots of progress, can serialize/deseriealize, though its still months out from production use. Wasmtime has all the features.
Till: And we know know of another Lucet user that has switched to Wasmtime.