函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:Print torture statistics

函数原型:static void rcu_torture_stats_print(void)

返回类型:void

参数:

1405  long pipesummary[11] = {0}
1406  long batchsummary[11] = {0}
1407  rtcv_snap等于ULONG_MAX
1411  遍历可用CPU(cpu)
1412 i小于RCU_TORTURE_PIPE_LEN加1循环
1417 i大于等于0循环
1418  如果pipesummary[i]不等于0则退出
1422  打印警报信息("%s%s ", torture_type, TORTURE_FLAG)
1423  打印标准信息("rtc: %p %s: %lu tfle: %d rta: %d rtaf: %d rtf: %d ", rcu_torture_current, rcu_torture_current ? "ver" : "VER", rcu_torture_current_version, 链表为空, atomic_read( & n_rcu_torture_alloc), atomic_read( & n_rcu_torture_alloc_fail), atomic_read( & n_rcu_torture_free))
1431  打印标准信息("rtmbe: %d rtbe: %ld rtbke: %ld rtbre: %ld ", atomic_read( & n_rcu_torture_mberror), n_rcu_torture_barrier_error, n_rcu_torture_boost_ktrerror, n_rcu_torture_boost_rterror)
1436  打印标准信息("rtbf: %ld rtb: %ld nt: %ld ", n_rcu_torture_boost_failure, n_rcu_torture_boosts, atomic_long_read( & n_rcu_torture_timers))
1440  torture_onoff_stats()
1441  打印标准信息("barrier: %ld/%ld:%ld\n", did rcu_barrier test succeed? , n_barrier_attempts, n_rcu_torture_barrier_error)
1446  打印警报信息("%s%s ", torture_type, TORTURE_FLAG)
1447  如果atomic_read( & n_rcu_torture_mberror)或n_rcu_torture_barrier_errorn_rcu_torture_boost_ktrerrorn_rcu_torture_boost_rterrorn_rcu_torture_boost_failurei大于1则
1451  打印标准信息("%s", "!!! ")
1452  atomic_inc( & n_rcu_torture_error)
1453  WARN_ON_ONCE(atomic_read( & n_rcu_torture_mberror))
1454  WARN_ON_ONCE(n_rcu_torture_barrier_error)
1455  WARN_ON_ONCE(n_rcu_torture_boost_ktrerror)
1456  WARN_ON_ONCE(n_rcu_torture_boost_rterror)
1457  WARN_ON_ONCE(n_rcu_torture_boost_failure)
1458  WARN_ON_ONCE(i > 1)
1460  打印标准信息("Reader Pipe: ")
1461 i小于RCU_TORTURE_PIPE_LEN加1循环打印标准信息(" %ld", pipesummary[i])
1463  打印标准信息("\n")
1465  打印警报信息("%s%s ", torture_type, TORTURE_FLAG)
1466  打印标准信息("Reader Batch: ")
1467 i小于RCU_TORTURE_PIPE_LEN加1循环打印标准信息(" %ld", batchsummary[i])
1469  打印标准信息("\n")
1471  打印警报信息("%s%s ", torture_type, TORTURE_FLAG)
1472  打印标准信息("Free-Block Circulation: ")
1473 i小于RCU_TORTURE_PIPE_LEN加1循环
1474  打印标准信息(" %d", atomic_read( & rcu_torture_wcount[i]))
1476  打印标准信息("\n")
1478  如果statsstats()
1480  如果(rtcv_snap == rcu_torture_current_version && rcu_torture_current != NULL)则
1482  int __maybe_unused flags = 0
1483  unsigned long __maybe_unused gp_seq = 0
1485  Send along grace-period-related data for rcutorture diagnostics.
1487  srcutorture_get_gp_data(ttype, srcu_ctlp, & flags, & gp_seq)
1489  wtp等于READ_ONCE(writer_task)
1490  打印警报信息("??? Writer stall state %s(%d) g%lu f%#x ->state %#lx cpu %d\n", rcu_torture_writer_state_getname(), rcu_torture_writer_state, gp_seq, flags, wtp == NULL ? ~0UL : 任务状态, wtp == NULL ? - 1 : (int)task_cpu(wtp))
1495  如果非splattedwtp
1497  splatted = true
1499  Show the state of the grace-period kthreads.
1500  Dump the ftrace buffer, but only one time per callsite per boot.(DUMP_ALL)
1502  rtcv_snap等于rcu_torture_current_version
调用者
名称描述
rcu_torture_statsPeriodically prints torture statistics, if periodic statistics printing* was specified via the stat_interval module parameter.
rcu_torture_cleanup