ui: Migrate PinAndroidPerfMetrics blocking calls to stdlib tables Update PinAndroidPerfMetrics to query stdlib tables _android_critical_blocking_calls and android_jank_latency_cujs directly instead of the legacy blocking_call_slices_scoped_to_cujs metric table. Replace the RUN_METRIC precondition with stdlib module includes. Change-Id: Ib463e9ce70a633c18f66855efc4e64c5854ed729
diff --git a/python/tools/check_ratchet.py b/python/tools/check_ratchet.py index 246f9ac..b748c84 100755 --- a/python/tools/check_ratchet.py +++ b/python/tools/check_ratchet.py
@@ -37,7 +37,7 @@ from dataclasses import dataclass EXPECTED_ANY_COUNT = 28 -EXPECTED_RUN_METRIC_COUNT = 3 +EXPECTED_RUN_METRIC_COUNT = 2 ROOT_DIR = os.path.dirname( os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
diff --git a/ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinBlockingCall.ts b/ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinBlockingCall.ts index a4cbc37..1ddf9a5 100644 --- a/ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinBlockingCall.ts +++ b/ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinBlockingCall.ts
@@ -98,14 +98,22 @@ const processName = metricData.process; const blockingCallName = metricData.blockingCallName; - // TODO: b/296349525 - Migrate jank tables from run metrics to stdlib const blockingCallDuringCujQuery = ` - SELECT name, ts, dur - FROM blocking_call_slices_scoped_to_cujs - WHERE process_name = "${processName}" - AND cuj_name = "${cuj}" - AND name = "${blockingCallName}" - `; + SELECT + s.name, + max(s.ts, cuj.ts) AS ts, + min(s.ts + s.dur, cuj.ts_end) - max(s.ts, cuj.ts) AS dur + FROM _android_critical_blocking_calls s + JOIN android_jank_latency_cujs cuj + ON s.ts + s.dur > cuj.ts AND s.ts < cuj.ts_end + AND s.upid = cuj.upid + LEFT JOIN _render_thread_per_process rt + ON rt.upid = cuj.upid + WHERE (s.utid = cuj.ui_thread OR s.utid = rt.render_thread_utid) + AND s.process_name = "${processName}" + AND cuj.cuj_name = "${cuj}" + AND s.name = "${blockingCallName}" + `; const trackName = 'Blocking calls in ' + processName; return {
diff --git a/ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinCujScoped.ts b/ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinCujScoped.ts index b8ca499..bc1ca45 100644 --- a/ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinCujScoped.ts +++ b/ui/src/plugins/com.android.PinAndroidPerfMetrics/handlers/pinCujScoped.ts
@@ -98,7 +98,7 @@ f.ts AS ts, f.dur as dur, f.jank_score as jank_score - FROM android_jank_cuj_frame f LEFT JOIN android_jank_cuj cuj USING (cuj_id) + FROM _android_jank_cuj_frame f LEFT JOIN android_jank_cuj cuj USING (cuj_id) WHERE cuj.process_name = "${processName}" AND cuj_name = "${cuj}" ${jankTypeFilter} `;
diff --git a/ui/src/plugins/com.android.PinAndroidPerfMetrics/index.ts b/ui/src/plugins/com.android.PinAndroidPerfMetrics/index.ts index f1609fd..2490231 100644 --- a/ui/src/plugins/com.android.PinAndroidPerfMetrics/index.ts +++ b/ui/src/plugins/com.android.PinAndroidPerfMetrics/index.ts
@@ -20,7 +20,10 @@ import Wattson from '../org.kernel.Wattson'; const JANK_CUJ_QUERY_PRECONDITIONS = ` - SELECT RUN_METRIC('android/android_blocking_calls_cuj_metric.sql'); + INCLUDE PERFETTO MODULE android.cujs.frames; + INCLUDE PERFETTO MODULE android.critical_blocking_calls; + INCLUDE PERFETTO MODULE android.cujs.sysui_cujs; + INCLUDE PERFETTO MODULE android.render_thread; `; function getMetricsFromHash(): string[] {