Closed Bug 1815538 Opened 1 year ago Closed 1 year 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
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: