commit | fd458aec26f360050c574e3ba9e7dcd695c97960 | [log] [tgz] |
---|---|---|
author | Deepanjan Roy <dproy@google.com> | Mon Oct 21 14:24:46 2019 -0400 |
committer | Deepanjan Roy <dproy@google.com> | Mon Oct 21 19:48:05 2019 +0000 |
tree | ea6cff2c25a41d7a63c3b41a031eccde82d0a6ff | |
parent | fe771375ea54abc417a5037b7dc9abdeeeade31e [diff] |
processor: Walk up stack to find matching begin event Today we don't match an end event with a begin event if the begin event is not the last one in stack. This CL walks up the stack to find begin event with same name and category. Here is a real example from a chrome trace: [ ] V8.GC_HEAP_EXTERNAL_PROLOGUE [ MajorGC Begin [ ] V8.GC_HEAP_EXTERNAL_EPILOGUE ] MajorGC End We throw away the MajorGC End event here, because its timestamp is in the middle of the last slice in the stack. But then the MajorGC Begin event is never closed, and all other slices become a descendant of it. Technically this is an invalid trace because duration events on the same thread should not intersect like this, and we should find and fix the problem in the producer. Recording a new error stat for this so we're aware of the issue. Change-Id: I74a0b32bdcec37086f5b0109f87a406e528c4c9e
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.
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.