Developer
Kean Mariotti
keanmariotti@google.com
Performance
Key patterns and highlights from this developer's activity.
Breakdown of growth, maintenance, and fixes effort over time.
Bugs introduced vs. fixed over time.
No bugs introduced or fixed in this period.
Latest analyzed commits from this developer.
| Hash | Message | Date | Files | Effort |
|---|---|---|---|---|
| 597706b | This commit introduces a **new capability** to the **Perfetto tracing system** by adding a `rendering_hints` field to the `WindowLayoutParamsProto` message definition. This enhancement specifically affects the **Android window management tracing** subsystem, allowing for the capture and storage of additional rendering-related information. By extending the `protos/perfetto/trace/android/view/windowlayoutparams.proto` schema, this change provides more granular data for analyzing window rendering behavior and performance within Perfetto traces. | Feb 26 | 1 | grow |
| ff5b751 | This commit **integrates ProtoVM** into the **Trace Processor** to enable **incremental tracing**, a **major new capability** for handling trace data. It introduces the `ProtoVmIncrementalTracing` class and modifies the `ProtoTraceReader` to process trace provenance, ProtoVM definitions, and apply patches to trace packets. This allows for more efficient and smaller trace files by enabling incremental updates. The change also includes a **refactoring** in the `protozero` library's `ProtoDecoder` for improved performance, updates to various **build configurations**, and comprehensive **test coverage** for the new functionality. | Feb 20 | 13 | grow |
| cf77fe8 | This commit performs a **maintenance refactoring** within the **`protovm` subsystem** to **optimize its serialization API**. It modifies `Vm::SerializeIncrementalState` and `RwProto::Serialize` to write incremental state directly into a `protozero::Message` output parameter, thereby **eliminating intermediate `std::string` copies**. This change significantly **reduces memory allocations and improves performance** for clients, such as the **`tracing_service`**, which has been updated to use the new, more efficient API. The `Vm` class also gains a new `SerializeIncrementalStateAsString` helper for convenience. Existing tests for `protovm` components were also updated to reflect these API changes. | Feb 16 | 7 | maint |
| 152e9dd | This commit performs a significant **refactoring** of header file organization by **renaming and relocating** core utility headers, specifically `intrusive_list.h` and `intrusive_tree.h`, from `src/base` to `include/perfetto/ext/base`. This **maintenance** effort updates all affected include paths across various source files, including those within the **`protovm`** component and `src/base` utilities, along with their corresponding unit tests. Crucially, it also modifies the **Bazel and GN build configurations** to reflect these new header locations. The primary goal of this change is to **fix the Chromium build**, ensuring the project compiles correctly within that environment by resolving outdated header references. | Feb 12 | 11 | maint |
| 2353a95 | This commit **integrates the ProtoVM** into the Perfetto tracing system, enabling dynamic, in-trace processing of data. This **new capability** introduces new **protobuf messages** across `perfetto_config.proto`, `trace_packet.proto`, `data_source_config.proto`, and `data_source_descriptor.proto` to specify ProtoVM configurations, programs, and instances. The **tracing service (`TracingServiceImpl`)** and **trace buffer (`TraceBufferV2`)** are significantly updated to set up, manage, and execute ProtoVM logic, including handling incremental state and cloning VMs. The integration also includes minor **ProtoVM refactoring** and comprehensive **unit tests** to ensure correct functionality. This enhances the flexibility of trace data collection by allowing data sources to embed custom processing logic directly within the tracing pipeline. | Feb 11 | 39 | grow |
| 68f3401 | This commit introduces the **initial implementation** of the **TraceProvenance packet** into the **tracing service**, adhering to RFC-002. It defines a new `TraceProvenance` protobuf message and integrates it as a field within the core `TracePacket` structure, enabling traces to carry essential metadata about their origin and generation. The `TracingServiceImpl` is updated to `EmitTraceProvenance` during initial packet emission, providing crucial information for **ProtoVM integration**. This **new capability** ensures that trace data includes vital provenance details, with corresponding build system updates and unit tests to verify correct emission. | Feb 6 | 10 | grow |
| a8194d5 | This commit **fixes a regression** in the **Android build system configuration** by restoring missing entries to the `javastream protos allowlist`. It **re-adds erroneously removed protobuf definitions** within `Android.bp.extras` that are crucial for `javastream` functionality. This **maintenance fix** ensures the build process correctly recognizes and compiles these protobufs, preventing potential build failures or runtime issues for components relying on them. The change directly addresses an oversight from a previous commit, restoring the intended allowlist state. | Dec 31 | 3 | – |
| bccce62 | This commit introduces a **new capability** for **Perfetto's input method tracing**, enabling **fine-grained configuration** of data collection. A new `InputMethodConfig` protobuf definition is added and integrated into `DataSourceConfig`, allowing users to individually enable or disable client, IMS, and IMMS tracing. This enhancement to the **Android tracing subsystem** provides more precise control over input method data, improving the efficiency and relevance of collected traces. The necessary build configurations (`Android.bp`, `BUILD`, `BUILD.gn`) have been updated to incorporate this new proto definition. | Dec 29 | 8 | grow |
| 4624592 | This commit significantly improves the **robustness** of the **Trace Processor's WinScope importer** by making its **WindowManager** data parsing more fault-tolerant. Previously, the `WindowManagerHierarchyWalker` would abort its traversal upon encountering an invalid or unexpected proto format, leading to incomplete data. Now, the `ExtractWindowContainers` function and its children are modified to **continue parsing** even when errors occur, collecting all available valid data and signaling any parsing issues via a new `ExtractResult` struct. This **feature enhancement** ensures that the `WindowManager` table in the trace processor receives **more complete data**, even from partially malformed WinScope traces, preventing premature termination of data ingestion. | Nov 26 | 4 | maint |
| 3625041 | This commit **enables host support** for the `perfetto_winscope-lite` **Java library** by updating its build configuration in `Android.bp` and `Android.bp.extras` to include `host_supported: true`. This **feature enhancement** allows the library to be compiled and utilized in **host-side development environments and tests**, expanding its usability beyond device-specific builds. Consequently, components that depend on `perfetto_winscope-lite` can now be more thoroughly tested and integrated on the host, improving overall development efficiency and code quality. | Nov 12 | 2 | grow |
| 8398656 | This commit introduces **new Protocol Buffer wrapper messages** to enhance **Android Input Method Editor (IME) tracing** within the `perfetto` system. It adds `InputMethodClientsTraceFileProto`, `InputMethodServiceTraceFileProto`, and `InputMethodManagerServiceTraceFileProto` to `protos/perfetto/trace/android/inputmethodeditor.proto`. This **new feature** provides distinct message types for various IME tracing scenarios, improving the granularity and organization of collected trace data. The addition of these wrappers will enable more precise analysis of IME client, service, and manager interactions in Android traces. | Nov 10 | 3 | grow |
| fe97dea | This commit **increases the WebAssembly stack size to 2MB** by adjusting the `STACK_SIZE` compiler flag within `gn/standalone/wasm.gni`. This **bug fix** specifically addresses **stack overflows** that occurred during **window manager hierarchy traversal** operations within the Wasm runtime. The previous 64KB default was insufficient for the recursive Depth-First Search (DFS) performed by `WindowManagerHierarchyWalker`, which allocates substantial `protozero` decoders on the stack. This **configuration adjustment** enhances the stability and reliability of Wasm-based features requiring deep call stacks. | Sep 25 | 1 | maint |
| 29a523d | This commit introduces a **new feature** to the **Trace Processor's Winscope module** by flattening the complex Android WindowManager (WM) hierarchy into a dedicated `__intrinsic_windowmanager_windowcontainer` table. It revamps the **WindowManager parsing logic** to traverse the WM protobuf hierarchy, extract individual elements, and calculate their visibility and screen positions. This **refactoring** provides a more accessible and queryable representation of WM data, exposed through the new `android_windowmanager_windowcontainer` SQL view, significantly improving the analysis capabilities for WM state. | Sep 22 | 19 | grow |
| b3b98a3 | IME proto: more messages to be javastream compiled (#1755) | Jun 10 | 2 | – |
| e4c0c80 | This commit **updates the persistent configuration** to modify the tracing behavior for **Android SurfaceFlinger transactions**. It specifically changes the `android.surfaceflinger.transactions` tracing mode within `persistent_cfg.pbtxt` from `MODE_ACTIVE` to `MODE_CONTINUOUS`. This **configuration enhancement** ensures that `SurfaceFlinger` transaction tracing operates continuously, providing more comprehensive data for debugging and performance analysis of the Android graphics system. The change impacts the **system's tracing capabilities** for display-related operations. | Jun 10 | 1 | grow |
| 44b4b71 | This commit **introduces a new tracing capability** to Perfetto by adding the `prevent_ime_startup_unless_text_editor` boolean field to the `InputMethodManagerServiceProto` in `protos/perfetto/trace/android/server/inputmethod/inputmethodmanagerservice.proto`. This **new field** allows the **Perfetto tracing system** to capture the state of an Android configuration option that controls whether the Input Method Editor (IME) starts up only when a text editor is focused. This **enhancement to Android IMMS tracing** is a **new capability** that significantly improves the ability to **debug input method-related issues**, especially those encountered in `CtsInputMethodTestCases`, by providing crucial visibility into this configuration's value within traces. | Jun 6 | 1 | grow |
| d578361 | This commit introduces a **new capability** to the **Perfetto tracing system** by adding the `concurrent_multi_user_mode_enabled` field to the `InputMethodManagerServiceProto` message. This optional boolean field, located in `protos/perfetto/trace/android/server/inputmethod/inputmethodmanagerservice.proto`, will indicate if the Android Input Method Manager Service (IMMS) is configured for concurrent multi-user operation. This **schema extension** enhances the **trace data collected for Android input methods**, providing crucial context for system analysis. As a **refactoring** and data model update, this change is not expected to cause immediate visible issues. | Jun 6 | 1 | grow |
| 10d3010 | This commit significantly **refactors** the `protovm` **slab allocator** to improve its performance, memory efficiency, and overall robustness, moving it towards production quality. The allocator now uses **4KB-aligned slabs** for direct memory page allocation, implements an `O(1)` lookup mechanism via a hash map to quickly find a slab from an element's address during deallocation, and maintains an intrusive list of non-full slabs for `O(1)` allocation. Furthermore, empty slabs are now properly deallocated, enhancing resource management within the `protovm` subsystem. These changes ensure more efficient memory utilization and faster allocation/deallocation operations, with corresponding unit tests updated to cover the new design. | May 6 | 2 | maint |
| ae22099 | This commit addresses a **compilation issue** within the **`protovm` subsystem** by adding the necessary `#include <new>` directive to `src/protovm/error_handling.h`. This **bug fix** ensures that types and functions, potentially related to memory allocation or exception handling, are correctly declared, preventing build failures. The change is a **maintenance update** that improves the robustness and portability of the `protovm` module's error handling mechanisms, ensuring its proper compilation and functionality. | Apr 29 | 1 | waste |
| e03aa8d | This commit introduces the **initial implementation of the `protovm` subsystem**, a **new virtual machine** designed for **schema-agnostic manipulation of protobuf messages**. It provides core components like an `Allocator`, `Executor`, `Parser`, and `Vm` class, enabling dynamic operations such as patching and incremental serialization of protobuf data without requiring compile-time proto definitions. The work includes defining the VM's instruction set via `vm_program.proto`, robust error handling, and specialized cursors (`RoCursor`, `RwProtoCursor`) for read-write access to protobuf fields. This **new capability** significantly enhances the project's ability to process and modify protobufs dynamically, supported by comprehensive **build system integration** and **extensive unit tests** for all core components. | Apr 28 | 38 | grow |
This commit introduces a **new capability** to the **Perfetto tracing system** by adding a `rendering_hints` field to the `WindowLayoutParamsProto` message definition. This enhancement specifically affects the **Android window management tracing** subsystem, allowing for the capture and storage of additional rendering-related information. By extending the `protos/perfetto/trace/android/view/windowlayoutparams.proto` schema, this change provides more granular data for analyzing window rendering behavior and performance within Perfetto traces.
This commit **integrates ProtoVM** into the **Trace Processor** to enable **incremental tracing**, a **major new capability** for handling trace data. It introduces the `ProtoVmIncrementalTracing` class and modifies the `ProtoTraceReader` to process trace provenance, ProtoVM definitions, and apply patches to trace packets. This allows for more efficient and smaller trace files by enabling incremental updates. The change also includes a **refactoring** in the `protozero` library's `ProtoDecoder` for improved performance, updates to various **build configurations**, and comprehensive **test coverage** for the new functionality.
This commit performs a **maintenance refactoring** within the **`protovm` subsystem** to **optimize its serialization API**. It modifies `Vm::SerializeIncrementalState` and `RwProto::Serialize` to write incremental state directly into a `protozero::Message` output parameter, thereby **eliminating intermediate `std::string` copies**. This change significantly **reduces memory allocations and improves performance** for clients, such as the **`tracing_service`**, which has been updated to use the new, more efficient API. The `Vm` class also gains a new `SerializeIncrementalStateAsString` helper for convenience. Existing tests for `protovm` components were also updated to reflect these API changes.
This commit performs a significant **refactoring** of header file organization by **renaming and relocating** core utility headers, specifically `intrusive_list.h` and `intrusive_tree.h`, from `src/base` to `include/perfetto/ext/base`. This **maintenance** effort updates all affected include paths across various source files, including those within the **`protovm`** component and `src/base` utilities, along with their corresponding unit tests. Crucially, it also modifies the **Bazel and GN build configurations** to reflect these new header locations. The primary goal of this change is to **fix the Chromium build**, ensuring the project compiles correctly within that environment by resolving outdated header references.
This commit **integrates the ProtoVM** into the Perfetto tracing system, enabling dynamic, in-trace processing of data. This **new capability** introduces new **protobuf messages** across `perfetto_config.proto`, `trace_packet.proto`, `data_source_config.proto`, and `data_source_descriptor.proto` to specify ProtoVM configurations, programs, and instances. The **tracing service (`TracingServiceImpl`)** and **trace buffer (`TraceBufferV2`)** are significantly updated to set up, manage, and execute ProtoVM logic, including handling incremental state and cloning VMs. The integration also includes minor **ProtoVM refactoring** and comprehensive **unit tests** to ensure correct functionality. This enhances the flexibility of trace data collection by allowing data sources to embed custom processing logic directly within the tracing pipeline.
This commit introduces the **initial implementation** of the **TraceProvenance packet** into the **tracing service**, adhering to RFC-002. It defines a new `TraceProvenance` protobuf message and integrates it as a field within the core `TracePacket` structure, enabling traces to carry essential metadata about their origin and generation. The `TracingServiceImpl` is updated to `EmitTraceProvenance` during initial packet emission, providing crucial information for **ProtoVM integration**. This **new capability** ensures that trace data includes vital provenance details, with corresponding build system updates and unit tests to verify correct emission.
This commit **fixes a regression** in the **Android build system configuration** by restoring missing entries to the `javastream protos allowlist`. It **re-adds erroneously removed protobuf definitions** within `Android.bp.extras` that are crucial for `javastream` functionality. This **maintenance fix** ensures the build process correctly recognizes and compiles these protobufs, preventing potential build failures or runtime issues for components relying on them. The change directly addresses an oversight from a previous commit, restoring the intended allowlist state.
This commit introduces a **new capability** for **Perfetto's input method tracing**, enabling **fine-grained configuration** of data collection. A new `InputMethodConfig` protobuf definition is added and integrated into `DataSourceConfig`, allowing users to individually enable or disable client, IMS, and IMMS tracing. This enhancement to the **Android tracing subsystem** provides more precise control over input method data, improving the efficiency and relevance of collected traces. The necessary build configurations (`Android.bp`, `BUILD`, `BUILD.gn`) have been updated to incorporate this new proto definition.
This commit significantly improves the **robustness** of the **Trace Processor's WinScope importer** by making its **WindowManager** data parsing more fault-tolerant. Previously, the `WindowManagerHierarchyWalker` would abort its traversal upon encountering an invalid or unexpected proto format, leading to incomplete data. Now, the `ExtractWindowContainers` function and its children are modified to **continue parsing** even when errors occur, collecting all available valid data and signaling any parsing issues via a new `ExtractResult` struct. This **feature enhancement** ensures that the `WindowManager` table in the trace processor receives **more complete data**, even from partially malformed WinScope traces, preventing premature termination of data ingestion.
This commit **enables host support** for the `perfetto_winscope-lite` **Java library** by updating its build configuration in `Android.bp` and `Android.bp.extras` to include `host_supported: true`. This **feature enhancement** allows the library to be compiled and utilized in **host-side development environments and tests**, expanding its usability beyond device-specific builds. Consequently, components that depend on `perfetto_winscope-lite` can now be more thoroughly tested and integrated on the host, improving overall development efficiency and code quality.
This commit introduces **new Protocol Buffer wrapper messages** to enhance **Android Input Method Editor (IME) tracing** within the `perfetto` system. It adds `InputMethodClientsTraceFileProto`, `InputMethodServiceTraceFileProto`, and `InputMethodManagerServiceTraceFileProto` to `protos/perfetto/trace/android/inputmethodeditor.proto`. This **new feature** provides distinct message types for various IME tracing scenarios, improving the granularity and organization of collected trace data. The addition of these wrappers will enable more precise analysis of IME client, service, and manager interactions in Android traces.
This commit **increases the WebAssembly stack size to 2MB** by adjusting the `STACK_SIZE` compiler flag within `gn/standalone/wasm.gni`. This **bug fix** specifically addresses **stack overflows** that occurred during **window manager hierarchy traversal** operations within the Wasm runtime. The previous 64KB default was insufficient for the recursive Depth-First Search (DFS) performed by `WindowManagerHierarchyWalker`, which allocates substantial `protozero` decoders on the stack. This **configuration adjustment** enhances the stability and reliability of Wasm-based features requiring deep call stacks.
This commit introduces a **new feature** to the **Trace Processor's Winscope module** by flattening the complex Android WindowManager (WM) hierarchy into a dedicated `__intrinsic_windowmanager_windowcontainer` table. It revamps the **WindowManager parsing logic** to traverse the WM protobuf hierarchy, extract individual elements, and calculate their visibility and screen positions. This **refactoring** provides a more accessible and queryable representation of WM data, exposed through the new `android_windowmanager_windowcontainer` SQL view, significantly improving the analysis capabilities for WM state.
IME proto: more messages to be javastream compiled (#1755)
This commit **updates the persistent configuration** to modify the tracing behavior for **Android SurfaceFlinger transactions**. It specifically changes the `android.surfaceflinger.transactions` tracing mode within `persistent_cfg.pbtxt` from `MODE_ACTIVE` to `MODE_CONTINUOUS`. This **configuration enhancement** ensures that `SurfaceFlinger` transaction tracing operates continuously, providing more comprehensive data for debugging and performance analysis of the Android graphics system. The change impacts the **system's tracing capabilities** for display-related operations.
This commit **introduces a new tracing capability** to Perfetto by adding the `prevent_ime_startup_unless_text_editor` boolean field to the `InputMethodManagerServiceProto` in `protos/perfetto/trace/android/server/inputmethod/inputmethodmanagerservice.proto`. This **new field** allows the **Perfetto tracing system** to capture the state of an Android configuration option that controls whether the Input Method Editor (IME) starts up only when a text editor is focused. This **enhancement to Android IMMS tracing** is a **new capability** that significantly improves the ability to **debug input method-related issues**, especially those encountered in `CtsInputMethodTestCases`, by providing crucial visibility into this configuration's value within traces.
This commit introduces a **new capability** to the **Perfetto tracing system** by adding the `concurrent_multi_user_mode_enabled` field to the `InputMethodManagerServiceProto` message. This optional boolean field, located in `protos/perfetto/trace/android/server/inputmethod/inputmethodmanagerservice.proto`, will indicate if the Android Input Method Manager Service (IMMS) is configured for concurrent multi-user operation. This **schema extension** enhances the **trace data collected for Android input methods**, providing crucial context for system analysis. As a **refactoring** and data model update, this change is not expected to cause immediate visible issues.
This commit significantly **refactors** the `protovm` **slab allocator** to improve its performance, memory efficiency, and overall robustness, moving it towards production quality. The allocator now uses **4KB-aligned slabs** for direct memory page allocation, implements an `O(1)` lookup mechanism via a hash map to quickly find a slab from an element's address during deallocation, and maintains an intrusive list of non-full slabs for `O(1)` allocation. Furthermore, empty slabs are now properly deallocated, enhancing resource management within the `protovm` subsystem. These changes ensure more efficient memory utilization and faster allocation/deallocation operations, with corresponding unit tests updated to cover the new design.
This commit addresses a **compilation issue** within the **`protovm` subsystem** by adding the necessary `#include <new>` directive to `src/protovm/error_handling.h`. This **bug fix** ensures that types and functions, potentially related to memory allocation or exception handling, are correctly declared, preventing build failures. The change is a **maintenance update** that improves the robustness and portability of the `protovm` module's error handling mechanisms, ensuring its proper compilation and functionality.
This commit introduces the **initial implementation of the `protovm` subsystem**, a **new virtual machine** designed for **schema-agnostic manipulation of protobuf messages**. It provides core components like an `Allocator`, `Executor`, `Parser`, and `Vm` class, enabling dynamic operations such as patching and incremental serialization of protobuf data without requiring compile-time proto definitions. The work includes defining the VM's instruction set via `vm_program.proto`, robust error handling, and specialized cursors (`RoCursor`, `RwProtoCursor`) for read-write access to protobuf fields. This **new capability** significantly enhances the project's ability to process and modify protobufs dynamically, supported by comprehensive **build system integration** and **extensive unit tests** for all core components.
Commit activity distribution by hour and day of week. Shows when this developer is most active.
Developers who frequently work on the same files and symbols. Higher score means stronger code collaboration.