-
Notifications
You must be signed in to change notification settings - Fork 108
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Interpreter frames are translated wrong in Node 8 #83
Comments
so the problem is, correlating the addresses - they don't match in an obvious way – there's possibly variable offsets happening on a side note, there's a way to ensure (hopefully almost) everything JIT compiles
This will show all functions in the flamegraph |
I'm starting to think (for the second time in a year) that this is going to require patches to core, How else do we extract the bytecode array from within InterpreterEntryTrampoline frames.. @AndreasMadsen @mcollina @mafintosh can you verify what I'm saying? Am I seeing this right? |
yeah. now I remember: #76 (comment) |
For sure you can implement your own ustack helper, but that only solves the issue for SmartOS. It might also be possible to implement your own ustack from scratch, in which case you will have MacOS covered too. I don’t see any solution for linux pref, as that doesn’t allow runtime interruption execution, properly due to user space permission. The current roadmap for V8, is to either:
|
v4 mitigates this problem |
FWIW there's an open CL on V8 (https://chromium-review.googlesource.com/c/v8/v8/+/959081) to make interpreted frames work nicely with external profilers. We're planning to have this shipped with Node.js 10. How you're mitigating this problem on v4? I'd like to make sure these changes won't break it. |
V4 uses the tick profiler - which has the frames (external tracing still supported with --kernel-tracing flag where it's still an issue) |
@mcollina asked me to share some details about interpreter frames.
When JavaScript functions aren't JIT compiled but interpreted the instruction addresses will point to the interpreter handlers and not compiled JavaScript frames directly. I have received the following information from V8 team member Jaroslav Sevcik on how this can be solved:
The text was updated successfully, but these errors were encountered: