bug 1364503 - Allow GC/CC MAX_PAUSE collection in opt-out r?mccr8 r?bsmedberg draft
authorChris H-C <chutten@mozilla.com>
Fri, 19 May 2017 16:12:24 -0400
changeset 584493 7b1a31830c3ce6db836be622ef276ae6bdf18346
parent 580489 cc65f9233e5b16265ae44b643c7d255556da14fb
child 630402 54a5361a9249e59e3ead4df42ab16cd02d395985
push id60762
push userbmo:chutten@mozilla.com
push dateThu, 25 May 2017 15:52:44 +0000
reviewersmccr8, bsmedberg
bugs1364503
milestone55.0a1
bug 1364503 - Allow GC/CC MAX_PAUSE collection in opt-out r?mccr8 r?bsmedberg While we're here, also align their buckets and give them bug_numbers fields. To change buckets for GC_MAX_PAUSE_MS we need to rename to _2. Because of GC_MAX_PAUSE_MS' use as a historical perf metric, we need to leave it in-place for now. MozReview-Commit-ID: Cffo3q1pR5E
js/src/gc/Statistics.cpp
js/src/jsfriendapi.h
js/xpconnect/src/XPCJSRuntime.cpp
toolkit/components/telemetry/Histograms.json
toolkit/components/telemetry/histogram-whitelists.json
--- a/js/src/gc/Statistics.cpp
+++ b/js/src/gc/Statistics.cpp
@@ -895,16 +895,17 @@ Statistics::endGC()
     runtime->addTelemetry(JS_TELEMETRY_GC_SCC_SWEEP_MAX_PAUSE_MS, t(sccLongest));
 
     if (!aborted) {
         TimeDuration total, longest;
         gcDuration(&total, &longest);
 
         runtime->addTelemetry(JS_TELEMETRY_GC_MS, t(total));
         runtime->addTelemetry(JS_TELEMETRY_GC_MAX_PAUSE_MS, t(longest));
+        runtime->addTelemetry(JS_TELEMETRY_GC_MAX_PAUSE_MS_2, t(longest));
 
         const double mmu50 = computeMMU(TimeDuration::FromMilliseconds(50));
         runtime->addTelemetry(JS_TELEMETRY_GC_MMU_50, mmu50 * 100);
     }
 
     if (fp)
         printStats();
 
