函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:Entrain the specified callback onto the specified rcu_segcblist at* the end of the last non-empty segment. If the entire rcu_segcblist* is empty, make no change, but return false.* This is intended for use by rcu_barrier()-like primitives, -not-

函数原型:bool rcu_segcblist_entrain(struct rcu_segcblist *rsclp, struct callback_head *rhp, bool lazy)

返回类型:bool

参数:

类型参数名称
struct rcu_segcblist *rsclp
struct callback_head *rhp
boollazy
282  如果Return number of callbacks in segmented callback list. 恒等于0则返回:false
284  Increase the numeric length of an rcu_segcblist structure by one.* This can cause the ->len field to disagree with the actual number of* callbacks on the structure. This increase is fully ordered with respect* to the callers accesses both before and after.
285  如果lazylen_lazy自加
287  smp_mb()
288  next = NULL
289 i大于Also RCU_WAIT head. 循环如果tails[i]不等于tails[i - 1]则
291  退出
292  WRITE_ONCE( * tails[i], rhp)
293 i小于等于RCU_NEXT_TAIL循环WRITE_ONCE(tails[i], & next)
295  返回:true
调用者
名称描述
rcu_barrier_funcCalled with preemption disabled, and from cross-cpu IRQ context.
srcu_barriersrcu_barrier - Wait until all in-flight call_srcu() callbacks complete.*@ssp: srcu_struct on which to wait for in-flight callbacks.