Commit b7d03dd2 authored by Oksana Zhuravlova's avatar Oksana Zhuravlova Committed by Commit Bot

[tools/perf] Add Webview-only thread usage to WebView power metric

Since webview_power_usage.sql now outputs power usage by core type
for the host app process, all renderer processes and WebView-only
threads of the host app process, this change updates the corresponding
tbmv3 metric to output these values.

Bug: b/166476416
Change-Id: I59da13ccc07d91341825475d028a749466f592be
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2436289Reviewed-by: default avatarMikhail Khokhlov <khokhlov@google.com>
Commit-Queue: Oksana Zhuravlova <oksamyt@chromium.org>
Cr-Commit-Position: refs/heads/master@{#813782}
parent dfc62c87
......@@ -11,21 +11,28 @@ import "protos/perfetto/metrics/custom_options.proto";
// power use through the CPU time they consume at different core frequencies.
// Output values are in milliampere-seconds.
message UsageByCoreType {
double little_cores_mas = 1;
double big_cores_mas = 2;
double bigger_core_mas = 3;
double total_mas = 4; // sum of the fields above
}
message EstimatedWebViewAppPowerUsage {
// Host app package name.
string app_name = 1;
// Total app’s power consumption in milliampere-seconds.
// Includes renderer processes.
double total_app_power_mas = 2;
// Only browser + in-process renderer slices.
double webview_browser_slices_mas = 2;
// WebView-only browser + in-process renderer threads.
UsageByCoreType webview_only_usage = 3;
// This is the sum of the following 3 fields.
// Includes renderer processes.
double webview_power_mas = 3;
// All threads of the host app.
UsageByCoreType total_app_usage = 4;
double webview_power_little_cores_mas = 4;
double webview_power_big_cores_mas = 5;
double webview_power_bigger_cores_mas = 6;
// All out-of-process renderers.
UsageByCoreType renderer_usage = 5;
}
message WebViewPowerUsageMetric {
......
......@@ -13,15 +13,38 @@ SELECT WebViewPowerUsageMetric(
'estimated_webview_app_power_usage',
(SELECT RepeatedField(
EstimatedWebViewAppPowerUsage(
'app_name', app_name,
'webview_power_mas', webview_power_mas,
'total_app_power_mas', total_app_power_mas,
'webview_power_little_cores_mas', webview_power_little_cores_mas,
'webview_power_big_cores_mas', webview_power_big_cores_mas,
'webview_power_bigger_cores_mas', webview_power_bigger_cores_mas
)
'app_name', webview_browser_slices_power_summary.app_name,
'webview_browser_slices_mas', webview_browser_slices_power_summary.power_mas,
'webview_only_usage',
(SELECT UsageByCoreType(
'little_cores_mas', webview_only_power_output.little_cores_mas,
'big_cores_mas', webview_only_power_output.big_cores_mas,
'bigger_cores_mas', webview_only_power_output.bigger_cores_mas,
'total_mas', webview_only_power_output.total_mas
)),
'total_app_usage',
(SELECT UsageByCoreType(
'little_cores_mas', total_app_power_output.little_cores_mas,
'big_cores_mas', total_app_power_output.big_cores_mas,
'bigger_cores_mas', total_app_power_output.bigger_cores_mas,
'total_mas', total_app_power_output.total_mas
)),
'renderer_usage',
(SELECT UsageByCoreType(
'little_cores_mas', webview_renderer_power_output.little_cores_mas,
'big_cores_mas', webview_renderer_power_output.big_cores_mas,
'bigger_cores_mas', webview_renderer_power_output.bigger_cores_mas,
'total_mas', webview_renderer_power_output.total_mas
))
)
)
FROM webview_power_summary
FROM webview_browser_slices_power_summary
INNER JOIN webview_only_power_output
ON webview_browser_slices_power_summary.app_name = webview_only_power_output.app_name
INNER JOIN total_app_power_output
ON webview_browser_slices_power_summary.app_name = total_app_power_output.app_name
INNER JOIN webview_renderer_power_output
ON webview_browser_slices_power_summary.app_name = webview_renderer_power_output.app_name
),
'total_device_power_mas',
(SELECT power_mas FROM total_device_power)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment