[tracing] Improve chrome data sources
This CL adds - `kRequiresCallbacksUnderLock=false` to several chrome data sources: while true is the default for backward compatibility, these don't need it. - Explicit Flush in BackgroundMetadataDataSource, to prevent data loss; I'm investigating reasons why we often miss this event, this should help rule out data loss related to SMB scraping issue. Change-Id: I37c386a85341797d69a18bf2452a59581f60cdcb Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6305392 Reviewed-by: Mikhail Khokhlov <khokhlov@google.com> Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> Cr-Commit-Position: refs/heads/main@{#1427109}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
f55cbfb015
commit
f5a089b7b1
content/browser/tracing
services/tracing/public/cpp
perfetto
stack_sampling
@ -186,6 +186,8 @@ class PreferenceManagerImpl
|
||||
class BackgroundMetadataDataSource
|
||||
: public perfetto::DataSource<BackgroundMetadataDataSource> {
|
||||
public:
|
||||
static constexpr bool kRequiresCallbacksUnderLock = false;
|
||||
|
||||
static void Register() {
|
||||
perfetto::DataSourceDescriptor desc;
|
||||
desc.set_name("org.chromium.background_scenario_metadata");
|
||||
@ -200,6 +202,8 @@ class BackgroundMetadataDataSource
|
||||
packet->set_timestamp_clock_id(base::tracing::kTraceClockId);
|
||||
auto* chrome_metadata = packet->set_chrome_metadata();
|
||||
scenario->GenerateMetadataProto(chrome_metadata);
|
||||
packet->Finalize();
|
||||
ctx.Flush();
|
||||
});
|
||||
}
|
||||
};
|
||||
|
@ -29,6 +29,8 @@ class COMPONENT_EXPORT(TRACING_CPP) HistogramSamplesDataSource
|
||||
: public perfetto::DataSource<HistogramSamplesDataSource,
|
||||
HistogramSamplesTraits> {
|
||||
public:
|
||||
static constexpr bool kRequiresCallbacksUnderLock = false;
|
||||
|
||||
static void Register();
|
||||
|
||||
HistogramSamplesDataSource();
|
||||
|
@ -19,6 +19,8 @@ namespace tracing {
|
||||
class COMPONENT_EXPORT(TRACING_CPP) MetadataDataSource
|
||||
: public perfetto::DataSource<MetadataDataSource> {
|
||||
public:
|
||||
static constexpr bool kRequiresCallbacksUnderLock = false;
|
||||
|
||||
static void Register();
|
||||
|
||||
void OnStart(const StartArgs&) override;
|
||||
|
@ -62,6 +62,8 @@ class COMPONENT_EXPORT(TRACING_CPP) TracingSamplerProfiler {
|
||||
: public perfetto::DataSource<DataSource> {
|
||||
public:
|
||||
static constexpr bool kSupportsMultipleInstances = false;
|
||||
static constexpr bool kRequiresCallbacksUnderLock = false;
|
||||
|
||||
using TraceContext = perfetto::DataSource<DataSource>::TraceContext;
|
||||
|
||||
DataSource() = default;
|
||||
|
Reference in New Issue
Block a user