Merge changes Id8e45dd9,If1f99da9,Iebc6952a into main * changes: tp: diff tests for ftrace cropping tp: implement ftrace event cropping for traces recorded by perfetto v44+ ftrace: write "last read event timestamp" to assist parsing of ring buffer traces
diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index e8a7879..444384f 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs
@@ -1,2 +1,8 @@ # Replace block comments with line comments to appease eslint e56b1a91dcc4638262843eaead4347d7bf5a73b0 + +# Format all files using eslint +5dbacf5464d62811e53750cb164fe81ca52c1372 + +# Format all files using prettier +7e63f42d755ca255162f1f327126f90e34465581
diff --git a/docs/contributing/ui-plugins.md b/docs/contributing/ui-plugins.md index cff386b..67bb445 100644 --- a/docs/contributing/ui-plugins.md +++ b/docs/contributing/ui-plugins.md
@@ -46,11 +46,18 @@ ``` Now navigate to [localhost:10000](http://localhost:10000/) +### Enable your plugin +- Navigate to the plugins page: [localhost:10000/#!/plugins](http://localhost:10000/#!/plugins). +- Ctrl-F for your plugin name and enable it. + +Later you can request for your plugin to be enabled by default. +Follow the [default plugins](#default-plugins) section for this. + ### Upload your plugin for review - Update `ui/src/plugins/<your-plugin-name>/OWNERS` to include your email. - Follow the [Contributing](./getting-started#contributing) instructions to upload your CL to the codereview tool. -- Once uploaded add `hjd@google.com` as a reviewer for your CL. +- Once uploaded add `stevegolton@google.com` as a reviewer for your CL. ## Plugin extension points Plugins can extend a handful of specific places in the UI. The sections @@ -575,9 +582,10 @@ ## Guide to the plugin API The plugin interfaces are defined in [ui/src/public/index.ts](https://cs.android.com/android/platform/superproject/main/+/main:external/perfetto/ui/src/public/index.ts). - ## Default plugins -TBD +Some plugins are enabled by default. +These plugins are held to a higher quality than non-default plugins since changes to those plugins effect all users of the UI. +The list of default plugins is specified at [ui/src/core/default_plugins.ts](https://cs.android.com/android/platform/superproject/main/+/main:external/perfetto/ui/src/common/default_plugins.ts). ## Misc notes - Plugins must be licensed under
diff --git a/protos/perfetto/config/chrome/scenario_config.proto b/protos/perfetto/config/chrome/scenario_config.proto index e90d6db..eca7165 100644 --- a/protos/perfetto/config/chrome/scenario_config.proto +++ b/protos/perfetto/config/chrome/scenario_config.proto
@@ -120,4 +120,8 @@ message ChromeFieldTracingConfig { repeated ScenarioConfig scenarios = 1; +} + +message TracingTriggerRulesConfig { + repeated TriggerRule rules = 1; } \ No newline at end of file
diff --git a/src/trace_processor/metrics/sql/android/android_io.sql b/src/trace_processor/metrics/sql/android/android_io.sql index 657f85f..3950906 100644 --- a/src/trace_processor/metrics/sql/android/android_io.sql +++ b/src/trace_processor/metrics/sql/android/android_io.sql
@@ -44,6 +44,6 @@ 'distinct_thread_count', distinct_thread_count ) ) - FROM android_io_f2fs_aggregate_write_stats + FROM _android_io_f2fs_aggregate_write_stats ) ); \ No newline at end of file
diff --git a/src/trace_processor/metrics/sql/android/android_io_unagg.sql b/src/trace_processor/metrics/sql/android/android_io_unagg.sql index 5be4c22..bcbfb04 100644 --- a/src/trace_processor/metrics/sql/android/android_io_unagg.sql +++ b/src/trace_processor/metrics/sql/android/android_io_unagg.sql
@@ -30,6 +30,6 @@ 'dev', dev ) ) - FROM android_io_f2fs_write_stats + FROM _android_io_f2fs_write_stats ) ); \ No newline at end of file
diff --git a/src/trace_processor/perfetto_sql/stdlib/android/io.sql b/src/trace_processor/perfetto_sql/stdlib/android/io.sql index b5d7021..304a018 100644 --- a/src/trace_processor/perfetto_sql/stdlib/android/io.sql +++ b/src/trace_processor/perfetto_sql/stdlib/android/io.sql
@@ -13,8 +13,10 @@ -- See the License for the specific language governing permissions and -- limitations under the License. +-- TODO(b/329344794): Rewrite to fetch data from other tables than `raw`. + -- Aggregates f2fs IO and latency stats by counter name. -CREATE PERFETTO VIEW android_io_f2fs_counter_stats( +CREATE PERFETTO VIEW _android_io_f2fs_counter_stats( -- Counter name on which all the other values are aggregated on. name STRING, -- Sum of all counter values for the counter name. @@ -45,7 +47,7 @@ ORDER BY sum DESC; -- Aggregates f2fs_write stats by inode and thread. -CREATE PERFETTO VIEW android_io_f2fs_write_stats( +CREATE PERFETTO VIEW _android_io_f2fs_write_stats( -- Utid of the thread. utid INT, -- Tid of the thread. @@ -99,7 +101,7 @@ -- Aggregates f2fs write stats. Counts distinct datapoints, total write operations, -- and bytes written -CREATE PERFETTO VIEW android_io_f2fs_aggregate_write_stats( +CREATE PERFETTO VIEW _android_io_f2fs_aggregate_write_stats( -- Total number of writes in the trace. total_write_count INT, -- Number of distinct processes. @@ -119,4 +121,4 @@ COUNT(DISTINCT dev) as distinct_device_count, COUNT(DISTINCT ino) distict_inode_count, COUNT(DISTINCT tid) distinct_thread_count -from android_io_f2fs_write_stats; \ No newline at end of file +from _android_io_f2fs_write_stats; \ No newline at end of file
diff --git a/test/trace_processor/diff_tests/stdlib/android/tests.py b/test/trace_processor/diff_tests/stdlib/android/tests.py index 07801ad..a3ec34f 100644 --- a/test/trace_processor/diff_tests/stdlib/android/tests.py +++ b/test/trace_processor/diff_tests/stdlib/android/tests.py
@@ -392,7 +392,7 @@ trace=DataPath('android_monitor_contention_trace.atr'), query=""" INCLUDE PERFETTO MODULE android.io; - SELECT * FROM android_io_f2fs_counter_stats; + SELECT * FROM _android_io_f2fs_counter_stats; """, out=Csv(""" "name","sum","max","min","dur","count","avg" @@ -452,7 +452,7 @@ trace=DataPath('android_monitor_contention_trace.atr'), query=""" INCLUDE PERFETTO MODULE android.io; - SELECT tid, thread_name, pid, process_name, ino, dev, bytes, write_count FROM android_io_f2fs_write_stats; + SELECT tid, thread_name, pid, process_name, ino, dev, bytes, write_count FROM _android_io_f2fs_write_stats; """, out=Csv(""" "tid","thread_name","pid","process_name","ino","dev","bytes","write_count" @@ -479,7 +479,7 @@ INCLUDE PERFETTO MODULE android.io; SELECT total_write_count, distinct_processes, total_bytes_written, distinct_device_count, distict_inode_count, distinct_thread_count - FROM android_io_f2fs_aggregate_write_stats + FROM _android_io_f2fs_aggregate_write_stats """, out=Csv(""" "total_write_count","distinct_processes","total_bytes_written","distinct_device_count","distict_inode_count","distinct_thread_count"
diff --git a/ui/src/common/plugins.ts b/ui/src/common/plugins.ts index 2d4ec02..56b88cd 100644 --- a/ui/src/common/plugins.ts +++ b/ui/src/common/plugins.ts
@@ -45,7 +45,7 @@ import {Flag, featureFlags} from '../core/feature_flags'; import {assertExists} from '../base/logging'; import {raf} from '../core/raf_scheduler'; -import {defaultPlugins} from './default_plugins'; +import {defaultPlugins} from '../core/default_plugins'; // Every plugin gets its own PluginContext. This is how we keep track // what each plugin is doing and how we can blame issues on particular
diff --git a/ui/src/common/default_plugins.ts b/ui/src/core/default_plugins.ts similarity index 100% rename from ui/src/common/default_plugins.ts rename to ui/src/core/default_plugins.ts
diff --git a/ui/src/frontend/plugins_page.ts b/ui/src/frontend/plugins_page.ts index aa5c69e..19c0739 100644 --- a/ui/src/frontend/plugins_page.ts +++ b/ui/src/frontend/plugins_page.ts
@@ -21,7 +21,7 @@ import {exists} from '../base/utils'; import {PluginDescriptor} from '../public'; import {createPage} from './pages'; -import {defaultPlugins} from '../common/default_plugins'; +import {defaultPlugins} from '../core/default_plugins'; export const PluginsPage = createPage({ view() {