Implement dispatcher & IPC for Timing Distributions in FOG
Categories
(Toolkit :: Telemetry, task, P1)
Tracking
()
Tracking | Status | |
---|---|---|
firefox84 | --- | fixed |
People
(Reporter: chutten, Assigned: chutten)
References
Details
(Whiteboard: [telemetry:fog:m6])
Attachments
(1 file)
Docs for IPC and Dispatcher stuff can be found here.
Timing Distribution samples need to be sent across IPC from non-main processes and dispatched off the instrumenting thread in the main process.
Since the sample calculations are done in the core this'll probably need to be more of an ordered command stream of {Start|Stop|Cancel, TimerId, Instant}
structs.
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Comment 2•4 years ago
|
||
We have to generate TimerIds in child processes because they're returned
synchronously from start()
. This means each TimerId has to be process-local,
unless we go to some serious effort coordinating which TimerIds can be assigned
by which processes (let's not do that).
If the TimerId is process-local then we need not send a command stream of
start(), stop_and_accumulate(), and cancel() commands each with their Instant
of execution... we can calculate the durations ourselves, process-locally.
(( We could use std::time::Instant for this since we're process-local and not
trying to Send or Serialize them anywhere, but I opted for fog::private::Instant
for consistency's sake. ))
Comment 4•4 years ago
|
||
bugherder |
Description
•