[jsc-dev] Can we drop supporting mixed Wasm::MemoryMode in one process?

Yusuke Suzuki yusukesuzuki at slowstart.org
Tue Aug 28 11:19:54 PDT 2018


Hi JSC folks,

In Wasm supported environment, our MemoryMode is a bit dynamic.
When we fail to allocate WasmMemory for signaling mode, we fall back to the
bound checking memory instead.

But Wasm code compiled for signaling / bound checking is incompatible. If
the code is compiled
as signaling mode, and if we attach the memory for bound checking, we need
to recompile the
code for bound checking mode. This introduces significant complexity to our
wasm compilation.
And our WebAssembly.compile is not basically compiling: it is just
validating.
Actual compiling needs to be deferred until the memory is attached by
instantiating.
It is not good when we would like to share WasmModule among multiple wasm
threads / workers in the future, since the "compiled" Wasm module is not
actually compiled.

So, my proposal is, can we explore the way to exclusively support one of
MemoryMode in a certain architecture?
For example, in x64, enable signaling mode, and we report OOM errors if we
fail to allocate WasmMemory with signaling mode.

Best regards,
Yusuke Suzuki
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/jsc-dev/attachments/20180829/439dd4bd/attachment.html>


More information about the jsc-dev mailing list