--- a/js/src/jsfriendapi.h
+++ b/js/src/jsfriendapi.h
@@ -107,16 +107,17 @@ JS_TraceObjectGroupCycleCollectorChildre
 
 enum {
     JS_TELEMETRY_GC_REASON,
     JS_TELEMETRY_GC_IS_ZONE_GC,
     JS_TELEMETRY_GC_MS,
     JS_TELEMETRY_GC_BUDGET_MS,
     JS_TELEMETRY_GC_ANIMATION_MS,
     JS_TELEMETRY_GC_MAX_PAUSE_MS,
+    JS_TELEMETRY_GC_MAX_PAUSE_MS_2,
     JS_TELEMETRY_GC_MARK_MS,
     JS_TELEMETRY_GC_SWEEP_MS,
     JS_TELEMETRY_GC_COMPACT_MS,
     JS_TELEMETRY_GC_MARK_ROOTS_MS,
     JS_TELEMETRY_GC_MARK_GRAY_MS,
     JS_TELEMETRY_GC_SLICE_MS,
     JS_TELEMETRY_GC_SLOW_PHASE,
     JS_TELEMETRY_GC_MMU_50,
--- a/js/xpconnect/src/XPCJSRuntime.cpp
+++ b/js/xpconnect/src/XPCJSRuntime.cpp
@@ -2693,16 +2693,19 @@ AccumulateTelemetryCallback(int id, uint
         Telemetry::Accumulate(Telemetry::GC_BUDGET_MS, sample);
         break;
       case JS_TELEMETRY_GC_ANIMATION_MS:
         Telemetry::Accumulate(Telemetry::GC_ANIMATION_MS, sample);
         break;
       case JS_TELEMETRY_GC_MAX_PAUSE_MS:
         Telemetry::Accumulate(Telemetry::GC_MAX_PAUSE_MS, sample);
         break;
+      case JS_TELEMETRY_GC_MAX_PAUSE_MS_2:
+        Telemetry::Accumulate(Telemetry::GC_MAX_PAUSE_MS_2, sample);
+        break;
       case JS_TELEMETRY_GC_MARK_MS:
         Telemetry::Accumulate(Telemetry::GC_MARK_MS, sample);
         break;
       case JS_TELEMETRY_GC_SWEEP_MS:
         Telemetry::Accumulate(Telemetry::GC_SWEEP_MS, sample);
         break;
       case JS_TELEMETRY_GC_COMPACT_MS:
         Telemetry::Accumulate(Telemetry::GC_COMPACT_MS, sample);
--- a/toolkit/components/telemetry/Histograms.json
+++ b/toolkit/components/telemetry/Histograms.json
@@ -748,20 +748,22 @@
     "kind": "exponential",
     "high": 10000,
     "n_buckets": 50,
     "description": "Full pause time for one cycle collection, including preparation (ms)"
   },
   "CYCLE_COLLECTOR_MAX_PAUSE": {
     "record_in_processes": ["main", "content"],
     "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 50,
+    "bug_numbers": [1364503],
+    "expires_in_version": "never",
+    "kind": "exponential",
+    "high": 10000,
+    "n_buckets": 50,
+    "releaseChannelCollection": "opt-out",
     "description": "Longest pause for an individual slice of one cycle collection, including preparation (ms)"
   },
   "CYCLE_COLLECTOR_FINISH_IGC": {
     "record_in_processes": ["main", "content"],
     "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
     "expires_in_version": "never",
     "kind": "boolean",
     "description": "Cycle collection finished an incremental GC"
@@ -991,22 +993,34 @@
     "kind": "exponential",
     "high": 10000,
     "n_buckets": 50,
     "description": "Time spent running JS GC when animating (ms)"
   },
   "GC_MAX_PAUSE_MS": {
     "record_in_processes": ["main", "content"],
     "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
-    "expires_in_version": "never",
+    "bug_numbers": [1364503],
+    "expires_in_version": "61",
     "kind": "linear",
     "high": 1000,
     "n_buckets": 50,
     "description": "Longest GC slice in a GC (ms)"
   },
+  "GC_MAX_PAUSE_MS_2": {
+    "record_in_processes": ["main", "content"],
+    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
+    "bug_numbers": [1364503],
+    "expires_in_version": "never",
+    "kind": "exponential",
+    "high": 10000,
+    "n_buckets": 50,
+    "releaseChannelCollection": "opt-out",
+    "description": "Longest GC slice in a GC (ms)"
+  },
   "GC_MARK_MS": {
     "record_in_processes": ["main", "content"],
     "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
     "expires_in_version": "never",
     "kind": "exponential",
     "high": 10000,
     "n_buckets": 50,
     "description": "Time spent running JS GC mark phase (ms)"
--- a/toolkit/components/telemetry/histogram-whitelists.json
+++ b/toolkit/components/telemetry/histogram-whitelists.json
@@ -766,17 +766,16 @@
     "CONTENT_DOCUMENTS_DESTROYED",
     "COOKIE_SCHEME_SECURITY",
     "CRASH_STORE_COMPRESSED_BYTES",
     "CYCLE_COLLECTOR",
     "CYCLE_COLLECTOR_ASYNC_SNOW_WHITE_FREEING",
     "CYCLE_COLLECTOR_COLLECTED",
     "CYCLE_COLLECTOR_FINISH_IGC",
     "CYCLE_COLLECTOR_FULL",
-    "CYCLE_COLLECTOR_MAX_PAUSE",
     "CYCLE_COLLECTOR_NEED_GC",
     "CYCLE_COLLECTOR_OOM",
     "CYCLE_COLLECTOR_SYNC_SKIPPABLE",
     "CYCLE_COLLECTOR_TIME_BETWEEN",
     "CYCLE_COLLECTOR_VISITED_GCED",
     "CYCLE_COLLECTOR_VISITED_REF_COUNTED",
     "CYCLE_COLLECTOR_WORKER",
     "CYCLE_COLLECTOR_WORKER_COLLECTED",
@@ -971,17 +970,16 @@
     "GC_ANIMATION_MS",
     "GC_BUDGET_MS",
     "GC_COMPACT_MS",
     "GC_INCREMENTAL_DISABLED",
     "GC_IS_COMPARTMENTAL",
     "GC_MARK_GRAY_MS",
     "GC_MARK_MS",
     "GC_MARK_ROOTS_MS",
-    "GC_MAX_PAUSE_MS",
     "GC_MINOR_REASON",
     "GC_MINOR_REASON_LONG",
     "GC_MINOR_US",
     "GC_MMU_50",
     "GC_MS",
     "GC_NON_INCREMENTAL",
     "GC_REASON_2",
     "GC_RESET",