Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

Name:Core SRCU state machine. Push state bits of ->srcu_gp_seq* to SRCU_STATE_SCAN2, and invoke srcu_gp_end() when scan has* completed in that state.

Proto:static void srcu_advance_state(struct srcu_struct *ssp)

Type:void

Parameter:

TypeParameterName
struct srcu_struct *ssp
1095  mutex_lock( & srcu_gp_mutex)
1107  idx = Return the state portion of a sequence number previously returned* by rcu_seq_snap() or rcu_seq_current().
1108  If idx == SRCU_STATE_IDLE Then
1109  spin_lock_irq_rcu_node(ssp)
1114  Return
1116  idx = Return the state portion of a sequence number previously returned* by rcu_seq_snap() or rcu_seq_current().
1117  If idx == SRCU_STATE_IDLE Then Start an SRCU grace period.
1119  spin_unlock_irq_rcu_node(ssp)
1120  If idx != SRCU_STATE_IDLE Then
1122  Return
1126  If Return the state portion of a sequence number previously returned* by rcu_seq_snap() or rcu_seq_current(). == SRCU_STATE_SCAN1 Then
1127  idx = 1 ^ Current reader array element. & 1
1130  Return
1132  Increment the ->srcu_idx counter so that future SRCU readers will* use the other rank of the ->srcu_(un)lock_count[] arrays. This allows* us to wait for pre-existing readers in a starvation-free manner.
1133  Set the state portion of the pointed-to sequence number.* The caller is responsible for preventing conflicting updates.
1136  If Return the state portion of a sequence number previously returned* by rcu_seq_snap() or rcu_seq_current(). == SRCU_STATE_SCAN2 Then
1142  idx = 1 ^ Current reader array element. & 1
1145  Return
1147  Note the end of an SRCU grace period. Initiates callback invocation* and starts a new grace period if needed.* The ->srcu_cb_mutex acquisition does not protect any data, but* instead prevents more than one grace period from starting while we
Caller
NameDescribe
process_srcu