Closed alexcrichton closed 6 days ago
For reference this is from discussions with Ryan this week at WasmCon and the SpiderMonkey reference is here
It looks like you are changing Wasmtime's configuration options. Make sure to complete this check list:
[ ] If you added a new Config
method, you wrote extensive documentation for
it.
[ ] If you added a new Config
method, or modified an existing one, you
ensured that this configuration is exercised by the fuzz targets.
[ ] If you are enabling a configuration option by default, make sure that it has been fuzzed for at least two weeks before turning it on by default.
.github/label-messager/wasmtime-config.md
file.
To add new label messages or remove existing label messages, edit the
.github/label-messager.json
configuration file.
[Learn more.](https://github.com/bytecodealliance/label-messager-action)
This commit follows in the footsteps of SpiderMonkey to reduce the size of the default guard region from 2GiB to 32MiB. SpiderMonkey performance an analysis of some wasm modules and found the largest static offset was 20MiB so 32 is the rounded up version of that.
This will reduce the size of the virtual memory reservation per linear-memory by default. Previously it was 8G due to guards being both before and after linear memory being 2G in size. Now it'll be 4G+64M with before/after guards taken into account. This should in theory make it easier to pack more instances in the pooling allocator for example and overall reduce the virtual memory footprint.
This is not expected to have any major impact on the performance of wasm modules as all bounds checks should still practically be elided. We've been fuzzing differently sized guard regions for quite a long time as well so there should be a low risk of this having any issues specifically connected to a smaller guard region.