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:

committed by
Chromium LUCI CQ

parent
c16fc9a490
commit
f680d1edfb
base/trace_event
components/performance_manager/scenarios
@ -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:
|
||||
|
Reference in New Issue
Block a user