microsoft / Microsoft-Performance-Tools-Linux-Android

Linux, Android and Chromium Performance Tools built using the Microsoft Performance Toolkit. Cross-platform .NET Core + WPA GUI
MIT License
322 stars 35 forks source link

[Feature] Perfetto - Support Processing of Block Disk I/O events into processed table #37

Open ivberg opened 3 years ago

ivberg commented 3 years ago

Feature request for the Perfetto plugin to support processing Block I/O and Ext4 events into their own table.

Would give useful graphs and processed data like we have for LTTng like:

Perfetto Android traces via FTrace can already capture Disk I/O events. These events do already show up in the Perfetto plugin as individual events in "Perfetto FTrace Events". Examples: ext4_da_write_begin ext4_da_write_end block_rq_issue block_rq_complete ext4_sync_file_enter ext4_sync_file_exit

These raw events are present in our Perfetto plugin, and give similar info as LTTng. They are just not useful unless correlated together to present more human useful views.

They don't seem to have 1st class support in Perfetto trace processor and end up as raw events in Perfetto SQL - https://perfetto.dev/docs/analysis/sql-tables#raw.

The work would be to do similar post processing as LTTng on these events based on the PerfettoFtraceEventCooker. Some of the work should be replicated, and some refactored into common code to share between the 2 implementations.