Commit 302a8ab7 authored by Sami Kyostila's avatar Sami Kyostila Committed by Commit Bot

chrome/browser/performance_monitor: Always specify thread affinity when posting tasks

*** Note: There is no behavior change from this patch. ***

The PostTask APIs will shortly be changed to require all tasks to explicitly
specify their thread affinity, i.e., whether the task should run on the thread
pool or a specific named thread such as a BrowserThread. This patch updates all
call sites with thread affinity annotation. We also remove the "WithTraits"
suffix to make the call sites more readable.

Before:

    // Thread pool task.
    base::PostTaskWithTraits(FROM_HERE, {...}, ...);

    // UI thread task.
    base::PostTaskWithTraits(FROM_HERE, {BrowserThread::UI, ...}, ...);

After:

    // Thread pool task.
    base::PostTask(FROM_HERE, {base::ThreadPool(), ...}, ...);

    // UI thread task.
    base::PostTask(FROM_HERE, {BrowserThread::UI, ...}, ...);

This patch was semi-automatically prepared with these steps:

    1. Patch in https://crrev.com/c/1635827 to make thread affinity a build-time
       requirement.
    2. Run an initial pass with a clang rewriter:
       https://chromium-review.googlesource.com/c/chromium/src/+/1635623
    3. ninja -C out/Debug | grep 'requested here' | cut -d: -f1-3 | sort | \
           uniq > errors.txt
    4. while read line; do
         f=$(echo $line | cut -d: -f 1)
         r=$(echo $line | cut -d: -f 2)
         c=$(echo $line | cut -d: -f 3)
         sed -i "${r}s/./&base::ThreadPool(),/$c" $f
       done < errors.txt
    5. GOTO 3 until build succeeds.
    6. Remove the "WithTraits" suffix from task API call sites:

       $ tools/git/mffr.py -i <(cat <<EOF
       [
         ["PostTaskWithTraits",
          "PostTask"],
         ["PostDelayedTaskWithTraits",
          "PostDelayedTask"],
         ["PostTaskWithTraitsAndReply",
          "PostTaskAndReply"],
         ["CreateTaskRunnerWithTraits",
          "CreateTaskRunner"],
         ["CreateSequencedTaskRunnerWithTraits",
          "CreateSequencedTaskRunner"],
         ["CreateUpdateableSequencedTaskRunnerWithTraits",
          "CreateUpdateableSequencedTaskRunner"],
         ["CreateSingleThreadTaskRunnerWithTraits",
          "CreateSingleThreadTaskRunner"],
         ["CreateCOMSTATaskRunnerWithTraits",
          "CreateCOMSTATaskRunner"]
       ]
       EOF
       )

This CL was uploaded by git cl split.

R=simonhatch@chromium.org

