commit | 3183c6d80c71bd80ec5e1309e482b68812b323d6 | [log] [tgz] |
---|---|---|
author | Eric Seckler <eseckler@google.com> | Tue Jan 14 15:45:20 2020 +0000 |
committer | Eric Seckler <eseckler@google.com> | Tue Jan 14 15:45:20 2020 +0000 |
tree | e5c6650e9e8c4416b52a470bdee089344bf9b7da | |
parent | 7d128472046e072073a7f4300a27591a836a89f4 [diff] |
processor: Support TrackDescriptor's parent_uuid + pid/tid reuse Refactors tokenization and parsing of TrackDescriptors so that: - Only a single ProcessDescriptor track is supported per process. - Only a single ThreadDescriptor track is supported per thread. - Such a process/thread track is merged with slice-type system events into a single track. - Other tracks (e.g. async tracks) can be associated with a thread or process using the "parent_uuid" field. - pid/tid reuse (i.e. new process/thread spawns with same pid/tid after old process/thread terminates) is detected based on changing uuids of Process/ThreadDescriptor tracks. To accomplish this, tokenization now only makes reservations for tracks without actually inserting anything into the track table - since TrackDescriptors may appear in any order in the file, and we cannot know the track's type/context until we see its parent's descriptor. During parsing, the reservations will be resolved and inserted into the track table. If the uuid of a process's or thread's track changes, we assume that the pid/tid of the process/thread was reused. Change-Id: Iec1d019db211773eb15ee517ae0dac1ce87553c9
Perfetto is an open-source project for performance instrumentation and tracing of Linux/Android/Chrome platforms and user-space apps.
See www.perfetto.dev for docs.
See /docs/contributing.md for instructions.
The source-of-truth repo is Android's Gerrit. The GitHub repo is a read-only mirror.
You can reach us on our Discord channel. If you prefer using IRC we have an experimental Discord <> IRC bridge synced with #perfetto-dev
on Freenode.