synchronize_rcu_expedited(9) Brute-force RCU grace period


void synchronize_rcu_expedited(void);



no arguments


Wait for an RCU-preempt grace period, but expedite it. The basic idea is to invoke synchronize_sched_expedited to push all the tasks to the ->blkd_tasks lists and wait for this list to drain. This consumes significant time on all CPUs and is unfriendly to real-time workloads, so is thus not recommended for any sort of common-case code. In fact, if you are using synchronize_rcu_expedited in a loop, please restructure your code to batch your updates, and then Use a single synchronize_rcu instead.

Note that it is illegal to call this function while holding any lock that is acquired by a CPU-hotplug notifier. And yes, it is also illegal to call this function from a CPU-hotplug notifier. Failing to observe these restriction will result in deadlock.