Commit 1c0135f2 authored by Francois Doray's avatar Francois Doray Committed by Commit Bot

[threadpool] Remove ThreadPool.NumTasksRunWhileQueuing histogram.

Historical histogram data is already available in
base/task/thread_pool/historical_histogram_data.md

Bug: 995483
Change-Id: I9c7898627dcd75dc6ffb1bb9b64d60f6a52a21a1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2446206Reviewed-by: default avatarEtienne Pierre-Doray <etiennep@chromium.org>
Reviewed-by: default avatarSteven Holte <holte@chromium.org>
Commit-Queue: Steven Holte <holte@chromium.org>
Auto-Submit: François Doray <fdoray@chromium.org>
Cr-Commit-Position: refs/heads/master@{#814942}
parent 47c7aa5e
......@@ -81,10 +81,8 @@ void ServiceThread::PerformHeartbeatLatencyReport() const {
// reported latency.
ThreadPool::PostTask(
FROM_HERE, {profiled_priority},
BindOnce(
&TaskTracker::RecordHeartbeatLatencyAndTasksRunWhileQueuingHistograms,
Unretained(task_tracker_), profiled_priority, TimeTicks::Now(),
task_tracker_->GetNumTasksRun()));
BindOnce(&TaskTracker::RecordHeartbeatLatencyHistogram,
Unretained(task_tracker_), profiled_priority, TimeTicks::Now()));
}
} // namespace internal
......
......@@ -102,27 +102,6 @@ HistogramBase* GetLatencyHistogram(StringPiece histogram_name,
HistogramBase::kUmaTargetedHistogramFlag);
}
// Constructs a histogram to track task count which is logging to
// "ThreadPool.{histogram_name}.{histogram_label}.{task_type_suffix}".
HistogramBase* GetCountHistogram(StringPiece histogram_name,
StringPiece histogram_label,
StringPiece task_type_suffix) {
DCHECK(!histogram_name.empty());
DCHECK(!task_type_suffix.empty());
if (histogram_label.empty())
return nullptr;
// Mimics the UMA_HISTOGRAM_CUSTOM_COUNTS macro.
const std::string histogram = JoinString(
{"ThreadPool", histogram_name, histogram_label, task_type_suffix}, ".");
// 500 was chosen as the maximum number of tasks run while queuing because
// values this high would likely indicate an error, beyond which knowing the
// actual number of tasks is not informative.
return Histogram::FactoryGet(histogram, 1, 500, 50,
HistogramBase::kUmaTargetedHistogramFlag);
}
// Returns a histogram stored in an array indexed by task priority.
// TODO(jessemckenna): use the STATIC_HISTOGRAM_POINTER_GROUP macro from
// histogram_macros.h instead.
......@@ -336,16 +315,6 @@ TaskTracker::TaskTracker(StringPiece histogram_label)
GetLatencyHistogram("HeartbeatLatencyMicroseconds",
histogram_label,
"UserBlockingTaskPriority")},
num_tasks_run_while_queuing_histograms_{
GetCountHistogram("NumTasksRunWhileQueuing",
histogram_label,
"BackgroundTaskPriority"),
GetCountHistogram("NumTasksRunWhileQueuing",
histogram_label,
"UserVisibleTaskPriority"),
GetCountHistogram("NumTasksRunWhileQueuing",
histogram_label,
"UserBlockingTaskPriority")},
tracked_ref_factory_(this) {}
TaskTracker::~TaskTracker() = default;
......@@ -532,27 +501,14 @@ void TaskTracker::RecordLatencyHistogram(TaskPriority priority,
->AddTimeMicrosecondsGranularity(task_latency);
}
void TaskTracker::RecordHeartbeatLatencyAndTasksRunWhileQueuingHistograms(
TaskPriority priority,
TimeTicks posted_time,
int num_tasks_run_when_posted) const {
void TaskTracker::RecordHeartbeatLatencyHistogram(TaskPriority priority,
TimeTicks posted_time) const {
if (histogram_label_.empty())
return;
const TimeDelta task_latency = TimeTicks::Now() - posted_time;
GetHistogramForTaskPriority(priority, heartbeat_latency_histograms_)
->AddTimeMicrosecondsGranularity(task_latency);
GetHistogramForTaskPriority(priority, num_tasks_run_while_queuing_histograms_)
->Add(GetNumTasksRun() - num_tasks_run_when_posted);
}
int TaskTracker::GetNumTasksRun() const {
return num_tasks_run_.load(std::memory_order_relaxed);
}
void TaskTracker::IncrementNumTasksRun() {
num_tasks_run_.fetch_add(1, std::memory_order_relaxed);
}
void TaskTracker::RunTask(Task task,
......@@ -709,7 +665,6 @@ bool TaskTracker::BeforeRunTask(TaskShutdownBehavior shutdown_behavior) {
}
void TaskTracker::AfterRunTask(TaskShutdownBehavior shutdown_behavior) {
IncrementNumTasksRun();
if (shutdown_behavior == TaskShutdownBehavior::SKIP_ON_SHUTDOWN) {
DecrementNumItemsBlockingShutdown();
}
......
......@@ -130,20 +130,12 @@ class BASE_EXPORT TaskTracker {
// no tasks are blocking shutdown).
bool IsShutdownComplete() const;
// Records two histograms
// 1. ThreadPool.[label].HeartbeatLatencyMicroseconds.[suffix]:
// Now() - posted_time
// 2. ThreadPool.[label].NumTasksRunWhileQueuing.[suffix]:
// GetNumTasksRun() - num_tasks_run_when_posted.
// Records Now() - posted_time to
// ThreadPool.[label].HeartbeatLatencyMicroseconds.[suffix].
// [label] is the histogram label provided to the constructor.
// [suffix] is derived from |task_priority|.
void RecordHeartbeatLatencyAndTasksRunWhileQueuingHistograms(
TaskPriority task_priority,
TimeTicks posted_time,
int num_tasks_run_when_posted) const;
// Returns the number of tasks run so far
int GetNumTasksRun() const;
void RecordHeartbeatLatencyHistogram(TaskPriority task_priority,
TimeTicks posted_time) const;
TrackedRef<TaskTracker> GetTrackedRef() {
return tracked_ref_factory_.GetTrackedRef();
......@@ -206,8 +198,6 @@ class BASE_EXPORT TaskTracker {
void RecordLatencyHistogram(TaskPriority priority,
TimeTicks posted_time) const;
void IncrementNumTasksRun();
// Dummy frames to allow identification of shutdown behavior in a stack trace.
void RunContinueOnShutdown(Task* task);
void RunSkipOnShutdown(Task* task);
......@@ -263,10 +253,6 @@ class BASE_EXPORT TaskTracker {
// completes.
std::unique_ptr<WaitableEvent> shutdown_event_ GUARDED_BY(shutdown_lock_);
// Counter for number of tasks run so far, used to record tasks run while
// a task queued to histogram.
std::atomic_int num_tasks_run_{0};
// ThreadPool.TaskLatencyMicroseconds.*,
// ThreadPool.HeartbeatLatencyMicroseconds.*, and
// ThreadPool.NumTasksRunWhileQueuing.* histograms. The index is a
......@@ -278,8 +264,6 @@ class BASE_EXPORT TaskTracker {
static_cast<TaskPriorityType>(TaskPriority::HIGHEST) + 1;
HistogramBase* const task_latency_histograms_[kNumTaskPriorities];
HistogramBase* const heartbeat_latency_histograms_[kNumTaskPriorities];
HistogramBase* const
num_tasks_run_while_queuing_histograms_[kNumTaskPriorities];
// Ensures all state (e.g. dangling cleaned up workers) is coalesced before
// destroying the TaskTracker (e.g. in test environments).
......
......@@ -14818,6 +14818,9 @@ should be kept until we remove incident reporting. -->
<histogram base="true" name="ThreadPool.NumTasksRunWhileQueuing" units="tasks"
expires_after="2019-10-01">
<obsolete>
Removed 10/2020. Not actively used.
</obsolete>
<owner>fdoray@chromium.org</owner>
<summary>
Number of tasks run by ThreadPool while task was queuing (from time task was
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment