RESOLVED FIXED 196733
[WPE] Avoid async IO starving timers
https://bugs.webkit.org/show_bug.cgi?id=196733
Summary [WPE] Avoid async IO starving timers
Enrique Ocaña
Reported 2019-04-09 09:35:34 PDT
When loading a big media file (eg: a 180MB MP4 file) the NetworkProcess downloads the whole file before handing it out to the WebProcess. Further debugging showed that the m_bufferingTimer in NetworkResourceLoader (responsible of sending the downloaded data to the WebProcess via IPC) is triggered several times but eventually stops calling bufferingTimerFired() after the timer deadline has passed. The main thread SharedTimer is starved. This starvation happens because the AsyncIONetwork and DiskCacheRead priorities are higher (have lower values in RunLoopSourcePriority.h) than the MainThreadSharedTimer one.
Attachments
Patch (1.75 KB, patch)
2019-04-09 09:40 PDT, Enrique Ocaña
no flags
Enrique Ocaña
Comment 1 2019-04-09 09:40:46 PDT
Carlos Garcia Campos
Comment 2 2019-04-10 00:54:06 PDT
Comment on attachment 367043 [details] Patch I think it's time to re-consider using the same priorities than the GTK port, note that fdo backend stopped using -70 for their sources. But yes, in the meantime this patch looks good to me. Thanks!
WebKit Commit Bot
Comment 3 2019-04-10 01:56:01 PDT
Comment on attachment 367043 [details] Patch Clearing flags on attachment: 367043 Committed r244108: <https://trac.webkit.org/changeset/244108>
WebKit Commit Bot
Comment 4 2019-04-10 01:56:02 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.