Merge inbound to mozilla-central. a=merge
authorTiberius Oros <toros@mozilla.com>
Mon, 08 Oct 2018 12:51:36 +0300
changeset 439941 fb8edc9e0e00097813febdb64a64c82666c812be
parent 439940 f34e414cd0aaa009f5fdda33f0a5a9954faee84e (current diff)
parent 439933 9fdde4e90efb239b7343bfc20c0266f0946ca970 (diff)
child 439942 556ba29c2e6c5af0ba72aaf67f8c81f96e2a6672
child 439981 570a90cadb6711bfe7ec61935eebf1c9a7ee5d72
push id108713
push usertoros@mozilla.com
push dateMon, 08 Oct 2018 09:55:29 +0000
treeherdermozilla-inbound@556ba29c2e6c [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmerge
milestone64.0a1
first release with
nightly linux32
fb8edc9e0e00 / 64.0a1 / 20181008100121 / files
nightly linux64
fb8edc9e0e00 / 64.0a1 / 20181008100121 / files
nightly mac
fb8edc9e0e00 / 64.0a1 / 20181008100121 / files
nightly win32
fb8edc9e0e00 / 64.0a1 / 20181008100121 / files
nightly win64
fb8edc9e0e00 / 64.0a1 / 20181008100121 / 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
Merge inbound to mozilla-central. a=merge
--- a/js/src/gc/Nursery.cpp
+++ b/js/src/gc/Nursery.cpp
@@ -125,17 +125,16 @@ js::Nursery::Nursery(JSRuntime* rt)
   , currentStartChunk_(0)
   , currentStartPosition_(0)
   , currentEnd_(0)
   , currentStringEnd_(0)
   , currentChunk_(0)
   , maxChunkCount_(0)
   , chunkCountLimit_(0)
   , timeInChunkAlloc_(0)
-  , previousPromotionRate_(0)
   , profileThreshold_(0)
   , enableProfiling_(false)
   , canAllocateStrings_(false)
   , reportTenurings_(0)
   , minorGCTriggerReason_(JS::gcreason::NO_REASON)
   , freeMallocedBuffersTask(nullptr)
 #ifdef JS_GC_ZEAL
   , lastCanary_(nullptr)
@@ -1208,46 +1207,42 @@ js::Nursery::maybeResizeNursery(JS::gcre
 
 #ifdef JS_GC_ZEAL
     // This zeal mode disabled nursery resizing.
     if (runtime()->hasZealMode(ZealMode::GenerationalGC)) {
         return;
     }
 #endif
 
+    newMaxNurseryChunks = runtime()->gc.tunables.gcMaxNurseryBytes() >> ChunkShift;
+    if (newMaxNurseryChunks != chunkCountLimit_) {
+        chunkCountLimit_ = newMaxNurseryChunks;
+        /* The configured maximum nursery size is changing */
+        if (maxChunkCount() > newMaxNurseryChunks) {
+            /* We need to shrink the nursery */
+            shrinkAllocableSpace(newMaxNurseryChunks);
+            return;
+        }
+    }
+
     /*
      * This incorrect promotion rate results in better nursery sizing
      * decisions, however we should to better tuning based on the real
      * promotion rate in the future.
      */
     const float promotionRate =
         float(previousGC.tenuredBytes) / float(previousGC.nurseryCapacity);
 
-    newMaxNurseryChunks = runtime()->gc.tunables.gcMaxNurseryBytes() >> ChunkShift;
-    if (newMaxNurseryChunks != chunkCountLimit_) {
-        chunkCountLimit_ = newMaxNurseryChunks;
-        /* The configured maximum nursery size is changing */
-        if (maxChunkCount() > newMaxNurseryChunks) {
-            /* We need to shrink the nursery */
-            shrinkAllocableSpace(newMaxNurseryChunks);
-
-            previousPromotionRate_ = promotionRate;
-            return;
-        }
-    }
-
     if (promotionRate > GrowThreshold) {
         // The GC nursery is an optimization and so if we fail to allocate
         // nursery chunks we do not report an error.
         growAllocableSpace();
-    } else if (promotionRate < ShrinkThreshold && previousPromotionRate_ < ShrinkThreshold) {
+    } else if (maxChunkCount() > 1 && promotionRate < ShrinkThreshold) {
         shrinkAllocableSpace(maxChunkCount() - 1);
     }
-
-    previousPromotionRate_ = promotionRate;
 }
 
 void
 js::Nursery::growAllocableSpace()
 {
     maxChunkCount_ = Min(maxChunkCount() * 2, chunkCountLimit());
 }
 
@@ -1268,19 +1263,21 @@ void
 js::Nursery::shrinkAllocableSpace(unsigned newCount)
 {
 #ifdef JS_GC_ZEAL
     if (runtime()->hasZealMode(ZealMode::GenerationalGC)) {
         return;
     }
 #endif
 
-    // Don't shrink the nursery to zero (use Nursery::disable() instead) and
-    // don't attempt to shrink it to the same size.
-    if ((newCount == 0) || (newCount == maxChunkCount())) {
+    // Don't shrink the nursery to zero (use Nursery::disable() instead)
+    MOZ_ASSERT(newCount != 0);
+
+    // Don't attempt to shrink it to the same size.
+    if (newCount == maxChunkCount()) {
         return;
     }
 
     MOZ_ASSERT(newCount < maxChunkCount());
 
     if (newCount < allocatedChunkCount()) {
         freeChunksFrom(newCount);
     }
--- a/js/src/gc/Nursery.h
+++ b/js/src/gc/Nursery.h
@@ -391,19 +391,16 @@ class Nursery
     /*
      * This limit is fixed by configuration.  It represents the maximum size
      * the nursery is permitted to tune itself to in maybeResizeNursery();
      */
     unsigned chunkCountLimit_;
 
     mozilla::TimeDuration timeInChunkAlloc_;
 
-    /* Promotion rate for the previous minor collection. */
-    float previousPromotionRate_;
-
     /* Report minor collections taking at least this long, if enabled. */
     mozilla::TimeDuration profileThreshold_;
     bool enableProfiling_;
 
     /* Whether we will nursery-allocate strings. */
     bool canAllocateStrings_;
 
     /* Report ObjectGroups with at least this many instances tenured. */
--- a/toolkit/crashreporter/client/macbuild/Contents/Info.plist
+++ b/toolkit/crashreporter/client/macbuild/Contents/Info.plist
@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
 <dict>
 	<key>CFBundleDevelopmentRegion</key>
 	<string>English</string>
 	<key>CFBundleDisplayName</key>
 	<string>crashreporter</string>
 	<key>CFBundleExecutable</key>
 	<string>crashreporter</string>
@@ -23,10 +23,12 @@
 	<key>CFBundleVersion</key>
 	<string>1.0</string>
 	<key>LSHasLocalizedDisplayName</key>
 	<true/>
 	<key>NSMainNibFile</key>
 	<string>MainMenu</string>
 	<key>NSPrincipalClass</key>
 	<string>NSApplication</string>
+	<key>LSUIElement</key>
+	<true/>
 </dict>
 </plist>
--- a/toolkit/mozapps/update/updater/macbuild/Contents/Info.plist.in
+++ b/toolkit/mozapps/update/updater/macbuild/Contents/Info.plist.in
@@ -26,14 +26,16 @@
 	<string>10.5</string>
 	<key>LSMinimumSystemVersionByArchitecture</key>
 	<dict>
 		<key>i386</key>
 		<string>10.5.0</string>
 		<key>x86_64</key>
 		<string>10.6.0</string>
 	</dict>
+	<key>LSUIElement</key>
+	<true/>
 	<key>SMAuthorizedClients</key>
 	<array>
 		<string>identifier "%MOZ_MACBUNDLE_ID%" and ((anchor apple generic and certificate leaf[field.1.2.840.113635.100.6.1.9]) or (anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] and certificate leaf[field.1.2.840.113635.100.6.1.13] and certificate leaf[subject.OU] = "43AQ936H96"))</string>
 	</array>
 </dict>
 </plist>