Bug 290211
| Summary: | Stop using IOChannel in NetworkCache | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Ben Nham <nham> |
| Component: | WebKit Misc. | Assignee: | Ben Nham <nham> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | webkit-bug-importer |
| Priority: | P2 | Keywords: | InRadar |
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Ben Nham
We've seen sporadic logs of page loads taking minutes to complete when the system is under load. The logs are showing that the disk cache lookup in NetworkProcess is getting preempted for minutes and it's being serviced on a default overcommit dispatch queue at priority 4. We think this might be because we're using dispatch_io to read the records, which internally basically parks a thread on the overcommit queue in pread and somehow the priority propagation isn't always working and sometimes leading to the pread being stuck and preempted at pri 4. Since dispatch_io is basically buying us nothing here other than using more threads and making it harder to follow what's going on, we should probably just stop using it and instead make I/O syscalls directly on the network cache's I/O queue.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Ben Nham
<rdar://problem/142645876>
Ben Nham
Pull request: https://github.com/WebKit/WebKit/pull/42840
EWS
Committed 292576@main (0b589ff5c2f2): <https://commits.webkit.org/292576@main>
Reviewed commits have been landed. Closing PR #42840 and removing active labels.