Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\rcu\tree_exp.h Create Date:2022-07-28 10:28:47
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:synchronize_rcu_expedited - Brute-force RCU grace period* Wait for an RCU grace period, but expedite it

Proto:void synchronize_rcu_expedited(void)

Type:void

Parameter:Nothing

793  boottime = The rcu_scheduler_active variable is initialized to the value* RCU_SCHEDULER_INACTIVE and transitions RCU_SCHEDULER_INIT just before the* first task is spawned == RCU_SCHEDULER_INIT
798  RCU_LOCKDEP_WARN(lock_is_held( & rcu_bh_lock_map) || lock_is_held( & rcu_lock_map) || lock_is_held( & rcu_sched_lock_map), "Illegal synchronize_rcu_expedited() in RCU read-side critical section")
804  If During early boot, any blocking grace-period wait automatically* implies a grace period Then Return
808  If Should expedited grace-period primitives always fall back to their* non-expedited counterparts? Intended for use within RCU. Note* that if the user specifies both rcu_expedited and rcu_normal, then* rcu_normal wins Then
809  wait_rcu_gp(all_rcu() - Queue an RCU callback for invocation after a grace period)
810  Return
814  s = Take a snapshot of the expedited-grace-period counter.
815  If Funnel-lock acquisition for expedited grace periods Then Return
819  If Value for the false possibility is greater at compile time(boottime) Then
821  Common code to drive an expedited grace period forward, used by* workqueues and mid-boot-time tasks.
822  Else
824  rew_s = s
825  INIT_WORK_ONSTACK( & rew_work, Work-queue handler to drive an expedited grace period forward.)
826  queue_work - queue work on a workqueue*@wq: workqueue to use*@work: work to queue* Returns %false if @work was already on a queue, %true otherwise.* We queue the work to the CPU on which it was submitted, but if the CPU dies
830  rnp = Return the root node of the rcu_state structure.
831  wait_event - sleep until a condition gets true*@wq_head: the waitqueue to wait on*@condition: a C expression for the event to wait for* The process is put to sleep (TASK_UNINTERRUPTIBLE) until the*@condition evaluates to true(exp_wq[Return the counter portion of a sequence number previously returned* by rcu_seq_snap() or rcu_seq_current(). & 0x3], Common code for work-done checking. )
833  smp_mb()
836  mutex_unlock - release the mutex*@lock: the mutex to be released* Unlock a mutex that has been locked by this task previously.* This function must not be used in interrupt context. Unlocking* of a not locked mutex is not allowed.
838  If Value is more likely to compile time(!boottime) Then destroy_work_on_stack( & rew_work)
Caller
NameDescribe
rcu_test_sync_primsTest each non-SRCU synchronous grace-period wait API. This is* useful just after a change in mode for these primitives, and* during early boot.
synchronize_rcusynchronize_rcu - wait until a grace period has elapsed
bdi_remove_from_listRemove bdi from bdi_list, and ensure that it is no longer visible
namespace_unlock