Use C++ to JIT entry registers on Mac&Linux/x64 to resume frame stack walking when lost
Categories
(Core :: Gecko Profiler, enhancement, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox91 | --- | fixed |
People
(Reporter: mozbugz, Assigned: mozbugz)
References
Details
Attachments
(1 file)
Similar to https://phabricator.services.mozilla.com/D116379 , it is possible to restart the frame stack walker (used on Mac Nightly, and on Linux but only for backtraces) using x86-64 JIT information.
Quick test on Mac: Before, after
It's not as dramatic as on Windows, but still good: The "Web Content" main thread for Reddit went from 17% of "bad" stacks down to 3.6%.
Assignee | ||
Comment 1•4 years ago
|
||
This is similar to what DoMozStackWalkBacktrace does, by looking where the stack walker stopped, and if it can be restarted at a calling C++-to-JIT entry frame.
Note: The code is pretty much a modified copy, but factoring out the common parts would be difficult because of the specific local variables, the different stack-walking functions, and the different register storages.
Also, instead of mentioning the OS (was only Windows), the choice of platform support is now based on the actual Profiler stack walkers that are used.
![]() |
||
Comment 3•4 years ago
|
||
bugherder |
Description
•