Add an option to generate an entry trampoline for each script executing in the vm and baseline Interpreter
Categories
(Core :: JavaScript Engine: JIT, enhancement, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox113 | --- | fixed |
People
(Reporter: denispal, Assigned: denispal)
References
(Blocks 1 open bug)
Details
(Whiteboard: [sp3])
Attachments
(6 files, 2 obsolete files)
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review |
Generating an entry trampoline for each script whenever we enter the Interpreter or Baseline Interpreter will help distinguish what JS functions are being executed when profiling with perf.
Right now, all Interpreter & Baseline Interpreter executions are labelled under "Interpret" or "Baseline Interpreter", but if we can generate some entry stubs then we can see what functions are being executed on the call stack and it would be much easier to analyze Interpreter performance using perf.
v8 has a similar option --interpreted-frames-native-stack
which does this (see https://v8.dev/docs/linux-perf#v8-linux-perf-flags)
Assignee | ||
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Assignee | ||
Comment 1•1 year ago
|
||
Assignee | ||
Comment 2•1 year ago
|
||
Depends on D171870
Updated•1 year ago
|
Updated•1 year ago
|
Assignee | ||
Comment 3•1 year ago
|
||
Assignee | ||
Comment 4•1 year ago
|
||
Depends on D172630
Assignee | ||
Comment 5•1 year ago
|
||
Depends on D172631
Assignee | ||
Comment 6•1 year ago
|
||
Depends on D172632
Assignee | ||
Comment 7•1 year ago
|
||
Depends on D172633
Assignee | ||
Comment 8•1 year ago
|
||
Depends on D172634
Pushed by dpalmeiro@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/fa84801d3135 part 1 - Add a new JIT frame for baseline interpreter entry trampolines r=iain https://hg.mozilla.org/integration/autoland/rev/58591987a7e3 part 2 - Add an option to toggle emitting interpreter entry trampolines r=iain https://hg.mozilla.org/integration/autoland/rev/248aac5d3e98 part 3 - Extend perf spewer range recorder to add script tags r=iain https://hg.mozilla.org/integration/autoland/rev/abe4af2213bc part 4 - Add a hash map in the JitRuntime to cache interpreter entry trampolines r=jonco https://hg.mozilla.org/integration/autoland/rev/5e173bc15da3 part 5 - Emit an entry trampoline for each script that enters the baseline interpreter r=iain https://hg.mozilla.org/integration/autoland/rev/279822089dce part 6 - Emit an entry trampoline for each script that enters the C++ interpreter r=iain
Comment 10•1 year ago
•
|
||
Backed out for causing spidermonkey bustages in GC.cpp
- Backout link
- Push with failures
- Failure Log
- Failure line: /builds/worker/checkouts/gecko/js/src/gc/GC.cpp:4923:46: error: member access into incomplete type 'js::jit::JitRuntime'
hybrid bustages: https://treeherder.mozilla.org/logviewer?job_id=411510701&repo=autoland
Comment 11•1 year ago
|
||
Pushed by dpalmeiro@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/0af592aed892 part 1 - Add a new JIT frame for baseline interpreter entry trampolines r=iain https://hg.mozilla.org/integration/autoland/rev/85831bb256a9 part 2 - Add an option to toggle emitting interpreter entry trampolines r=iain https://hg.mozilla.org/integration/autoland/rev/27dd48c17e15 part 3 - Extend perf spewer range recorder to add script tags r=iain https://hg.mozilla.org/integration/autoland/rev/5736319db66d part 4 - Add a hash map in the JitRuntime to cache interpreter entry trampolines r=jonco https://hg.mozilla.org/integration/autoland/rev/76fe7cc09a39 part 5 - Emit an entry trampoline for each script that enters the baseline interpreter r=iain https://hg.mozilla.org/integration/autoland/rev/52306e2645c1 part 6 - Emit an entry trampoline for each script that enters the C++ interpreter r=iain
Comment 12•1 year ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/0af592aed892
https://hg.mozilla.org/mozilla-central/rev/85831bb256a9
https://hg.mozilla.org/mozilla-central/rev/27dd48c17e15
https://hg.mozilla.org/mozilla-central/rev/5736319db66d
https://hg.mozilla.org/mozilla-central/rev/76fe7cc09a39
https://hg.mozilla.org/mozilla-central/rev/52306e2645c1
Assignee | ||
Updated•8 months ago
|
Description
•