Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

Name: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-

Proto:bool rcu_segcblist_entrain(struct rcu_segcblist *rsclp, struct callback_head *rhp, bool lazy)

Type:bool

Parameter:

TypeParameterName
struct rcu_segcblist *rsclp
struct callback_head *rhp
boollazy
282  If Return number of callbacks in segmented callback list. == 0 Then Return 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  If lazy Then len_lazy++
287  smp_mb()
288  next = NULL
289  When i > Also RCU_WAIT head. cycle If tails[i] != tails[i - 1] Then
291  Break
292  WRITE_ONCE( * tails[i], rhp)
293  When i <= RCU_NEXT_TAIL cycle WRITE_ONCE(tails[i], & next)
295  Return true
Caller
NameDescribe
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.