Bug: 968047
Change-Id: I90e2499257ebe0b5914568b3f496d32c48b4f6e0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1739806
Auto-Submit: Sami Kyöstilä <skyostil@chromium.org>
Reviewed-by: default avatarSimon Hatch <simonhatch@chromium.org>
Commit-Queue: Simon Hatch <simonhatch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#684449}
parent b3b1e0ce
...@@ -24,8 +24,9 @@ MetricEvaluatorsHelperWin* g_metric_evaluator_instance = nullptr; ...@@ -24,8 +24,9 @@ MetricEvaluatorsHelperWin* g_metric_evaluator_instance = nullptr;
} // namespace } // namespace
MetricEvaluatorsHelperWin::MetricEvaluatorsHelperWin() MetricEvaluatorsHelperWin::MetricEvaluatorsHelperWin()
: wmi_initialization_sequence_(base::CreateSequencedTaskRunnerWithTraits( : wmi_initialization_sequence_(base::CreateSequencedTaskRunner(
{base::TaskPriority::BEST_EFFORT, base::MayBlock(), {base::ThreadPool(), base::TaskPriority::BEST_EFFORT,
base::MayBlock(),
base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN})), base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN})),
wmi_refresher_(new win::WMIRefresher(), wmi_refresher_(new win::WMIRefresher(),
base::OnTaskRunnerDeleter(wmi_initialization_sequence_)), base::OnTaskRunnerDeleter(wmi_initialization_sequence_)),
......
...@@ -110,7 +110,7 @@ void ProcessMonitor::GatherMetricsMapOnUIThread() { ...@@ -110,7 +110,7 @@ void ProcessMonitor::GatherMetricsMapOnUIThread() {
MarkProcessAsAlive(data, current_update_sequence); MarkProcessAsAlive(data, current_update_sequence);
} }
base::PostTaskWithTraits( base::PostTask(
FROM_HERE, {BrowserThread::IO}, FROM_HERE, {BrowserThread::IO},
base::BindOnce(&ProcessMonitor::GatherMetricsMapOnIOThread, base::BindOnce(&ProcessMonitor::GatherMetricsMapOnIOThread,
base::Unretained(this), current_update_sequence)); base::Unretained(this), current_update_sequence));
...@@ -167,7 +167,7 @@ void ProcessMonitor::GatherMetricsMapOnIOThread(int current_update_sequence) { ...@@ -167,7 +167,7 @@ void ProcessMonitor::GatherMetricsMapOnIOThread(int current_update_sequence) {
browser_process_data.handle = base::GetCurrentProcessHandle(); browser_process_data.handle = base::GetCurrentProcessHandle();
process_data_list->push_back(browser_process_data); process_data_list->push_back(browser_process_data);
base::PostTaskWithTraits( base::PostTask(
FROM_HERE, {BrowserThread::UI}, FROM_HERE, {BrowserThread::UI},
base::BindOnce(&ProcessMonitor::MarkProcessesAsAliveOnUIThread, base::BindOnce(&ProcessMonitor::MarkProcessesAsAliveOnUIThread,
base::Unretained(this), std::move(process_data_list), base::Unretained(this), std::move(process_data_list),
...@@ -181,7 +181,7 @@ void ProcessMonitor::MarkProcessesAsAliveOnUIThread( ...@@ -181,7 +181,7 @@ void ProcessMonitor::MarkProcessesAsAliveOnUIThread(
for (const ProcessMetricsMetadata& data : *process_data_list) for (const ProcessMetricsMetadata& data : *process_data_list)
MarkProcessAsAlive(data, current_update_sequence); MarkProcessAsAlive(data, current_update_sequence);
base::PostTaskWithTraits( base::PostTask(
FROM_HERE, {BrowserThread::IO}, FROM_HERE, {BrowserThread::IO},
base::BindOnce(&ProcessMonitor::UpdateMetricsOnIOThread, base::BindOnce(&ProcessMonitor::UpdateMetricsOnIOThread,
base::Unretained(this), current_update_sequence)); base::Unretained(this), current_update_sequence));
...@@ -202,7 +202,7 @@ void ProcessMonitor::UpdateMetricsOnIOThread(int current_update_sequence) { ...@@ -202,7 +202,7 @@ void ProcessMonitor::UpdateMetricsOnIOThread(int current_update_sequence) {
} }
} }
base::PostTaskWithTraits(FROM_HERE, {BrowserThread::UI}, base::PostTask(FROM_HERE, {BrowserThread::UI},
base::BindOnce(&ProcessMonitor::RunTriggersUIThread, base::BindOnce(&ProcessMonitor::RunTriggersUIThread,
base::Unretained(this))); base::Unretained(this)));
} }
......
...@@ -41,8 +41,8 @@ const base::Feature kSystemMonitorMetricLogger{ ...@@ -41,8 +41,8 @@ const base::Feature kSystemMonitorMetricLogger{
SystemMonitor::SystemMonitor( SystemMonitor::SystemMonitor(
std::unique_ptr<MetricEvaluatorsHelper> metric_evaluators_helper) std::unique_ptr<MetricEvaluatorsHelper> metric_evaluators_helper)
: blocking_task_runner_(base::CreateSequencedTaskRunnerWithTraits( : blocking_task_runner_(base::CreateSequencedTaskRunner(
{base::MayBlock(), {base::ThreadPool(), base::MayBlock(),
base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN})), base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN})),
metric_evaluators_helper_( metric_evaluators_helper_(
metric_evaluators_helper.release(), metric_evaluators_helper.release(),
......
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