[WPE] Avoid async IO starving timers
authoreocanha@igalia.com <eocanha@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 10 Apr 2019 08:55:55 +0000 (08:55 +0000)
committereocanha@igalia.com <eocanha@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 10 Apr 2019 08:55:55 +0000 (08:55 +0000)
https://bugs.webkit.org/show_bug.cgi?id=196733

Reviewed by Carlos Garcia Campos.

If AsyncIONetwork and DiskCacheRead priorities are higher than
MainThreadSharedTimer the timers get starved. This causes the NetworkProcess
to accumulate MB of data instead of handing it down to the WebProcess (done
using a Timer). This eventually causes an Out Of Memory kill on the
NetworkProcess on some embedded platforms with low memory limits.

This patch levels the three priorities to the same value, while still leaving
DiskCacheWrite with less priority than DiskCacheRead.

* wtf/glib/RunLoopSourcePriority.h: Changed RunLoopSourcePriority values for WPE.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@244108 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WTF/ChangeLog
Source/WTF/wtf/glib/RunLoopSourcePriority.h

index a0f55e3..0b362c0 100644 (file)
@@ -1,3 +1,21 @@
+2019-04-10  Enrique Ocaña González  <eocanha@igalia.com>
+
+        [WPE] Avoid async IO starving timers
+        https://bugs.webkit.org/show_bug.cgi?id=196733
+
+        Reviewed by Carlos Garcia Campos.
+
+        If AsyncIONetwork and DiskCacheRead priorities are higher than
+        MainThreadSharedTimer the timers get starved. This causes the NetworkProcess
+        to accumulate MB of data instead of handing it down to the WebProcess (done
+        using a Timer). This eventually causes an Out Of Memory kill on the
+        NetworkProcess on some embedded platforms with low memory limits.
+
+        This patch levels the three priorities to the same value, while still leaving
+        DiskCacheWrite with less priority than DiskCacheRead.
+
+        * wtf/glib/RunLoopSourcePriority.h: Changed RunLoopSourcePriority values for WPE.
+
 2019-04-09  Don Olmstead  <don.olmstead@sony.com>
 
         [CMake] WTF derived sources should only be referenced inside WTF
 2019-04-09  Don Olmstead  <don.olmstead@sony.com>
 
         [CMake] WTF derived sources should only be referenced inside WTF
index c9a4567..7127a4e 100644 (file)
@@ -102,9 +102,9 @@ enum RunLoopSourcePriority {
 
     ReleaseUnusedResourcesTimer = -70,
 
 
     ReleaseUnusedResourcesTimer = -70,
 
-    AsyncIONetwork = -70,
-    DiskCacheRead = -70,
-    DiskCacheWrite = -60
+    AsyncIONetwork = -60,
+    DiskCacheRead = -60,
+    DiskCacheWrite = -50
 };
 
 #endif
 };
 
 #endif