Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

Name:_barrier - Wait until all in-flight call_rcu() callbacks complete

Proto:void rcu_barrier(void)

Type:void

Parameter:Nothing

2922  s = _seq_snap - Take a snapshot of the update side's sequence number.* This function returns the earliest value of the grace-period sequence number* that will indicate that a full grace period has elapsed since the current* time
2924  Helper function for rcu_barrier() tracing. If tracing is disabled,* the compiler is expected to optimize this away.
2927  mutex_lock( & Guards barrier fields. )
2930  If Given a snapshot from rcu_seq_snap(), determine whether or not a* full update-side operation has occurred. Then
2931  Helper function for rcu_barrier() tracing. If tracing is disabled,* the compiler is expected to optimize this away.
2933  smp_mb()
2934  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.
2935  Return
2939  Adjust sequence number for start of update-side operation.
2940  Helper function for rcu_barrier() tracing. If tracing is disabled,* the compiler is expected to optimize this away.
2948  init_completion( & Wake at barrier end. )
2949  atomic_set( & # CPUs waiting on. , 1)
2950  get_online_cpus()
2957  for_each_possible_cpu(cpu)
2958  rdp = per_cpu_ptr( & rcu_data, cpu)
2959  If Not cpu_online(cpu) && Not Is the specified rcu_segcblist offloaded? Then Continue
2966  Else
2971  put_online_cpus()
2977  If atomic_dec_and_test( & # CPUs waiting on. ) Then mplete: - signals a single thread waiting on this completion*@x: holds the state of this particular completion* This will wake up a single thread waiting on this completion. Threads will be* awakened in the same order in which they were queued.
2981  wait_for_completion: - waits for completion of a task*@x: holds the state of this particular completion* This waits to be signaled for completion of a specific task. It is NOT* interruptible and there is no timeout.* See also similar routines (i
2984  Helper function for rcu_barrier() tracing. If tracing is disabled,* the compiler is expected to optimize this away.
2985  Adjust sequence number for end of update-side operation.
2988  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.
Caller
NameDescribe
flush_rcu_worklush_rcu_work - wait for a rwork to finish executing the last queueing*@rwork: the rcu work to flush* Return:* %true if flush_rcu_work() waited for the work to finish execution,* %false if it was already idle.
slab_caches_to_rcu_destroy_workfn
elv_unregister
rcu_sync_dtor_sync_dtor() - Clean up an rcu_sync structure*@rsp: Pointer to rcu_sync structure to be cleaned up
rcutorture_oom_notifyOOM notifier, but this only prints diagnostic information for the* current forward-progress test.