<div><br></div><div><br><div class="gmail_quote"><div dir="ltr">On Wed, Aug 29, 2018 at 3:49 Yusuke Suzuki <<a href="mailto:yusukesuzuki@slowstart.org">yusukesuzuki@slowstart.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><br></div><div><br><div class="gmail_quote"><div dir="ltr">On Wed, Aug 29, 2018 at 3:27 Filip Pizlo <<a href="mailto:fpizlo@apple.com" target="_blank">fpizlo@apple.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><br><div><blockquote type="cite"><div>On Aug 28, 2018, at 11:25 AM, Yusuke Suzuki <<a href="mailto:yusukesuzuki@slowstart.org" target="_blank">yusukesuzuki@slowstart.org</a>> wrote:</div><br class="m_-6257885355299230278m_-9031678779341368873Apple-interchange-newline"><div><div><div dir="auto">Thanks!</div></div><div><br><div class="gmail_quote"><div dir="ltr">On Wed, Aug 29, 2018 at 3:22 Filip Pizlo <<a href="mailto:fpizlo@apple.com" target="_blank">fpizlo@apple.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">I don’t like this proposal.<div><br></div><div>If we are running low on memory, we should switch to bounds checked memory.</div></div></blockquote><div dir="auto"><br></div><div dir="auto">How about using bound checking mode exclusively for low environment?<br></div></div></div></div></blockquote><div><br></div><div>That would mean that, paradoxically, having a machine with a lot of memory means being able to spawn fewer wasm instances.</div><div><br></div><div>We want to support lightweight wasm instances because it wouldn’t be good to rule that out as a use case.</div></div></div></blockquote><div dir="auto"><br></div><div dir="auto">Hmmm, can we compile the BBQ phase / initial wasm code without knowing the attached memory’s mode? The current strategy basically defers compilation of wasm module until the memory mode is found.</div><div dir="auto">Because of this, WebAssembly.compile is not so meaningful in our implementation right now...</div><div dir="auto">And wasm ES6 module can import memory externally. This means that we cannot start wasm compilation after the memory mode of the impprted memory (described in the imported modulr) is downloaded, analyzed and found.</div></div></div></blockquote><div dir="auto"><br></div><div dir="auto">How about always compiling BBQ code with bound checking mode?</div><div dir="auto">It should work with signaling memory with small / no tweaks. And OMG code will be compiled based on the memory mode attached to the module.</div><div dir="auto">Since BBQ -> OMG function call should be linked, we need to call appropriate func for the running memory mode, but it would not introduce significant complexity.</div><div dir="auto"><br></div><div dir="auto"><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="gmail_quote"><div dir="auto"></div></div></div><div><div class="gmail_quote"><div dir="auto"><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><div></div></div></div><div style="word-wrap:break-word"><div><div><br></div><div>-Filip</div><div><br></div><br><blockquote type="cite"><div><div><div class="gmail_quote"><div dir="auto"><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div></div><div><br></div><div>-Filip</div><div><br></div><div><br><div><blockquote type="cite"></blockquote></div></div></div><div style="word-wrap:break-word"><div><div><blockquote type="cite"><div>On Aug 28, 2018, at 11:21 AM, Yusuke Suzuki <<a href="mailto:yusukesuzuki@slowstart.org" target="_blank">yusukesuzuki@slowstart.org</a>> wrote:</div><br class="m_-6257885355299230278m_-9031678779341368873m_962660560005376214Apple-interchange-newline"></blockquote></div></div></div><div style="word-wrap:break-word"><div><div><blockquote type="cite"><div></div></blockquote></div></div></div><div style="word-wrap:break-word"><div><div><blockquote type="cite"><div><div dir="ltr"><div>Posted this mail to webkit-dev mailing list too :)</div><div><br></div><div><div class="gmail_quote"><div dir="ltr">On Wed, Aug 29, 2018 at 3:19 AM Yusuke Suzuki <<a href="mailto:yusukesuzuki@slowstart.org" target="_blank">yusukesuzuki@slowstart.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Hi JSC folks,</div><div><br></div><div>In Wasm supported environment, our MemoryMode is a bit dynamic.</div><div>When we fail to allocate WasmMemory for signaling mode, we fall back to the bound checking memory instead.</div><div><br></div><div>But Wasm code compiled for signaling / bound checking is incompatible. If the code is compiled</div><div>as signaling mode, and if we attach the memory for bound checking, we need to recompile the</div><div>code for bound checking mode. This introduces significant complexity to our wasm compilation.</div><div>And our WebAssembly.compile is not basically compiling: it is just validating.</div><div>Actual compiling needs to be deferred until the memory is attached by instantiating.</div><div>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.<br></div><div><br></div><div>So, my proposal is, can we explore the way to exclusively support one of MemoryMode in a certain architecture?</div><div>For example, in x64, enable signaling mode, and we report OOM errors if we fail to allocate WasmMemory with signaling mode.<br></div><div><br></div><div>Best regards,</div><div>Yusuke Suzuki<br></div></div>
</blockquote></div></div></div></div></blockquote></div></div></div><div style="word-wrap:break-word"><div><div><blockquote type="cite"><div>
_______________________________________________<br>webkit-dev mailing list<br><a href="mailto:webkit-dev@lists.webkit.org" target="_blank">webkit-dev@lists.webkit.org</a><br><a href="https://lists.webkit.org/mailman/listinfo/webkit-dev" target="_blank">https://lists.webkit.org/mailman/listinfo/webkit-dev</a><br></div></blockquote></div><br></div></div></blockquote></div></div>
</div></blockquote></div><br></div></blockquote></div></div>
</blockquote></div></div>