Function report |
Source Code:kernel\rcu\rcutorture.c |
Create Date:2022-07-28 10:22:22 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:Carry out call_rcu() forward-progress testing.
Proto:static void rcu_torture_fwd_prog_cr(void)
Type:void
Parameter:Nothing
1859 | If READ_ONCE(rcu_fwd_emergency_stop) Then Return |
1861 | If Not call Then Return |
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 | When i < ARRAY_SIZE - get the number of elements in array @arr*@arr: array to be sized(n_launders_hist) cycle n_launders = 0 |
1876 | cver = READ_ONCE(rcu_torture_current_version) |
1877 | gps = get_gp_seq() |
1878 | rcu_launder_gp_seq_start = gps |
1883 | rfcp = READ_ONCE(rcu_fwd_cb_head) |
1884 | rfcpn = NULL |
1887 | If rfcpn Then |
1888 | If rfc_gps >= This many CB invocations to count. && ++n_max_gps >= Number of counted CBs. Then Break |
1891 | rcu_fwd_cb_head = rfcpn |
1892 | n_launders++ |
1893 | n_launders_sa++ |
1894 | Else |
1895 | rfcp = Allocation memory |
1896 | If WARN_ON_ONCE(!rfcp) Then |
1897 | schedule_timeout_interruptible(1) |
1898 | Continue |
1900 | n_max_cbs++ |
1901 | n_launders_sa = 0 |
1902 | rfc_gps = 0 |
1906 | If tick_nohz_full_enabled() Then |
1913 | n_launders_cb_snap = READ_ONCE(n_launders_cb) |
1914 | cver = READ_ONCE(rcu_torture_current_version) - cver |
1915 | gps = rcutorture_seq_diff(get_gp_seq(), gps) |
1916 | cb_barrier() |
1921 | WARN_ON(n_max_gps < Number of counted CBs. ) |
1922 | pr_alert("%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) |
Name | Describe |
---|---|
rcu_torture_fwd_prog | Carry out grace-period forward-progress testing. |
Source code conversion tool public plug-in interface | X |
---|---|
Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |