[WK2][iOS] WebContent process main thread should have fixed priority
authorcdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 27 Jul 2015 05:08:24 +0000 (05:08 +0000)
committercdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 27 Jul 2015 05:08:24 +0000 (05:08 +0000)
https://bugs.webkit.org/show_bug.cgi?id=147313
<rdar://problem/22003112>

Reviewed by Darin Adler.

WebContent process main thread should have fixed priority on iOS 9.
Priority decay regresses PLT and fixing the main thread's priority
gives up a ~3% progression on warm PLT (tested on iPhone 5s).

* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):

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

Source/WebKit2/ChangeLog
Source/WebKit2/WebProcess/cocoa/WebProcessCocoa.mm

index 326b3b8..c32ce20 100644 (file)
@@ -1,3 +1,18 @@
+2015-07-26  Chris Dumez  <cdumez@apple.com>
+
+        [WK2][iOS] WebContent process main thread should have fixed priority
+        https://bugs.webkit.org/show_bug.cgi?id=147313
+        <rdar://problem/22003112>
+
+        Reviewed by Darin Adler.
+
+        WebContent process main thread should have fixed priority on iOS 9.
+        Priority decay regresses PLT and fixing the main thread's priority
+        gives up a ~3% progression on warm PLT (tested on iPhone 5s).
+
+        * WebProcess/cocoa/WebProcessCocoa.mm:
+        (WebKit::WebProcess::platformInitializeWebProcess):
+
 2015-07-26  Dan Bernstein  <mitz@apple.com>
 
         Suppressed an Xcode 7 warning about including a nib in an iOS build product.
 2015-07-26  Dan Bernstein  <mitz@apple.com>
 
         Suppressed an Xcode 7 warning about including a nib in an iOS build product.
index 287b48a..4b90dc5 100644 (file)
@@ -169,6 +169,11 @@ void WebProcess::platformInitializeWebProcess(WebProcessCreationParameters&& par
 #if (TARGET_OS_IPHONE && __IPHONE_OS_VERSION_MIN_REQUIRED >= 90000) || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)
     _CFNetworkSetATSContext(parameters.networkATSContext.get());
 #endif
 #if (TARGET_OS_IPHONE && __IPHONE_OS_VERSION_MIN_REQUIRED >= 90000) || (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)
     _CFNetworkSetATSContext(parameters.networkATSContext.get());
 #endif
+
+#if TARGET_OS_IPHONE && __IPHONE_OS_VERSION_MIN_REQUIRED >= 90000
+    // Priority decay on iOS 9 is impacting page load time so we fix the priority of the WebProcess' main thread (rdar://problem/22003112).
+    pthread_set_fixedpriority_self();
+#endif
 }
 
 void WebProcess::initializeProcessName(const ChildProcessInitializationParameters& parameters)
 }
 
 void WebProcess::initializeProcessName(const ChildProcessInitializationParameters& parameters)