0

Move performance scenario traces into one category

Also makes the tracks for ScenarioScope::kGlobal global, instead of
nesting them under the browser process track.

R=etiennep

Bug: 365586676
Change-Id: Ib09cc5426afcb260313a831da43ceb21ecb127e0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6432566
Reviewed-by: Etienne Pierre-Doray <etiennep@chromium.org>
Commit-Queue: Joe Mason <joenotcharles@google.com>
Cr-Commit-Position: refs/heads/main@{#1443780}
This commit is contained in:
Joe Mason
2025-04-07 14:49:55 -07:00
committed by Chromium LUCI CQ
parent c16fc9a490
commit f680d1edfb
4 changed files with 19 additions and 10 deletions

@ -153,6 +153,13 @@ PERFETTO_DEFINE_CATEGORIES_IN_NAMESPACE_WITH_ATTRS(
perfetto::Category("page-serialization"),
perfetto::Category("paint_preview"),
perfetto::Category("pepper"),
perfetto::Category("performance_scenarios").SetDescription(
"Includes events when processes enter and leave states defined in "
"//components/performance_manager/scenario_api/"
"performance_scenarios.h. For each scenario type, events for "
"ScenarioScope::kCurrentProcess are emitted to an async track under "
"each process track, and events for ScenarioScope::kGlobal are emitted "
"to global async tracks."),
perfetto::Category("persistent_cache"),
perfetto::Category("PlatformMalloc"),
perfetto::Category("power"),

@ -67,15 +67,15 @@ struct ScenarioTraits<LoadingScenario> {
// No trace event.
return;
case LoadingScenario::kBackgroundPageLoading:
TRACE_EVENT_BEGIN("loading", "BackgroundPageLoading",
TRACE_EVENT_BEGIN("performance_scenarios", "BackgroundPageLoading",
*state_ptr->loading_tracing_track());
return;
case LoadingScenario::kVisiblePageLoading:
TRACE_EVENT_BEGIN("loading", "VisiblePageLoading",
TRACE_EVENT_BEGIN("performance_scenarios", "VisiblePageLoading",
*state_ptr->loading_tracing_track());
return;
case LoadingScenario::kFocusedPageLoading:
TRACE_EVENT_BEGIN("loading", "FocusedPageLoading",
TRACE_EVENT_BEGIN("performance_scenarios", "FocusedPageLoading",
*state_ptr->loading_tracing_track());
return;
}
@ -93,7 +93,8 @@ struct ScenarioTraits<LoadingScenario> {
case LoadingScenario::kBackgroundPageLoading:
case LoadingScenario::kVisiblePageLoading:
case LoadingScenario::kFocusedPageLoading:
TRACE_EVENT_END("loading", *state_ptr->loading_tracing_track());
TRACE_EVENT_END("performance_scenarios",
*state_ptr->loading_tracing_track());
return;
}
NOTREACHED();
@ -120,7 +121,8 @@ struct ScenarioTraits<InputScenario> {
// No trace event.
return;
case InputScenario::kTyping:
TRACE_EVENT_BEGIN("input", "Typing", *state_ptr->input_tracing_track());
TRACE_EVENT_BEGIN("performance_scenarios", "Typing",
*state_ptr->input_tracing_track());
return;
}
NOTREACHED();
@ -135,7 +137,8 @@ struct ScenarioTraits<InputScenario> {
// No trace event.
return;
case InputScenario::kTyping:
TRACE_EVENT_END("input", *state_ptr->input_tracing_track());
TRACE_EVENT_END("performance_scenarios",
*state_ptr->input_tracing_track());
return;
}
NOTREACHED();

@ -24,8 +24,7 @@ perfetto::NamedTrack CreateTracingTrack(const ProcessNode* process_node,
if (process_node) {
return CreateProcessTracingTrack(process_node, name, track_id);
} else {
return perfetto::NamedTrack(name, track_id,
perfetto::ProcessTrack::Current());
return perfetto::NamedTrack(name, track_id, perfetto::Track::Global(0));
}
}

@ -72,8 +72,8 @@ class PerformanceScenarioData final
// Creates tracing tracks under the ProcessTrack for `process_node`. The
// tracks will log trace events when updating scenarios in the shared memory
// region. If `process_node` is null, tracks for the global scenario state
// will be created under the current ProcessTrack.
// region. If `process_node` is null, creates tracks for the global scenario
// state.
void EnsureTracingTracks(const ProcessNode* process_node = nullptr);
private: