Bug 1198196 - rework EVENTLOOP_UI_LAG_EXP_MS to record all lag. r=vladan
authorChris H-C <chutten@mozilla.com>
Wed, 11 Nov 2015 14:01:00 +0100
changeset 308797 94334352f9fac8641975a23d756dda348e017e63
parent 308796 58e6110ac261d0d968819b84fda9e9d841388847
child 308798 b51eb1ccc07a248346088ed09e5b9091aed94fd0
push id7526
push usermleibovic@mozilla.com
push dateFri, 13 Nov 2015 20:37:49 +0000
reviewersvladan
bugs1198196
milestone45.0a1
Bug 1198196 - rework EVENTLOOP_UI_LAG_EXP_MS to record all lag. r=vladan Previously we were only logging if we accumulated 50ms of lag. Start logging all lag so we can use this measure to compare smaller changes in UI responsiveness.
toolkit/components/telemetry/Histograms.json
xpcom/threads/HangMonitor.cpp
--- a/toolkit/components/telemetry/Histograms.json
+++ b/toolkit/components/telemetry/Histograms.json
@@ -4239,24 +4239,23 @@
   },
   "FX_MIGRATION_HOMEPAGE_IMPORTED": {
     "expires_in_version": "49",
     "kind": "boolean",
     "keyed": "true",
     "releaseChannelCollection": "opt-out",
     "description": "Whether the homepage was imported during browser migration. Only available on release builds during firstrun."
   },
-  "EVENTLOOP_UI_LAG_EXP_MS": {
+  "EVENTLOOP_UI_ACTIVITY_EXP_MS": {
     "alert_emails": ["perf-telemetry-alerts@mozilla.com"],
-    "expires_in_version": "never",
-    "kind": "exponential",
-    "low": 50,
+    "bug_numbers": [1198196],
+    "expires_in_version": "never",
+    "kind": "exponential",
     "high": "60000",
-    "n_buckets": 20,
-    "extended_statistics_ok": true,
+    "n_buckets": 50,
     "description": "Widget: Time it takes for the message before a UI message (ms)"
   },
   "FX_SESSION_RESTORE_STARTUP_INIT_SESSION_MS": {
     "alert_emails": ["session-restore-telemetry-alerts@mozilla.com"],
     "expires_in_version": "default",
     "kind": "exponential",
     "high": "30000",
     "n_buckets": 20,
--- a/xpcom/threads/HangMonitor.cpp
+++ b/xpcom/threads/HangMonitor.cpp
@@ -365,26 +365,20 @@ NotifyActivity(ActivityType aActivityTyp
       break;
   }
 
   // This is not a locked activity because PRTimeStamp is a 32-bit quantity
   // which can be read/written atomically, and we don't want to pay locking
   // penalties here.
   gTimestamp = PR_IntervalNow();
 
-  // If we have UI activity we should reset the timer and report it if it is
-  // significant enough.
+  // If we have UI activity we should reset the timer and report it
   if (aActivityType == kUIActivity) {
-    // The minimum amount of lag time that we should report for telemetry data.
-    // Mozilla's UI responsiveness goal is 50ms
-    static const uint32_t kUIResponsivenessThresholdMS = 50;
-    if (cumulativeUILagMS > kUIResponsivenessThresholdMS) {
-      mozilla::Telemetry::Accumulate(mozilla::Telemetry::EVENTLOOP_UI_LAG_EXP_MS,
+    mozilla::Telemetry::Accumulate(mozilla::Telemetry::EVENTLOOP_UI_ACTIVITY_EXP_MS,
                                      cumulativeUILagMS);
-    }
     cumulativeUILagMS = 0;
   }
 
   if (gThread && !gShutdown) {
     mozilla::BackgroundHangMonitor().NotifyActivity();
   }
 }