Commit 87caa6d1 authored by Tim Zheng's avatar Tim Zheng Committed by Commit Bot

Avoid calling SetTaskRunner on RepeatingTimer.

This is to avoid a sequence checker debug error.

BUG=b/113298882
TEST=Manually tested on Linux workstation simulator.

Change-Id: I07b43e315335bf95e67b4567aedd4b7466cc5391
Reviewed-on: https://chromium-review.googlesource.com/1213950Reviewed-by: default avatarNicholas Verne <nverne@chromium.org>
Commit-Queue: Tim Zheng <timzheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#589715}
parent b2c4b0e6
...@@ -38,7 +38,6 @@ CrosvmMetrics::CrosvmMetrics() ...@@ -38,7 +38,6 @@ CrosvmMetrics::CrosvmMetrics()
base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN})), base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN})),
page_size_(sysconf(_SC_PAGESIZE)), page_size_(sysconf(_SC_PAGESIZE)),
weak_ptr_factory_(this) { weak_ptr_factory_(this) {
timer_.SetTaskRunner(task_runner_);
} }
CrosvmMetrics::~CrosvmMetrics() = default; CrosvmMetrics::~CrosvmMetrics() = default;
...@@ -95,6 +94,12 @@ int CrosvmMetrics::CalculateCrosvmCpuPercentage( ...@@ -95,6 +94,12 @@ int CrosvmMetrics::CalculateCrosvmCpuPercentage(
} }
void CrosvmMetrics::MetricsCycleCallback() { void CrosvmMetrics::MetricsCycleCallback() {
task_runner_->PostNonNestableTask(
FROM_HERE, base::BindOnce(&CrosvmMetrics::MetricsCycle,
weak_ptr_factory_.GetWeakPtr()));
}
void CrosvmMetrics::MetricsCycle() {
if (!cycle_start_data_collected_) { if (!cycle_start_data_collected_) {
CollectCycleStartData(); CollectCycleStartData();
return; return;
......
...@@ -43,9 +43,12 @@ class CrosvmMetrics { ...@@ -43,9 +43,12 @@ class CrosvmMetrics {
int64_t cycle_cpu_time); int64_t cycle_cpu_time);
private: private:
// Callback for resource metrics measurement and report. // Callback to post MetricsCycle() to a blocking thread.
void MetricsCycleCallback(); void MetricsCycleCallback();
// Measures resource metrics and emit UMA histograms.
void MetricsCycle();
// Collect the crosvm process data and system CPU usage data at the start of // Collect the crosvm process data and system CPU usage data at the start of
// the 10-minute cycle. // the 10-minute cycle.
void CollectCycleStartData(); void CollectCycleStartData();
......
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