函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:Advance the callbacks in the specified rcu_segcblist structure based* on the current value passed in for the grace-period counter.

函数原型:void rcu_segcblist_advance(struct rcu_segcblist *rsclp, unsigned long seq)

返回类型:void

参数:

类型参数名称
struct rcu_segcblist *rsclp
unsigned longseq
415  WARN_ON_ONCE(!Is the specified rcu_segcblist enabled, for example, not corresponding* to an offline CPU?)
416  如果Are all segments following the specified segment of the specified* rcu_segcblist structure empty of callbacks? (The specified* segment might well contain callbacks.)则返回
423 i小于RCU_NEXT_TAIL循环
424  如果ULONG_CMP_LT(seq, gp_seq[i])则退出
426  WRITE_ONCE(tails[Also RCU_WAIT head. ], tails[i])
430  如果i恒等于Also RCU_NEXT_READY head. 则返回
434 j小于i循环WRITE_ONCE(tails[j], tails[Also RCU_WAIT head. ])
443 i小于RCU_NEXT_TAIL循环
444  如果tails[j]恒等于tails[RCU_NEXT_TAIL]则退出
446  WRITE_ONCE(tails[j], tails[i])
447  gp_seq[j]等于gp_seq[i]
调用者
名称描述
__call_srcuEnqueue an SRCU callback on the srcu_data structure associated with* the current CPU and the specified srcu_struct structure, initiating* grace-period processing if it is not already running
srcu_invoke_callbacks
rcu_advance_cbsMove any callbacks whose grace period has completed to the* RCU_DONE_TAIL sublist, then compact the remaining sublists and* assign ->gp_seq numbers to any callbacks in the RCU_NEXT_TAIL* sublist. This function is idempotent, so it does not hurt to
srcu_gp_startStart an SRCU grace period.