函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:Funnel-locking scheme to scalably mediate many concurrent expedited* grace-period requests. This function is invoked for the first known* expedited request for a grace period that has already been requested,* but without expediting

函数原型:static void srcu_funnel_exp_start(struct srcu_struct *ssp, struct srcu_node *snp, unsigned long s)

返回类型:void

参数:

类型参数名称
struct srcu_struct *ssp
struct srcu_node *snp
unsigned longs
603 snp != NULL循环
604  如果Given a snapshot from rcu_seq_snap(), determine whether or not a* full update-side operation has occurred.ULONG_CMP_GE(READ_ONCE(srcu_gp_seq_needed_exp), s)则返回
607  spin_lock_irqsave_rcu_node(snp, flags)
610  返回
612  WRITE_ONCE(srcu_gp_seq_needed_exp, s)
613  spin_unlock_irqrestore_rcu_node(snp, flags)
615  spin_lock_irqsave_rcu_node(ssp, flags)
616  如果ULONG_CMP_LT(srcu_gp_seq_needed_exp, s)则srcu_gp_seq_needed_exp等于s
618  spin_unlock_irqrestore_rcu_node(ssp, flags)
调用者
名称描述
srcu_funnel_gp_startFunnel-locking scheme to scalably mediate many concurrent grace-period* requests
__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