commit | ed56789427e9ad971aaaa1bac6352a0f8319bc88 | [log] [tgz] |
---|---|---|
author | Samuel Wu <wusamuel@google.com> | Wed Apr 03 16:16:04 2024 -0700 |
committer | Samuel Wu <wusamuel@google.com> | Tue Apr 09 13:06:18 2024 -0700 |
tree | 3888bc5664ebf9e86784e9d76a6e452e48eb74db | |
parent | d73a73c828d3388823f4bcc0710aeee8053103f9 [diff] |
stdlib: Add system_state library for Wattson Setup Wattson as a new library within Perfetto's standard library. This patch moves the existing query used for Wattson, which calculates the CPU subsystem system state, into Perfetto's standard library. Future work will build upon the system state implemented in this patch and move the entire energy estimation logic into the standard library. The SQL files are organized by properties of the CPU subsystem, such as CPU frequency, CPU idle state, and ARM DSU PMU counters, which correspond to cpu_freq.sql, cpu_idle.sql, and arm_dsu.sql respectively. Specific tables can be included and joined together later on as needed, as is done in system_state.sql, which aggregates the frequency, idle state, suspend, and DSU counters into the final CPU system state. The patch has a test for each of Pixel phone and Pixel watch, testing the end-to-end system states of two different devices, with specific support for ARM DSU PMU and suspend/resume testing respectively. Additionally, there are unit tests of the smaller building blocks, such as individual cpu_idle, cpu_freq, and device name extraction tests. Test: tools/diff_test_trace_processor.py out/linux/trace_processor_shell --name-filter '.*wattson.*' Bug: 329507878 Change-Id: Ia3baed71056b3141901a7d1a28bbf3e237284c75 Signed-off-by: Samuel Wu <wusamuel@google.com>
Perfetto is a production-grade open-source stack for performance instrumentation and trace analysis. It offers services and libraries and for recording system-level and app-level traces, native + java heap profiling, a library for analyzing traces using SQL and a web-based UI to visualize and explore multi-GB traces.
See https://perfetto.dev/docs or the /docs/ directory for documentation.