Closed Bug 1815538 Opened 3 years ago Closed 2 years ago

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)

enhancement

Tracking

()

RESOLVED FIXED
113 Branch
Tracking Status
firefox113 --- fixed

People

(Reporter: denispal, Assigned: denispal)

References

(Blocks 1 open bug)

Details

(Whiteboard: [sp3])

Attachments

(6 files, 2 obsolete files)

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)

Severity: -- → S3
Priority: -- → P3
See Also: → 1817496
Whiteboard: [sp3]
Attachment #9321619 - Attachment is obsolete: true
Attachment #9321934 - Attachment is obsolete: true
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

Backed out for causing spidermonkey bustages in GC.cpp

hybrid bustages: https://treeherder.mozilla.org/logviewer?job_id=411510701&repo=autoland

Flags: needinfo?(dpalmeiro)
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
Blocks: 1827213
Duplicate of this bug: 1817496
Flags: needinfo?(dpalmeiro)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: