函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:Select the CPUs within the specified rcu_node that the upcoming* expedited grace period needs to wait for.

函数原型:static void sync_rcu_exp_select_node_cpus(struct work_struct *wp)

返回类型:void

参数:

类型参数名称
struct work_struct *wp
339  rewp等于container_of - cast a member of a structure out to the containing structure*@ptr: the pointer to the member.*@type: the type of the container struct this is embedded in.*@member: the name of the member within the struct.(wp, structrcu_exp_work, rew_work)
341  rnp等于container_of - cast a member of a structure out to the containing structure*@ptr: the pointer to the member.*@type: the type of the container struct this is embedded in.*@member: the name of the member within the struct.(rewp, structrcu_node, rew)
343  raw_spin_lock_irqsave_rcu_node(rnp, flags)
346  mask_ofl_test等于0
348  mask等于Bitmasks in an rcu_node cover the interval [grplo, grphi] of CPU IDs, and* are indexed relative to this interval rather than the global CPU ID space.* This generates the bit for a CPU in node-local masks.(rnp, cpu)
349  rdp等于per_cpu_ptr( & rcu_data, cpu)
352  如果These macros fold the SMP functionality into a single CPU system()恒等于cpu或非ginning of each grace period. 按位与mask的值则
354  mask_ofl_test或等于mask
355  否则
356  snap等于Snapshot the ->dynticks counter with full ordering so as to allow* stable comparison of this counter with past and future snapshots.
357  如果Return true if the snapshot returned from rcu_dynticks_snap()* indicates that RCU is in an extended quiescent state.mask_ofl_test或等于mask
359  否则Double-check need for IPI. 等于snap
363  mask_ofl_ipi等于CPUs or groups that need to check in 按位与mask_ofl_test的反
370  如果rcu_preempt_has_tasks(rnp)则s no such task. 等于链表后项
372  raw_spin_unlock_irqrestore_rcu_node(rnp, flags)
376  mask等于Bitmasks in an rcu_node cover the interval [grplo, grphi] of CPU IDs, and* are indexed relative to this interval rather than the global CPU ID space.* This generates the bit for a CPU in node-local masks.(rnp, cpu)
377  rdp等于per_cpu_ptr( & rcu_data, cpu)
379  retry_ipi :
380  如果Return true if the CPU corresponding to the specified rcu_data* structure has spent some time in an extended quiescent state since* rcu_dynticks_snap() returned the specified snapshot.
381  mask_ofl_test或等于mask
382  继续下一循环
384  如果get_cpu()恒等于cpu
385  put_cpu()
386  继续下一循环
388  ret等于smp_call_function_single(cpu, SPDX-License-Identifier: GPL-2.0+ , NULL, 0)
389  put_cpu()
390  如果非ret
391  mask_ofl_ipi与等于mask的反
392  继续下一循环
395  raw_spin_lock_irqsave_rcu_node(rnp, flags)
396  如果ginning of each grace period. 按位与maskCPUs or groups that need to check in 按位与mask
399  raw_spin_unlock_irqrestore_rcu_node(rnp, flags)
400  trace_rcu_exp_grace_period(Name of structure. , Return then value that expedited-grace-period counter will have* at the end of the current grace period., 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.("selectofl"))
401  schedule_timeout_uninterruptible(1)
402  转到:retry_ipi
405  如果非CPUs or groups that need to check in 按位与mask的值则mask_ofl_ipi与等于mask的反
407  raw_spin_unlock_irqrestore_rcu_node(rnp, flags)
410  mask_ofl_test或等于mask_ofl_ipi
411  如果mask_ofl_testReport expedited quiescent state for multiple CPUs, all covered by the* specified leaf rcu_node structure.
调用者
名称描述
sync_rcu_exp_select_cpusSelect the nodes that the upcoming expedited grace period needs* to wait for.