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
--- 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",