Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

Name:Print torture statistics

Proto:static void rcu_torture_stats_print(void)

Type:void

Parameter:Nothing

1405  long pipesummary[11] = {0}
1406  long batchsummary[11] = {0}
1407  rtcv_snap = ULONG_MAX
1411  for_each_possible_cpu(cpu)
1412  When i < RCU_TORTURE_PIPE_LEN + 1 cycle
1417  When i >= 0 cycle
1418  If pipesummary[i] != 0 Then Break
1422  pr_alert("%s%s ", torture_type, TORTURE_FLAG)
1423  Like KERN_CONT, pr_cont() should only be used when continuing* a line with no newline ('\n') enclosed. Otherwise it defaults* back to KERN_DEFAULT.("rtc: %p %s: %lu tfle: %d rta: %d rtaf: %d rtf: %d ", rcu_torture_current, rcu_torture_current ? "ver" : "VER", rcu_torture_current_version, list_empty - tests whether a list is empty*@head: the list to test., atomic_read( & n_rcu_torture_alloc), atomic_read( & n_rcu_torture_alloc_fail), atomic_read( & n_rcu_torture_free))
1431  Like KERN_CONT, pr_cont() should only be used when continuing* a line with no newline ('\n') enclosed. Otherwise it defaults* back to KERN_DEFAULT.("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  Like KERN_CONT, pr_cont() should only be used when continuing* a line with no newline ('\n') enclosed. Otherwise it defaults* back to KERN_DEFAULT.("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  Like KERN_CONT, pr_cont() should only be used when continuing* a line with no newline ('\n') enclosed. Otherwise it defaults* back to KERN_DEFAULT.("barrier: %ld/%ld:%ld\n", did rcu_barrier test succeed? , n_barrier_attempts, n_rcu_torture_barrier_error)
1446  pr_alert("%s%s ", torture_type, TORTURE_FLAG)
1447  If atomic_read( & n_rcu_torture_mberror) || n_rcu_torture_barrier_error || n_rcu_torture_boost_ktrerror || n_rcu_torture_boost_rterror || n_rcu_torture_boost_failure || i > 1 Then
1451  Like KERN_CONT, pr_cont() should only be used when continuing* a line with no newline ('\n') enclosed. Otherwise it defaults* back to KERN_DEFAULT.("%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  Like KERN_CONT, pr_cont() should only be used when continuing* a line with no newline ('\n') enclosed. Otherwise it defaults* back to KERN_DEFAULT.("Reader Pipe: ")
1461  When i < RCU_TORTURE_PIPE_LEN + 1 cycle Like KERN_CONT, pr_cont() should only be used when continuing* a line with no newline ('\n') enclosed. Otherwise it defaults* back to KERN_DEFAULT.(" %ld", pipesummary[i])
1463  Like KERN_CONT, pr_cont() should only be used when continuing* a line with no newline ('\n') enclosed. Otherwise it defaults* back to KERN_DEFAULT.("\n")
1465  pr_alert("%s%s ", torture_type, TORTURE_FLAG)
1466  Like KERN_CONT, pr_cont() should only be used when continuing* a line with no newline ('\n') enclosed. Otherwise it defaults* back to KERN_DEFAULT.("Reader Batch: ")
1467  When i < RCU_TORTURE_PIPE_LEN + 1 cycle Like KERN_CONT, pr_cont() should only be used when continuing* a line with no newline ('\n') enclosed. Otherwise it defaults* back to KERN_DEFAULT.(" %ld", batchsummary[i])
1469  Like KERN_CONT, pr_cont() should only be used when continuing* a line with no newline ('\n') enclosed. Otherwise it defaults* back to KERN_DEFAULT.("\n")
1471  pr_alert("%s%s ", torture_type, TORTURE_FLAG)
1472  Like KERN_CONT, pr_cont() should only be used when continuing* a line with no newline ('\n') enclosed. Otherwise it defaults* back to KERN_DEFAULT.("Free-Block Circulation: ")
1473  When i < RCU_TORTURE_PIPE_LEN + 1 cycle
1474  Like KERN_CONT, pr_cont() should only be used when continuing* a line with no newline ('\n') enclosed. Otherwise it defaults* back to KERN_DEFAULT.(" %d", atomic_read( & rcu_torture_wcount[i]))
1476  Like KERN_CONT, pr_cont() should only be used when continuing* a line with no newline ('\n') enclosed. Otherwise it defaults* back to KERN_DEFAULT.("\n")
1478  If stats Then stats()
1480  If (rtcv_snap == rcu_torture_current_version && rcu_torture_current != NULL) Then
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  pr_alert("??? 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 : run state, wtp == NULL ? - 1 : (int)task_cpu(wtp))
1495  If Not splatted && wtp Then
1497  splatted = true
1499  show_rcu_gp_kthreads()
1500  Dump the ftrace buffer, but only one time per callsite per boot.(DUMP_ALL)
1502  rtcv_snap = rcu_torture_current_version
Caller
NameDescribe
rcu_torture_statsPeriodically prints torture statistics, if periodic statistics printing* was specified via the stat_interval module parameter.
rcu_torture_cleanup