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"; ...@@ -11,21 +11,28 @@ import "protos/perfetto/metrics/custom_options.proto";
// power use through the CPU time they consume at different core frequencies. // power use through the CPU time they consume at different core frequencies.
// Output values are in milliampere-seconds. // 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 { message EstimatedWebViewAppPowerUsage {
// Host app package name. // Host app package name.
string app_name = 1; string app_name = 1;
// Total app’s power consumption in milliampere-seconds. // Only browser + in-process renderer slices.
// Includes renderer processes. double webview_browser_slices_mas = 2;
double total_app_power_mas = 2;
// WebView-only browser + in-process renderer threads.
UsageByCoreType webview_only_usage = 3;
// This is the sum of the following 3 fields. // All threads of the host app.
// Includes renderer processes. UsageByCoreType total_app_usage = 4;
double webview_power_mas = 3;
double webview_power_little_cores_mas = 4; // All out-of-process renderers.
double webview_power_big_cores_mas = 5; UsageByCoreType renderer_usage = 5;
double webview_power_bigger_cores_mas = 6;
} }
message WebViewPowerUsageMetric { message WebViewPowerUsageMetric {
......
...@@ -13,15 +13,38 @@ SELECT WebViewPowerUsageMetric( ...@@ -13,15 +13,38 @@ SELECT WebViewPowerUsageMetric(
'estimated_webview_app_power_usage', 'estimated_webview_app_power_usage',
(SELECT RepeatedField( (SELECT RepeatedField(
EstimatedWebViewAppPowerUsage( EstimatedWebViewAppPowerUsage(
'app_name', app_name, 'app_name', webview_browser_slices_power_summary.app_name,
'webview_power_mas', webview_power_mas, 'webview_browser_slices_mas', webview_browser_slices_power_summary.power_mas,
'total_app_power_mas', total_app_power_mas, 'webview_only_usage',
'webview_power_little_cores_mas', webview_power_little_cores_mas, (SELECT UsageByCoreType(
'webview_power_big_cores_mas', webview_power_big_cores_mas, 'little_cores_mas', webview_only_power_output.little_cores_mas,
'webview_power_bigger_cores_mas', webview_power_bigger_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', 'total_device_power_mas',
(SELECT power_mas FROM total_device_power) (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