Missing symbols/js function name in some profile records
Categories
(Core :: JavaScript Engine, defect, P3)
Tracking
()
People
(Reporter: ochameau, Assigned: jonco)
References
(Blocks 1 open bug)
Details
Attachments
(1 file)
Recently, while profiling DevTools, I started seeing more and more profiles missing the function names.
This might be related to JIT as in the current profile I see js::jit::MaybeEnterJit
before the frames missing proper naming.
This isn't so obvious to reproduce, but here is a reliable way for me to reproduce:
- Open the browser console,
- run
for(let i=0; i<100000; i++) console.log({foo: i})
This will freeze FX for a bit. - Record a profile while closing the browser console.
This will also freeze FX for even longer and you will see missing symbols in the profile record.
Here is an example of such record:
https://share.firefox.dev/3aPPr1b
Updated•2 years ago
|
Comment 1•2 years ago
|
||
Lots of interesting nameless 'interpreter' frames.
Comment 2•2 years ago
|
||
I'm pretty sure this is from the AutoSuppressProfilerSampling
in Nursery::traceRoots
. In this case we spend a lot of time under DebugAPI::traceAllForMovingGC
.
@jonco: I think we could shorten the AutoSuppressProfilerSampling
range a bit, especially if we make the MarkRuntime
step the first one in traceRoots
?
Assignee | ||
Comment 3•2 years ago
|
||
I don't think we can make MarkRuntime the first step, but we can stop suppressing the sample during DebugAPI::traceAllForMovingGC.
Assignee | ||
Updated•2 years ago
|
Assignee | ||
Comment 4•2 years ago
|
||
Pushed by jcoppeard@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/d6b88be6a858 Reduce the length of time the gecko profiler is suppressed for while collecting the nursery r=jandem
Comment 6•2 years ago
|
||
bugherder |
Assignee | ||
Comment 7•2 years ago
|
||
(In reply to Alexandre Poirot [:ochameau] from comment #0)
Alexandre, did this help at all?
Reporter | ||
Comment 8•2 years ago
|
||
Yes, it seems to be fixed, using comment 0 STR I now get such profile:
https://share.firefox.dev/3bE7O9q
There is still one intermediate frame still being an address, but that doesn't prevent me from understanding what is happening.
Thanks a lot for jumping on this!
Assignee | ||
Comment 9•2 years ago
|
||
(In reply to Alexandre Poirot [:ochameau] from comment #8)
No problem, glad this is working now.
Updated•2 years ago
|
Description
•