Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

Name:Funnel-lock acquisition for expedited grace periods

Proto:static bool exp_funnel_lock(unsigned long s)

Type:bool

Parameter:

TypeParameterName
unsigned longs
277  rdp = per_cpu_ptr( & rcu_data, These macros fold the SMP functionality into a single CPU system())
278  rnp = This CPU's leaf of hierarchy
279  rnp_root = Return the root node of the rcu_state structure.
282  If ULONG_CMP_LT(READ_ONCE(exp_seq_rq), s) && ( rnp == rnp_root || ULONG_CMP_LT(READ_ONCE(exp_seq_rq), s)) && mutex_trylock - try to acquire the mutex, without waiting*@lock: the mutex to be acquired* Try to acquire the mutex atomically Then Go to fastpath
295  When rnp != NULL cycle
296  If Common code for work-done checking. Then Return true
300  spin_lock( & exp_lock)
301  If ULONG_CMP_GE(exp_seq_rq, s) Then
304  spin_unlock( & exp_lock)
310  Return true
312  exp_seq_rq = s
313  spin_unlock( & exp_lock)
314  trace_rcu_exp_funnel_lock(Name of structure. , is at level 0. , lowest-numbered CPU or group here. , highest-numbered CPU or group here. , Strings used in tracepoints need to be exported via the* tracing system such that tools like perf and trace-cmd can* translate the string address pointers to actual text.("nxtlvl"))
317  mutex_lock( & Serialize expedited GP. )
318  fastpath :
319  If Common code for work-done checking. Then
320  mutex_unlock - release the mutex*@lock: the mutex to be released* Unlock a mutex that has been locked by this task previously.* This function must not be used in interrupt context. Unlocking* of a not locked mutex is not allowed.
321  Return true
323  Record the start of an expedited grace period.
324  trace_rcu_exp_grace_period(Name of structure. , s, Strings used in tracepoints need to be exported via the* tracing system such that tools like perf and trace-cmd can* translate the string address pointers to actual text.("start"))
325  Return false