Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

Name:This function checks for grace-period requests that fail to motivate* RCU to come out of its idle mode.

Proto:static void rcu_check_gp_start_stall(struct rcu_node *rnp, struct rcu_data *rdp, const unsigned long gpssdelay)

Type:void

Parameter:

TypeParameterName
struct rcu_node *rnp
struct rcu_data *rdp
const unsigned longgpssdelay
610  rnp_root = Return the root node of the rcu_state structure.
611  warned = Atomic operations that C can't guarantee us. Useful for* resource counting etc..(0)
613  If Not IS_ENABLED(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'y' or 'm',* 0 otherwise.(CONFIG_PROVE_RCU) || Return true if an RCU grace period is in progress. The READ_ONCE()s* permit this function to be invoked without holding the root rcu_node* structure's ->lock, but of course results can be subject to change. || ULONG_CMP_GE(Track rsp->rcu_gp_seq. , Track furthest future GP request. ) Then Return
616  j = jiffies
617  If time_before(j, READ_ONCE(Time of last GP request ) + gpssdelay) || time_before(j, READ_ONCE(Time of last GP kthread ) + gpssdelay) || atomic_read( & warned) Then Return
622  raw_spin_lock_irqsave_rcu_node(rnp, flags)
623  j = jiffies
624  If Return true if an RCU grace period is in progress. The READ_ONCE()s* permit this function to be invoked without holding the root rcu_node* structure's ->lock, but of course results can be subject to change. || ULONG_CMP_GE(Track rsp->rcu_gp_seq. , Track furthest future GP request. ) || time_before(j, READ_ONCE(Time of last GP request ) + gpssdelay) || time_before(j, READ_ONCE(Time of last GP kthread ) + gpssdelay) || atomic_read( & warned) Then
629  raw_spin_unlock_irqrestore_rcu_node(rnp, flags)
630  Return
634  If rnp_root != rnp Then Wrappers for the rcu_node::lock acquire and release(rnp_root)
636  j = jiffies
637  If Return true if an RCU grace period is in progress. The READ_ONCE()s* permit this function to be invoked without holding the root rcu_node* structure's ->lock, but of course results can be subject to change. || ULONG_CMP_GE(Track rsp->rcu_gp_seq. , Track furthest future GP request. ) || time_before(j, Time of last GP request + gpssdelay) || time_before(j, Time of last GP kthread + gpssdelay) || atomic_xchg( & warned, 1) Then
642  If rnp_root != rnp Then raw_spin_unlock_rcu_node(rnp_root)
645  raw_spin_unlock_irqrestore_rcu_node(rnp, flags)
646  Return
648  WARN_ON(1)
649  If rnp_root != rnp Then raw_spin_unlock_rcu_node(rnp_root)
651  raw_spin_unlock_irqrestore_rcu_node(rnp, flags)
652  Show the state of the grace-period kthreads.