# Global OWNERS that can approve Perfetto changes.
# Please look first at OWNERS in the various subdirectories before falling back
# on this, as the former tend to be more brain-cache-hot.

# Perfetto tracing internals and API/ABI boundaries.
primiano@google.com

# UI, Ftrace interop, traced_probes, protozero, Android internals.

# Trace Processor, metrics, infra.
lalitm@google.com
mayzner@google.com

# Callstack / memory profilers, traced_probes & Linux internals.
ddiproietto@google.com
rsavitski@google.com

# Chromium-related things and tracing SDK.
eseckler@google.com
nuskos@google.com
oysteine@google.com

# UI, Chromium-related metrics and simpler trace processor changes.
altimin@google.com

# UI
stevegolton@google.com

# Most Android-related metrics.
ilkos@google.com

# fmayer@ left the team. Please try first rsavitski@, ddiproietto@ or primiano@
# and leave fmayer@ as an emergency-only escalation on profilers.
fmayer@google.com

# chromium.org aliases for adding DEPS entries from chromium subprojects to
# third_party/perfetto.
eseckler@chromium.org
nuskos@chromium.org
skyostil@chromium.org
