Make the profiler (or UI) stop reporting PostTask() as sync main-thread disk IO

RESOLVED INVALID

Status

()

RESOLVED INVALID
6 years ago
a year ago

People

(Reporter: cjones, Unassigned)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

The profiler UI has a nice annotation for main-thread disk IO, but it's flagging PostTask() as IO because it write()s to a wake-up pipe to notify the thread the task is being posted to.  That's equivalent to a futex() call, which doesn't get flagged as disk IO (correctly).

This is particularly annoying because sending IPC's always requires a PostTask(), and those get flagged as main-thread disk IO.  (Although, when I'm tracking down significant IPC's, it becomes a blessing in disguise.  But we should do that differently.)

I'm not sure which part of the system determines this.  How can we make this stop?
(In reply to Chris Jones [:cjones] [:warhammer] from comment #0)
> That's equivalent to a futex() call

(By which I mean, approximately equivalent in the amount of work done in the kernel.)
Turns out this a problem if we're not unwinding because we don't see the PostTask. We have a few options:
1) Add a sample_label to PostTask().
2) Only remove the annotation if PostTask shows up (stackwalk).
3) Ignore 1 sample long IO calls. This option is not great because it hides other fast IO steps.
Bug 853363 will let the UI get rid of this false positive.
Blocks: 758697
Depends on: 853363
Blocks: 1329178
perf.html doesn't have any stack-based heuristics for detecting main thread IO, so it doesn't have this bug.
Status: NEW → RESOLVED
Last Resolved: a year ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.