Closed Bug 1780547 Opened 2 years ago Closed 2 years ago

Missing symbols/js function name in some profile records

Categories

(Core :: JavaScript Engine, defect, P3)

defect

Tracking

()

RESOLVED FIXED

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

Severity: -- → S3
Flags: needinfo?(jdemooij)
Priority: -- → P3

Lots of interesting nameless 'interpreter' frames.

Depends on: 1782003

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?

Flags: needinfo?(jdemooij) → needinfo?(jcoppeard)

I don't think we can make MarkRuntime the first step, but we can stop suppressing the sample during DebugAPI::traceAllForMovingGC.

Assignee: nobody → jcoppeard
Flags: needinfo?(jcoppeard)
Keywords: leave-open
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

(In reply to Alexandre Poirot [:ochameau] from comment #0)
Alexandre, did this help at all?

Flags: needinfo?(poirot.alex)

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!

Flags: needinfo?(poirot.alex)

(In reply to Alexandre Poirot [:ochameau] from comment #8)
No problem, glad this is working now.

Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: