函数逻辑报告 |
Source Code:kernel\rcu\rcutorture.c |
Create Date:2022-07-27 11:22:41 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:Carry out call_rcu() forward-progress testing.
函数原型:static void rcu_torture_fwd_prog_cr(void)
返回类型:void
参数:无
1859 | 如果READ_ONCE(rcu_fwd_emergency_stop)则返回 |
1861 | 如果非call则返回 |
1865 | WRITE_ONCE(Short rcu_torture_delay() delays. , true) |
1866 | sync() |
1867 | WRITE_ONCE(rcu_fwd_startat, jiffies) |
1869 | n_launders等于0 |
1870 | n_launders_cb等于0 |
1871 | n_launders_sa等于0 |
1872 | n_max_cbs等于0 |
1873 | n_max_gps等于0 |
1874 | 以i小于ARRAY_SIZE - get the number of elements in array @arr*@arr: array to be sized(n_launders_hist)循环n_launders等于0 |
1877 | gps等于get_gp_seq() |
1878 | rcu_launder_gp_seq_start等于gps |
1883 | rfcp等于READ_ONCE(rcu_fwd_cb_head) |
1884 | rfcpn = NULL |
1887 | 如果rfcpn则 |
1888 | 如果rfc_gps大于等于This many CB invocations to count. 且n_max_gps先自加大于等于Number of counted CBs. 则退出 |
1891 | rcu_fwd_cb_head等于rfcpn |
1892 | n_launders自加 |
1893 | n_launders_sa自加 |
1894 | 否则 |
1896 | 如果WARN_ON_ONCE(!rfcp)则 |
1897 | schedule_timeout_interruptible(1) |
1898 | 继续下一循环 |
1900 | n_max_cbs自加 |
1901 | n_launders_sa等于0 |
1902 | rfc_gps等于0 |
1906 | 如果tick_nohz_full_enabled()则 |
1915 | gps等于rcutorture_seq_diff(get_gp_seq(), gps) |
1916 | cb_barrier() |
1921 | WARN_ON(n_max_gps < Number of counted CBs. ) |
1922 | 打印警报信息("%s Duration %lu barrier: %lu pending %ld n_launders: %ld n_launders_sa: %ld n_max_gps: %ld n_max_cbs: %ld cver %ld gps %ld\n", __func__, stoppedat - rcu_fwd_startat, jiffies - stoppedat, n_launders + n_max_cbs - n_launders_cb_snap, n_launders, n_launders_sa, n_max_gps, n_max_cbs, cver, gps) |
1928 | rcu_torture_fwd_cb_hist() |
1932 | WRITE_ONCE(Short rcu_torture_delay() delays. , false) |
名称 | 描述 |
---|---|
rcu_torture_fwd_prog | Carry out grace-period forward-progress testing. |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |