Network process instantiates JSC::VM under fake memory pressure.
authorakling@apple.com <akling@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 14 Mar 2014 02:14:13 +0000 (02:14 +0000)
committerakling@apple.com <akling@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 14 Mar 2014 02:14:13 +0000 (02:14 +0000)
<https://webkit.org/b/130143>

Stop calling GCController::garbageCollectSoon() in the fake memory
pressure callback. The pressure relief code already schedules GC
by way of discardAllCode() which does reportAbandonedObjectGraph().
This way we don't accidentally instantiate a VM in the networking
process for no reason.

Reviewed by Geoffrey Garen.

* platform/mac/MemoryPressureHandlerMac.mm:
(WebCore::MemoryPressureHandler::install):

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

Source/WebCore/ChangeLog
Source/WebCore/platform/mac/MemoryPressureHandlerMac.mm

index ac0b9a3..5e809d6 100644 (file)
@@ -1,3 +1,19 @@
+2014-03-13  Andreas Kling  <akling@apple.com>
+
+        Network process instantiates JSC::VM under fake memory pressure.
+        <https://webkit.org/b/130143>
+
+        Stop calling GCController::garbageCollectSoon() in the fake memory
+        pressure callback. The pressure relief code already schedules GC
+        by way of discardAllCode() which does reportAbandonedObjectGraph().
+        This way we don't accidentally instantiate a VM in the networking
+        process for no reason.
+
+        Reviewed by Geoffrey Garen.
+
+        * platform/mac/MemoryPressureHandlerMac.mm:
+        (WebCore::MemoryPressureHandler::install):
+
 2014-03-13  Diego Pino Garcia  <dpino@igalia.com>
 
         Web Inspector: AXI: Expose focused/focusable state in the Accessibility Node Inspector
index b727d34..4c808e4 100644 (file)
@@ -81,11 +81,8 @@ void MemoryPressureHandler::install()
     });
 
     // Allow simulation of memory pressure with "notifyutil -p org.WebKit.lowMemory"
-    // Note that we also ask JSC to garbage collect some time soon, unlike the real memory pressure path.
-    // This is to get more stable numbers in memory benchmarks using this mechanism.
     notify_register_dispatch("org.WebKit.lowMemory", &_notifyToken, dispatch_get_main_queue(), ^(int) {
         memoryPressureHandler().respondToMemoryPressure();
-        gcController().garbageCollectSoon();
         malloc_zone_pressure_relief(nullptr, 0);
     });