函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\rcu\tree.c Create Date:2022-07-27 11:27:30
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:Mark the specified CPU as being online so that subsequent grace periods* (both expedited and normal) will wait on it. Note that this means that* incoming CPUs are not allowed to use RCU read-side critical sections* until this function is called

函数原型:void rcu_cpu_starting(unsigned int cpu)

返回类型:void

参数:

类型参数名称
unsigned intcpu
3170  如果per_cpu(rcu_cpu_started, cpu)则返回
3173  per_cpu(rcu_cpu_started, cpu)等于1
3175  rdp等于per_cpu_ptr( & rcu_data, cpu)
3176  rnp等于This CPU's leaf of hierarchy
3177  mask等于Mask to apply to leaf qsmask.
3178  raw_spin_lock_irqsave_rcu_node(rnp, flags)
3179  ginning of each grace period. 或等于mask
3180  oldmask等于ginning of each expedited GP.
3181  ginning of each expedited GP. 或等于mask
3182  oldmask异或等于ginning of each expedited GP.
3183  nbits等于bitmap_weight( & oldmask, BITS_PER_LONG)
3185  smp_store_release( & # CPUs seen so far. , # CPUs seen so far. + nbits)
3186  We are reporting a quiescent state on behalf of some other CPU, so* it is our responsibility to check for and handle potential overflow* of the rcu_node ->gp_seq counter with respect to the rcu_data counters
3187  ->gp_seq at last online. 等于READ_ONCE(Grace-period sequence #. )
3188  ->gp_flags at last online. 等于READ_ONCE(Commands for GP task. )
3189  如果CPUs or groups that need to switch in 按位与mask
3190  If any sort of urgency was applied to the current CPU (for example,* the scheduler-clock interrupt was enabled on a nohz_full CPU) in order* to get to a quiescent state, disable it.
3192  Similar to rcu_report_qs_rdp(), for which it is a helper function
3193  否则
3194  raw_spin_unlock_irqrestore_rcu_node(rnp, flags)
3196  smp_mb()
调用者
名称描述
mtrr_ap_init
rcu_init初始化直接读拷贝更新的锁机制