Allow capturing real-time traces in the Firefox Profiler
Categories
(Core :: Audio/Video: MediaStreamGraph, enhancement, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox79 | --- | fixed |
People
(Reporter: padenot, Assigned: padenot)
References
(Blocks 1 open bug, Regressed 1 open bug, Regression)
Details
(Keywords: regression)
Attachments
(14 files, 2 obsolete files)
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review |
Multiple steps for this:
- Generalize the mpsc queue to have arbitrary data instead of just strings
- Allow to have multiple backends for the macros: MOZ_LOG or profiler markers
Updated•2 years ago
|
Assignee | ||
Comment 1•2 years ago
|
||
Comment 2•2 years ago
|
||
You can already put all log messages into profiles with "profilermarkers" in MOZ_LOG
Assignee | ||
Comment 3•2 years ago
|
||
Yes, this can't be used for us, the marker API is too slow/not deterministic enough, so we need to use our custom code that does the minimum work possible, put that in a queue, bounce to another thread, and then use the marker API.
Assignee | ||
Comment 4•2 years ago
|
||
Updated•2 years ago
|
Assignee | ||
Comment 5•2 years ago
|
||
Depends on D78496
Assignee | ||
Comment 6•2 years ago
|
||
The allocation still needs to be a power of two so the ergonomics are not
amazing, but this will do until we replace with a buffer-based MPSC ringbuffer.
Depends on D78498
Assignee | ||
Comment 7•2 years ago
|
||
Depends on D78499
Assignee | ||
Comment 8•2 years ago
|
||
Depends on D78501
Assignee | ||
Comment 9•2 years ago
|
||
Depends on D78503
Assignee | ||
Comment 10•2 years ago
|
||
Depends on D78504
Assignee | ||
Comment 11•2 years ago
|
||
The profile now handles this.
Depends on D78505
Assignee | ||
Comment 12•2 years ago
|
||
Depends on D78506
Assignee | ||
Comment 13•2 years ago
|
||
Depends on D78507
Assignee | ||
Comment 14•2 years ago
|
||
Depends on D78508
Assignee | ||
Comment 15•2 years ago
|
||
Depends on D78509
Updated•2 years ago
|
Assignee | ||
Comment 16•2 years ago
|
||
Depends on D78510
Updated•2 years ago
|
Comment 17•2 years ago
|
||
Pushed by padenot@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/9a8a328a2482 Push the JSON serialization logic for MOZ_LOG output in AsyncLogger, prepare for another mode. r=achronop https://hg.mozilla.org/integration/autoland/rev/f42379fcffdc Push PID and TIP gathering to AsyncLogger. r=achronop https://hg.mozilla.org/integration/autoland/rev/c58446c7468a Split the MPSC queue in its own file, and generalize it for any type. r=achronop https://hg.mozilla.org/integration/autoland/rev/fca3a809b805 Teach AsyncLogger to output profiler markers. r=gerald https://hg.mozilla.org/integration/autoland/rev/32bc0f2b3a22 Add the native audio callback thread to the profiler. r=gregtatum https://hg.mozilla.org/integration/autoland/rev/68e0a73427bf Register the audio callback thread(s) to the Gecko profiler even when it changes. r=achronop https://hg.mozilla.org/integration/autoland/rev/6ffb58f1abad Don't start/stop the real-time tracing code from the objects they measure. r=achronop https://hg.mozilla.org/integration/autoland/rev/48f24a4445a1 Add two missing constructors to TracingMarkerPayload. r=gerald https://hg.mozilla.org/integration/autoland/rev/9f3bca4dedde Start and stop audio callback tracing when the profiler starts and stops. r=gerald https://hg.mozilla.org/integration/autoland/rev/c2f99008a2a0 Add categories for real-time media tracing. r=gerald https://hg.mozilla.org/integration/autoland/rev/b12a18558d42 Have a fixed size buffer for the message part of the tracing. r=achronop https://hg.mozilla.org/integration/autoland/rev/bd39e75bf891 Don't register the audio callback thread when using audioipc: it's already registered. r=achronop
Assignee | ||
Comment 18•2 years ago
|
||
This is tracked in bug 1645416.
Comment 19•2 years ago
|
||
Pushed by padenot@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/e88ca3b28a60 Don't require POT for queue items on windows/android for now, on a CLOSED TREE
Assignee | ||
Comment 20•2 years ago
|
||
Comment 21•2 years ago
|
||
Pushed by padenot@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/066838d09929 Properly check thread id when running with cubeb not sandboxed on a CLOSED TREE.
Comment 22•2 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/9a8a328a2482
https://hg.mozilla.org/mozilla-central/rev/f42379fcffdc
https://hg.mozilla.org/mozilla-central/rev/c58446c7468a
https://hg.mozilla.org/mozilla-central/rev/fca3a809b805
https://hg.mozilla.org/mozilla-central/rev/32bc0f2b3a22
https://hg.mozilla.org/mozilla-central/rev/68e0a73427bf
https://hg.mozilla.org/mozilla-central/rev/6ffb58f1abad
https://hg.mozilla.org/mozilla-central/rev/48f24a4445a1
https://hg.mozilla.org/mozilla-central/rev/9f3bca4dedde
https://hg.mozilla.org/mozilla-central/rev/c2f99008a2a0
https://hg.mozilla.org/mozilla-central/rev/b12a18558d42
https://hg.mozilla.org/mozilla-central/rev/bd39e75bf891
https://hg.mozilla.org/mozilla-central/rev/e88ca3b28a60
https://hg.mozilla.org/mozilla-central/rev/066838d09929
Updated•2 years ago
|
Updated•1 year ago
|
Description
•