History

rcu/nocb: Remove NOCB deferred wakeup from rcutree_dead_cpu()

At CPU offline time, we must handle any pending wakeup for the nocb_gp kthread linked to the outgoing CPU. Now we are making sure of that twice: 1) From rcu_report_dead() when the outgoing CPU makes the very last local cleanups by itself before switching offline. 2) From rcutree_dead_cpu(). Here the offlining CPU has gone and is truly now offline. Another CPU takes care of post-portem cleaning up and check if the offline CPU had pending wakeup. Both ways are fine but we have to choose one or the other because we don't need to repeat that action. Simply benefit from cache locality and keep only the first solution.

Frederic Weisbecker committed 5 years ago

Commit cba712b1 parent dfcb2751 file · +0 −3Browse files

Unified · Split

kernel/rcu/tree.c+0−3
@@ -2471,9 +2471,6 @@ int rcutree_dead_cpu(unsigned int cpu) · 2470 unmodified lines
2471 WRITE_ONCE(rcu_state.n_online_cpus, rcu_state.n_online_cpus - 1);2471 WRITE_ONCE(rcu_state.n_online_cpus, rcu_state.n_online_cpus - 1);
2472 /* Adjust any no-longer-needed kthreads. */2472 /* Adjust any no-longer-needed kthreads. */
2473 rcu_boost_kthread_setaffinity(rnp, -1);2473 rcu_boost_kthread_setaffinity(rnp, -1);
2474 /* Do any needed no-CB deferred wakeups from this CPU. */
2475 do_nocb_deferred_wakeup(per_cpu_ptr(&rcu_data, cpu));
2476
2477 // Stop-machine done, so allow nohz_full to disable tick.2474 // Stop-machine done, so allow nohz_full to disable tick.
2478 tick_dep_clear(TICK_DEP_BIT_RCU);2475 tick_dep_clear(TICK_DEP_BIT_RCU);
2479 return 0;2476 return 0;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t