add resource monitor markers to task graph generation
Categories
(Firefox Build System :: Task Configuration, task)
Tracking
(Not tracked)
People
(Reporter: jcristau, Assigned: jcristau)
References
(Depends on 1 open bug)
Details
Attachments
(6 files)
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review |
taskgraph decision sets up a resource monitor and decision tasks output a profile, but it's missing a lot of useful markers to get insights into the various steps.
We should also set up the resource monitor for the task graph generation step of mach try.
Marking as dependent on bug 1425785 because that adds a mechanism to forward markers from subprocesses.
| Assignee | ||
Comment 1•5 days ago
|
||
The profile is written to the logs/try directory of the mach state directory.
Updated•5 days ago
|
| Assignee | ||
Comment 2•5 days ago
|
||
Add a forward_to argument to SystemResourceMonitor so child processes can
forward to a file given to them other than through the environment, and a
children_forward_path property giving the file children should forward to.
Forked children no longer see the parent's monitor as theirs, so they can't
stop the parent's resource usage collection when exiting.
| Assignee | ||
Comment 3•5 days ago
|
||
Kinds loaded in worker processes forward their marker to the monitor in the
parent process. The workers find ProfiledKind through the kind instances they
are sent, so this works whatever the multiprocessing start method is.
| Assignee | ||
Comment 4•5 days ago
|
||
Getting the tasks of a kind loaded in another process back to the parent
process takes over a second for the largest kinds, and verifications take
most of the time of some generation phases, neither of which was covered by
markers.
| Assignee | ||
Comment 5•5 days ago
|
||
| Assignee | ||
Comment 6•5 days ago
|
||
taskgraph calls generator.phase_finished after each phase it runs, with no name
for a phase that raised. The graph_config phase isn't recorded: it ends before
register() replaces the hook.
Description
•