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




Gecko Profiler
5 years ago
a year ago


(Reporter: cjones, Unassigned)


(Blocks: 1 bug)

Firefox Tracking Flags

(Not tracked)


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
You need to log in before you can comment on or make changes to this bug.