dbezhetskov added the bug label to Issue #6754.
dbezhetskov opened issue #6754:
Test Case
I'm experimenting with generating wasm and SpiderMonkey. The test case is a bit hard to reproduce but it is just executing a mix of generated by hand wasm and SpiderMonkey compiled to wasm.
Steps to Reproduce
...
Expected Results
No bug.
Actual Results
wasmtime._error.WasmtimeError: error while executing at wasm backtrace:
0: 0x776866 - <unknown>!__wasi_clock_time_get
1: 0x77667d - <unknown>!__clock_gettime
2: 0x10b26 - <unknown>!mozilla::TimeStamp::Now(bool)
3: 0x466d61 - <unknown>!js::jit::BaselineCacheIRCompiler::compile()
4: 0x46fbc9 - <unknown>!js::jit::AttachBaselineCacheIRStub(JSContext, js::jit::CacheIRWriter const&, js::jit::CacheKind, JSScript, js::jit::ICScript, js::jit::ICFallbackStub, char const*)
5: 0x48bd4d - <unknown>!js::jit::DoSetElemFallback(JSContext, js::jit::BaselineFrame, js::jit::ICFallbackStub, JS::Value, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::Handle<JS::Value>)
6: 0xdbc - <unknown>!<wasm function 11>
7: 0x2674 - <unknown>!<wasm function 37>
8: 0x2022 - <unknown>!<wasm function 33>
9: 0x393 - <unknown>!<wasm function 0>
10: 0x5c315f - <unknown>!js::jit::MaybeEnterJit(JSContext*, js::RunState&)
11: 0x8bfbf - <unknown>!js::RunScript(JSContext*, js::RunState&)
12: 0x9cdc4 - <unknown>!js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason)
13: 0x9d541 - <unknown>!js::CallFromStack(JSContext*, JS::CallArgs const&, js::CallReason)
14: 0x48efd5 - <unknown>!js::jit::DoCallFallback(JSContext, js::jit::BaselineFrame, js::jit::ICFallbackStub, unsigned int, JS::Value, JS::MutableHandle<JS::Value>)
15: 0x86c - <unknown>!<wasm function 5>
16: 0x231d - <unknown>!<wasm function 35>
17: 0x21a6 - <unknown>!<wasm function 34>
18: 0x393 - <unknown>!<wasm function 0>
19: 0x5c315f - <unknown>!js::jit::MaybeEnterJit(JSContext*, js::RunState&)
20: 0x8bfbf - <unknown>!js::RunScript(JSContext*, js::RunState&)
21: 0x9cdc4 - <unknown>!js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason)
22: 0x9d653 - <unknown>!js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason)
23: 0x2875af - <unknown>!JS_CallFunctionName(JSContext, JS::Handle<JSObject>, char const*, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>)
24: 0xdab4 - CallFunctionByName(char*, bool)Versions and Environment
Wasmtime version or commit: wasmtime-cli 8.0.1
Operating system: Ubuntu
Architecture: amd_x64
Extra Info
My question is - what pointers should I align to be able to call __wasi_clock_time_get? StackPointer?
I export StackPointer from SpiderMonkey instance and use it to allocate stack.
I'm just curious of restrictions that I should to follow.
alexcrichton commented on issue #6754:
Low level details of WASI APIs such as alignment aren't super well documented for preview1 but it's possible to dig into them if you're interested. In general alignment behaves like C and 64-bit types are 8-byte aligned. You'll likely want to have a reference for the ABI of preview1 on-hand when digging into that.
In the meantime though if you're modifying the stack pointer directly then it seems like one of the more likely causes of this error is that LLVM-generated wasm expects the in-wasm stack pointer to be 16-byte aligned. Are your modifications preserving this alignment or should you perhaps also be adding alignment in?
alexcrichton commented on issue #6754:
I'm going to close this since we haven't gotten many more details and the suspicion is that the modifications here are changing the stack pointer, but please feel free to comment with more details and I can reopen and/or help investigate further.
alexcrichton closed issue #6754:
Test Case
I'm experimenting with generating wasm and SpiderMonkey. The test case is a bit hard to reproduce but it is just executing a mix of generated by hand wasm and SpiderMonkey compiled to wasm.
Steps to Reproduce
...
Expected Results
No bug.
Actual Results
wasmtime._error.WasmtimeError: error while executing at wasm backtrace:
0: 0x776866 - <unknown>!__wasi_clock_time_get
1: 0x77667d - <unknown>!__clock_gettime
2: 0x10b26 - <unknown>!mozilla::TimeStamp::Now(bool)
3: 0x466d61 - <unknown>!js::jit::BaselineCacheIRCompiler::compile()
4: 0x46fbc9 - <unknown>!js::jit::AttachBaselineCacheIRStub(JSContext, js::jit::CacheIRWriter const&, js::jit::CacheKind, JSScript, js::jit::ICScript, js::jit::ICFallbackStub, char const*)
5: 0x48bd4d - <unknown>!js::jit::DoSetElemFallback(JSContext, js::jit::BaselineFrame, js::jit::ICFallbackStub, JS::Value, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::Handle<JS::Value>)
6: 0xdbc - <unknown>!<wasm function 11>
7: 0x2674 - <unknown>!<wasm function 37>
8: 0x2022 - <unknown>!<wasm function 33>
9: 0x393 - <unknown>!<wasm function 0>
10: 0x5c315f - <unknown>!js::jit::MaybeEnterJit(JSContext*, js::RunState&)
11: 0x8bfbf - <unknown>!js::RunScript(JSContext*, js::RunState&)
12: 0x9cdc4 - <unknown>!js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason)
13: 0x9d541 - <unknown>!js::CallFromStack(JSContext*, JS::CallArgs const&, js::CallReason)
14: 0x48efd5 - <unknown>!js::jit::DoCallFallback(JSContext, js::jit::BaselineFrame, js::jit::ICFallbackStub, unsigned int, JS::Value, JS::MutableHandle<JS::Value>)
15: 0x86c - <unknown>!<wasm function 5>
16: 0x231d - <unknown>!<wasm function 35>
17: 0x21a6 - <unknown>!<wasm function 34>
18: 0x393 - <unknown>!<wasm function 0>
19: 0x5c315f - <unknown>!js::jit::MaybeEnterJit(JSContext*, js::RunState&)
20: 0x8bfbf - <unknown>!js::RunScript(JSContext*, js::RunState&)
21: 0x9cdc4 - <unknown>!js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason)
22: 0x9d653 - <unknown>!js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason)
23: 0x2875af - <unknown>!JS_CallFunctionName(JSContext, JS::Handle<JSObject>, char const*, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>)
24: 0xdab4 - CallFunctionByName(char*, bool)Versions and Environment
Wasmtime version or commit: wasmtime-cli 8.0.1
Operating system: Ubuntu
Architecture: amd_x64
Extra Info
My question is - what pointers should I align to be able to call __wasi_clock_time_get? StackPointer?
I export StackPointer from SpiderMonkey instance and use it to allocate stack.
I'm just curious of restrictions that I should to follow.
Last updated: Dec 23 2024 at 12:05 UTC