Backed out changeset e9e78f9c8c40 (bug 1111361) for frequent Win7 dromaeo OOMs. a=me
authorRyan VanderMeulen <ryanvm@gmail.com>
Tue, 20 Jan 2015 22:13:10 -0500
changeset 224799 540077a308669a42c0d8fe7dbd43d4cc36c9a5ff
parent 224798 92dcd34c8aa12103e0173645f09d6fa0dacfa9fd
child 224800 49c547ee2a1119f4f2780727b8a69c1b6add667d
child 224850 55b0b21d752903c7955a5f8aac301b8e2aee7453
child 224876 5dfb49c9f1fcd387c356fbdfdc6b75e264008a0b
push id54347
push userryanvm@gmail.com
push dateWed, 21 Jan 2015 03:15:14 +0000
treeherdermozilla-inbound@49c547ee2a11 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersme
bugs1111361
milestone38.0a1
backs oute9e78f9c8c40b807a4ecb5dded9cc188a4af0d90
first release with
nightly linux32
540077a30866 / 38.0a1 / 20150121030203 / files
nightly linux64
540077a30866 / 38.0a1 / 20150121030203 / files
nightly mac
540077a30866 / 38.0a1 / 20150121030203 / files
nightly win32
540077a30866 / 38.0a1 / 20150121030203 / files
nightly win64
540077a30866 / 38.0a1 / 20150121030203 / files
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
releases
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Backed out changeset e9e78f9c8c40 (bug 1111361) for frequent Win7 dromaeo OOMs. a=me
js/src/gc/Marking.cpp
js/src/jsgc.cpp
--- a/js/src/gc/Marking.cpp
+++ b/js/src/gc/Marking.cpp
@@ -1736,22 +1736,16 @@ GCMarker::processMarkStackTop(SliceBudge
     }
 
     processMarkStackOther(tag, addr);
     return;
 
   scan_value_array:
     MOZ_ASSERT(vp <= end);
     while (vp != end) {
-        budget.step();
-        if (budget.isOverBudget()) {
-            pushValueArray(obj, vp, end);
-            return;
-        }
-
         const Value &v = *vp++;
         if (v.isString()) {
             markAndScanString(obj, v.toString());
         } else if (v.isObject()) {
             JSObject *obj2 = &v.toObject();
             if (markObject(obj, obj2)) {
                 pushValueArray(obj, vp, end);
                 obj = obj2;
--- a/js/src/jsgc.cpp
+++ b/js/src/jsgc.cpp
@@ -3160,17 +3160,17 @@ GCRuntime::maybeAllocTriggerZoneGC(Zone 
     size_t usedBytes = zone->usage.gcBytes();
     size_t thresholdBytes = zone->threshold.gcTriggerBytes();
     size_t igcThresholdBytes = thresholdBytes * tunables.zoneAllocThresholdFactor();
 
     if (usedBytes >= thresholdBytes) {
         // The threshold has been surpassed, immediately trigger a GC,
         // which will be done non-incrementally.
         triggerZoneGC(zone, JS::gcreason::ALLOC_TRIGGER);
-    } else if (usedBytes >= igcThresholdBytes && interFrameGC) {
+    } else if (usedBytes >= igcThresholdBytes) {
         // Reduce the delay to the start of the next incremental slice.
         if (zone->gcDelayBytes < ArenaSize)
             zone->gcDelayBytes = 0;
         else
             zone->gcDelayBytes -= ArenaSize;
 
         if (!zone->gcDelayBytes) {
             // Start or continue an in progress incremental GC. We do this