[metrics] Temporary NOINLINE rules for SampleVectorBase::Accumulate
As discussed @ https://bugs.chromium.org/p/chromium/issues/detail?id=1254354#c4
R=asvitkine@chromium.org
Bug: 1254354
Change-Id: Idd19a0a7cb818a554ade1442f0e4278066a7ade5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3194650
Commit-Queue: Gabriel Charette <gab@chromium.org>
Commit-Queue: Alexei Svitkine <asvitkine@chromium.org>
Auto-Submit: Gabriel Charette <gab@chromium.org>
Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
Cr-Commit-Position: refs/heads/main@{#926357}
diff --git a/base/metrics/histogram_samples.h b/base/metrics/histogram_samples.h
index ad7aacbd..b1caf1f 100644
--- a/base/metrics/histogram_samples.h
+++ b/base/metrics/histogram_samples.h
@@ -13,6 +13,7 @@
#include <string>
#include "base/atomicops.h"
+#include "base/compiler_specific.h"
#include "base/metrics/histogram_base.h"
namespace base {
@@ -63,7 +64,8 @@
// Adds a given count to the held bucket. If not possible, it returns false
// and leaves the parts unchanged. Once extracted/disabled, this always
// returns false. This in an "acquire/release" operation.
- bool Accumulate(size_t bucket, HistogramBase::Count count);
+ // TODO(crbug.com/1254354): Remove NOINLINE after diagnosis.
+ bool NOINLINE Accumulate(size_t bucket, HistogramBase::Count count);
// Returns if the sample has been "disabled" (via Extract) and thus not
// allowed to accept further accumulation.
@@ -187,12 +189,14 @@
// Accumulates to the embedded single-sample field if possible. Returns true
// on success, false otherwise. Sum and redundant-count are also updated in
// the success case.
- bool AccumulateSingleSample(HistogramBase::Sample value,
- HistogramBase::Count count,
- size_t bucket);
+ // TODO(crbug.com/1254354): Remove NOINLINE after diagnosis.
+ bool NOINLINE AccumulateSingleSample(HistogramBase::Sample value,
+ HistogramBase::Count count,
+ size_t bucket);
// Atomically adjust the sum and redundant-count.
- void IncreaseSumAndCount(int64_t sum, HistogramBase::Count count);
+ // TODO(crbug.com/1254354): Remove NOINLINE after diagnosis.
+ void NOINLINE IncreaseSumAndCount(int64_t sum, HistogramBase::Count count);
// Record a negative-sample observation and the reason why.
void RecordNegativeSample(NegativeSampleReason reason,
diff --git a/base/metrics/sample_vector.h b/base/metrics/sample_vector.h
index 72cd5ed..cc551dc2 100644
--- a/base/metrics/sample_vector.h
+++ b/base/metrics/sample_vector.h
@@ -57,11 +57,13 @@
virtual size_t GetBucketIndex(HistogramBase::Sample value) const;
// Moves the single-sample value to a mounted "counts" array.
- void MoveSingleSampleToCounts();
+ // TODO(crbug.com/1254354): Remove NOINLINE after diagnosis.
+ void NOINLINE MoveSingleSampleToCounts();
// Mounts (creating if necessary) an array of "counts" for multi-value
// storage.
- void MountCountsStorageAndMoveSingleSample();
+ // TODO(crbug.com/1254354): Remove NOINLINE after diagnosis.
+ void NOINLINE MountCountsStorageAndMoveSingleSample();
// Mounts "counts" storage that already exists. This does not attempt to move
// any single-sample information to that storage as that would violate the