Add an easy way to generate a marker-only profile from a try task
Categories
(Core :: Gecko Profiler, enhancement, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox90 | --- | fixed |
People
(Reporter: sfink, Assigned: sfink)
References
(Blocks 1 open bug)
Details
Attachments
(1 file)
(Perhaps the wrong component?)
I would like to try to start using the profiler for (1) tracking down performance regressions in {talos,raptor,browsertime} that are hard to see with full profiler overhead, and (2) one-off measurements that can be easily embedded in code and sent off to the try server.
For both, it would be very helpful to be able to run the profiler in marker-only mode without having to do things like hack raptor/browsertime/base.py.
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Comment 1•4 years ago
|
||
Comment 2•4 years ago
|
||
Thanks :sfink this is awesome! I think these bugs may be potential duplicates, or at least related: bug 1465922, bug 1584982, bug 1545386, bug 1640905. Feel free to update those as appropriate.
Assignee | ||
Comment 3•4 years ago
|
||
(In reply to Dave Hunt [:davehunt] [he/him] ⌚GMT from comment #2)
Thanks :sfink this is awesome! I think these bugs may be potential duplicates, or at least related: bug 1465922, bug 1584982, bug 1545386, bug 1640905. Feel free to update those as appropriate.
My ever-expanding patch definitely covers some of that, but perhaps not all. Once I get it working with gecko-profile-features
, I'll test to see what else I might have enabled along the way and mark the duplicates accordingly. (At one or two places in my patch, I brought along some of the other settings as well, but so far I've only been testing to ensure I didn't break anything.) I'm doing this in a pretty cargo-cult manner; I don't really understand most of the code I'm modifying, just mindlessly searching for keywords and then debugging when things still don't work.
Updated•4 years ago
|
Assignee | ||
Comment 4•4 years ago
|
||
Ok, it looks like :sparky is going to accept it in close to its current form, and I expanded it to cover some of those other bugs, so I'll start marking duplicates.
Updated•4 years ago
|
Comment 10•4 years ago
|
||
Backed out changeset aab899c222a0 (Bug 1702310) for causing talos failures.
Backout link: https://hg.mozilla.org/integration/autoland/rev/f1f183fc5a07ff763146f48f1816184f0f0dc8a7
Push with failures, failure log.
Assignee | ||
Comment 11•4 years ago
|
||
I found time to look at this.
An update: the problem in the above push seems to be that --gecko-interval
defaults to 0
, which is not None
, and so the gecko profiler is turned on for jobs that don't pass any of that flags. Oops. I was only testing jobs where I passed a bare --gecko-profile
and jobs where I passed both --gecko-profile-threads
and --gecko-profile-features
, not jobs where I didn't pass anything. Oops again. (Also, I only tested on Linux, and the incorrectly profiled jobs don't crash there to make it obvious. On Windows, everything falls apart for some reason.)
I've fixed that, but I'm noticing a second issue: on Windows at least, passing --gecko-profile-threads=MainThread,Compositor,DOM Worker,Renderer
is resulting in the threads ["MainThread", "Compositor", "DOM"]
. It must be splitting a command line on the space character. So I still need to fix that before trying to re-land. It is possible that it is a pre-existing bug, but at the very least this patch would expose it much more easily.
Assignee | ||
Comment 12•4 years ago
|
||
Oh, the incorrectly split string seems to be happening in run-task
or perhaps even what calls it?
Executing command 0: C:/mozilla-build/python3/python3.exe run-task -- c:\mozilla-build\python3\python3.exe -u mozharness\scripts\talos_script.py --cfg mozharness\configs\talos\windows_config.py --suite=damp --use-talos-json --setpref=media.peerconnection.mtransport_process=false --setpref=network.process.enabled=false --gecko-profile --gecko-profile-threads=GeckoMain,Compositor,DOM Worker,Renderer --gecko-profile-features=nostacksampling,threads,leaf,cpu --download-symbols ondemand
...
executing ['c:\\mozilla-build\\python3\\python3.exe', '-u', 'mozharness\\scripts\\talos_script.py', '--cfg', 'mozharness\\configs\\talos\\windows_config.py', '--suite=damp', '--use-talos-json', '--setpref=media.peerconnection.mtransport_process=false', '--setpref=network.process.enabled=false', '--gecko-profile', '--gecko-profile-threads=GeckoMain,Compositor,DOM', 'Worker,Renderer', '--gecko-profile-features=nostacksampling,threads,leaf,cpu', '--download-symbols', 'ondemand']
Assignee | ||
Comment 13•3 years ago
|
||
Filed bug 1707625 for the unfortunate Windows splitting issue. (There's a workaround in the current patch here.)
Comment 14•3 years ago
|
||
Comment 15•3 years ago
|
||
bugherder |
Description
•