函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:synchronize_sched_expedited_wait

函数原型:static void synchronize_sched_expedited_wait(void)

返回类型:void

参数:

465  rnp_root等于Return the root node of the rcu_state structure.
468  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.("startwait"))
469  jiffies_stall等于Limit-check stall timeouts specified at boottime and runtime.
470  jiffies_start等于jiffies
472  循环
473  ret等于swait_event_timeout_exclusive(Wait for check-ins. , Like sync_rcu_preempt_exp_done(), but this function assumes the caller* doesn't hold the rcu_node's ->lock, and will acquire and release the lock* itself, jiffies_stall)
477  如果ret大于0或Like sync_rcu_preempt_exp_done(), but this function assumes the caller* doesn't hold the rcu_node's ->lock, and will acquire and release the lock* itself则返回
479  WARN_ON(ret < 0)
480  如果rcu_cpu_stall_suppress则继续下一循环
482  If so specified via sysctl, panic, yielding cleaner stall-warning output.
483  打印错误信息("INFO: %s detected expedited stalls on CPUs/tasks: {", Name of structure. )
485  ndetected等于0
487  ndetected加等于rcu_print_task_exp_stall(rnp)
491  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)
492  如果非READ_ONCE(CPUs or groups that need to check in )按位与mask的值则继续下一循环
494  ndetected自加
495  rdp等于per_cpu_ptr( & rcu_data, cpu)
496  打印标准信息(" %d-%c%c%c", cpu, "O."[!!cpu_online(cpu)], "o."[!!(Mask to apply to leaf qsmask. & complete. )], "N."[!!(Mask to apply to leaf qsmask. & ginning of each expedited GP. )])
502  打印标准信息(" } %lu jiffies s: %lu root: %#lx/%c\n", jiffies - jiffies_start, Take a ticket. , READ_ONCE(CPUs or groups that need to check in ), ".T"[!!s no such task. ])
506  如果ndetected
507  打印错误信息("blocking rcu_node structures:")
509  如果rnp恒等于rnp_root则继续下一循环
518  打印标准信息("\n")
522  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)
523  如果非READ_ONCE(CPUs or groups that need to check in )按位与mask的值则继续下一循环
525  dump_cpu_task(cpu)
528  jiffies_stall等于3乘Limit-check stall timeouts specified at boottime and runtime. 加3
调用者
名称描述
rcu_exp_wait_wakeWait for the current expedited grace period to complete, and then* wake up everyone who piggybacked on the just-completed expedited* grace period. Also update all the ->exp_seq_rq counters as needed* in order to avoid counter-wrap problems.