函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:Perform RCU core processing work for the current CPU.

函数原型:static __latent_entropy void rcu_core(void)

返回类型:void

参数:

2374  rdp等于raw_cpu_ptr( & rcu_data)
2375  rnp等于This CPU's leaf of hierarchy
2376  offloaded等于IS_ENABLED(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'y' or 'm',* 0 otherwise.(CONFIG_RCU_NOCB_CPU)且Is the specified rcu_segcblist offloaded?
2379  如果cpu_is_offline(当前cpu ID())则返回
2381  Tracepoint for start/end markers used for utilization calculations.* By convention, the string is of the following forms:* "Start " -- Mark the start of the specified activity,* such as "context switch". Nesting is permitted.
2382  WARN_ON_ONCE(!CPU online at least once. )
2385  如果非抢占计数值按位与PREEMPT_MASK的值则
2386  rcu_preempt_deferred_qs(当前进程)
2387  否则如果rcu_preempt_need_deferred_qs(当前进程)则
2388  设置进程需要被调度出去的标志
2389  设置CPU的内核抢占
2393  Check to see if there is a new grace period of which this CPU* is not yet aware, and if so, set up local rcu_data state for it.* Otherwise, see if this CPU has just passed through its first
2396  如果非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.Is the specified rcu_segcblist enabled, for example, not corresponding* to an offline CPU?且非offloaded
2398  local_irq_save(flags)
2399  如果非Are all segments following the specified segment of the specified* rcu_segcblist structure empty of callbacks? (The specified* segment might well contain callbacks.)Similar to rcu_accelerate_cbs(), but does not require that the leaf* rcu_node structure's ->lock be held
2401  local_irq_restore(flags)
2404  This function checks for grace-period requests that fail to motivate* RCU to come out of its idle mode.
2407  如果非offloadedDoes the specified rcu_segcblist structure contain callbacks that* are ready to be invoked?此条件成立可能性大(为编译器优化)(READ_ONCE(The rcu_scheduler_fully_active variable transitions from zero to one* during the early_initcall() processing, which is after the scheduler* is capable of creating new tasks))则Invoke any RCU callbacks that have made it to the end of their grace* period. Thottle as specified by rdp->blimit.
2412  do_nocb_deferred_wakeup(rdp)
2413  Tracepoint for start/end markers used for utilization calculations.* By convention, the string is of the following forms:* "Start " -- Mark the start of the specified activity,* such as "context switch". Nesting is permitted.
调用者
名称描述
rcu_core_si
rcu_cpu_kthreadPer-CPU kernel thread that invokes RCU callbacks. This replaces* the RCU softirq used in configurations of RCU that do not support RCU* priority boosting.