Add a profiler marker in nsSocketTransportService::Poll
Categories
(Core :: Networking, task, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox92 | --- | fixed |
People
(Reporter: florian, Assigned: florian)
References
(Blocks 1 open bug, Regressed 1 open bug)
Details
(Whiteboard: [necko-triaged])
Attachments
(1 file)
This will be helpful to understand bug 1709175, and should remain generally useful afterwards.
Assignee | ||
Comment 1•3 years ago
|
||
Assignee | ||
Comment 2•3 years ago
|
||
Example profile: https://share.firefox.dev/3A6z7zP
Updated•3 years ago
|
Pushed by fqueze@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/fb900d90b4c9 Add a profiler marker in nsSocketTransportService::Poll to help understand excessive CPU use on the Socket Thread, r=mstange,necko-reviewers,valentin,gerald.
Comment 4•3 years ago
|
||
bugherder |
Comment 5•2 months ago
|
||
This marker is super-high volume; on a profile of fast.net, I see 30% of the CPU time used in the transfer by socketthread going to the printfcstring() calls. (~10-15% of a core). And they're all basically identical.
Perhaps this should be optional via ifdef or profiler feature. i don't think this is generally useful in enough cases to leave it in, as it affects real performance when trying to do large transfers
Comment 6•2 months ago
|
||
perhaps we should put this behind an:
#if defined(DEBUG) || defined (POLL_MARKERS)
which would avoid it bitrotting, but also avoid it interfering with profiles except when we want to actively investigate poll issues.
Comment 7•2 months ago
|
||
Profile with it #defined out: https://share.firefox.dev/3SKnAkK
CPU use is ~10%+ lower during transfer (and transfer was a bit higher, ~950-980Mbps, though that is likely not due to the change, but it should have pushed CPU even a bit higher)
Assignee | ||
Comment 8•2 months ago
|
||
(In reply to Randell Jesup [:jesup] (needinfo me) from comment #7)
Profile with it #defined out: https://share.firefox.dev/3SKnAkK
What happened to the Awake markers in the socket thread of the parent in that profile? https://share.firefox.dev/4bP50R3 They seem to finish but never start.
Assignee | ||
Comment 9•2 months ago
|
||
(In reply to Randell Jesup [:jesup] (needinfo me) from comment #5)
This marker is super-high volume; on a profile of fast.net, I see 30% of the CPU time used in the transfer by socketthread going to the printfcstring() calls. (~10-15% of a core). And they're all basically identical.
I see only 12 samples in nsPrintfCString::nsPrintfCString, how do you get to that 30% figure?
Updated•1 month ago
|
Description
•