* Re: [PATCH RFC 14/14] rcu: Remove checking of per-cpu blocked list against the node list
[not found] <20260103002343.6599-15-joelagnelf@nvidia.com>
@ 2026-01-10 1:33 ` kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-01-10 1:33 UTC (permalink / raw)
To: Joel Fernandes; +Cc: llvm, oe-kbuild-all
Hi Joel,
[This is a private test report for your RFC patch.]
kernel test robot noticed the following build warnings:
[auto build test WARNING on f8f9c1f4d0c7a64600e2ca312dec824a0bc2f1da]
url: https://github.com/intel-lab-lkp/linux/commits/Joel-Fernandes/rcu-Add-WARN_ON_ONCE-for-blocked-flag-invariant-in-exit_rcu/20260103-083616
base: f8f9c1f4d0c7a64600e2ca312dec824a0bc2f1da
patch link: https://lore.kernel.org/r/20260103002343.6599-15-joelagnelf%40nvidia.com
patch subject: [PATCH RFC 14/14] rcu: Remove checking of per-cpu blocked list against the node list
config: s390-allmodconfig (https://download.01.org/0day-ci/archive/20260110/202601100952.derSl9yA-lkp@intel.com/config)
compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260110/202601100952.derSl9yA-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202601100952.derSl9yA-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> kernel/rcu/tree.c:1813:22: warning: unused variable 't_verify' [-Wunused-variable]
1813 | struct task_struct *t_verify;
| ^~~~~~~~
>> kernel/rcu/tree.c:1814:6: warning: unused variable 'cpu_verify' [-Wunused-variable]
1814 | int cpu_verify;
| ^~~~~~~~~~
>> kernel/rcu/tree.c:1815:6: warning: unused variable 'rnp_count' [-Wunused-variable]
1815 | int rnp_count;
| ^~~~~~~~~
>> kernel/rcu/tree.c:1816:6: warning: unused variable 'rdp_total' [-Wunused-variable]
1816 | int rdp_total;
| ^~~~~~~~~
>> kernel/rcu/tree.c:1817:19: warning: unused variable 'rdp_cpu' [-Wunused-variable]
1817 | struct rcu_data *rdp_cpu;
| ^~~~~~~
>> kernel/rcu/tree.c:1818:22: warning: unused variable 't_rdp' [-Wunused-variable]
1818 | struct task_struct *t_rdp;
| ^~~~~
6 warnings generated.
vim +/t_verify +1813 kernel/rcu/tree.c
988f569ae041cc kernel/rcu/tree.c Uladzislau Rezki (Sony 2024-03-08 1799)
64db4cfff99c04 kernel/rcutree.c Paul E. McKenney 2008-12-18 1800 /*
45fed3e7cfb400 kernel/rcu/tree.c Paul E. McKenney 2015-11-07 1801 * Initialize a new grace period. Return false if no grace period required.
64db4cfff99c04 kernel/rcutree.c Paul E. McKenney 2008-12-18 1802 */
f74126dcbcbffe kernel/rcu/tree.c Paul E. McKenney 2021-06-07 1803 static noinline_for_stack bool rcu_gp_init(void)
64db4cfff99c04 kernel/rcutree.c Paul E. McKenney 2008-12-18 1804 {
ec2c29765a4ab1 kernel/rcu/tree.c Paul E. McKenney 2018-05-07 1805 unsigned long flags;
0aa04b055e71bd kernel/rcu/tree.c Paul E. McKenney 2015-01-23 1806 unsigned long oldmask;
ec2c29765a4ab1 kernel/rcu/tree.c Paul E. McKenney 2018-05-07 1807 unsigned long mask;
b3dbec76e5334f kernel/rcutree.c Paul E. McKenney 2012-06-18 1808 struct rcu_data *rdp;
336a4f6c451e48 kernel/rcu/tree.c Paul E. McKenney 2018-07-03 1809 struct rcu_node *rnp = rcu_get_root();
988f569ae041cc kernel/rcu/tree.c Uladzislau Rezki (Sony 2024-03-08 1810) bool start_new_poll;
4aa6e94cf90c0d kernel/rcu/tree.c Joel Fernandes 2025-03-24 1811 unsigned long old_gp_seq;
4babf56e07e6c2 kernel/rcu/tree.c Joel Fernandes 2026-01-02 1812 #ifdef CONFIG_RCU_PER_CPU_BLOCKED_LISTS
4babf56e07e6c2 kernel/rcu/tree.c Joel Fernandes 2026-01-02 @1813 struct task_struct *t_verify;
4babf56e07e6c2 kernel/rcu/tree.c Joel Fernandes 2026-01-02 @1814 int cpu_verify;
4babf56e07e6c2 kernel/rcu/tree.c Joel Fernandes 2026-01-02 @1815 int rnp_count;
4babf56e07e6c2 kernel/rcu/tree.c Joel Fernandes 2026-01-02 @1816 int rdp_total;
4babf56e07e6c2 kernel/rcu/tree.c Joel Fernandes 2026-01-02 @1817 struct rcu_data *rdp_cpu;
4babf56e07e6c2 kernel/rcu/tree.c Joel Fernandes 2026-01-02 @1818 struct task_struct *t_rdp;
4babf56e07e6c2 kernel/rcu/tree.c Joel Fernandes 2026-01-02 1819 #endif
b3dbec76e5334f kernel/rcutree.c Paul E. McKenney 2012-06-18 1820
9cbc5b97029bff kernel/rcu/tree.c Paul E. McKenney 2018-07-05 1821 WRITE_ONCE(rcu_state.gp_activity, jiffies);
2a67e741bbbc02 kernel/rcu/tree.c Peter Zijlstra 2015-10-08 1822 raw_spin_lock_irq_rcu_node(rnp);
62bb24c4b022b9 kernel/rcu/tree.c Paul E. McKenney 2024-03-07 1823 if (!rcu_state.gp_flags) {
f7be82093952ee kernel/rcutree.c Paul E. McKenney 2013-08-08 1824 /* Spurious wakeup, tell caller to go back to sleep. */
67c583a7de3433 kernel/rcu/tree.c Boqun Feng 2015-12-29 1825 raw_spin_unlock_irq_rcu_node(rnp);
45fed3e7cfb400 kernel/rcu/tree.c Paul E. McKenney 2015-11-07 1826 return false;
f7be82093952ee kernel/rcutree.c Paul E. McKenney 2013-08-08 1827 }
9cbc5b97029bff kernel/rcu/tree.c Paul E. McKenney 2018-07-05 1828 WRITE_ONCE(rcu_state.gp_flags, 0); /* Clear all flags: New GP. */
b3dbec76e5334f kernel/rcutree.c Paul E. McKenney 2012-06-18 1829
de8e87305a1ae8 kernel/rcu/tree.c Paul E. McKenney 2018-07-03 1830 if (WARN_ON_ONCE(rcu_gp_in_progress())) {
f7be82093952ee kernel/rcutree.c Paul E. McKenney 2013-08-08 1831 /*
f7be82093952ee kernel/rcutree.c Paul E. McKenney 2013-08-08 1832 * Grace period already in progress, don't start another.
f7be82093952ee kernel/rcutree.c Paul E. McKenney 2013-08-08 1833 * Not supposed to be able to happen.
f7be82093952ee kernel/rcutree.c Paul E. McKenney 2013-08-08 1834 */
67c583a7de3433 kernel/rcu/tree.c Boqun Feng 2015-12-29 1835 raw_spin_unlock_irq_rcu_node(rnp);
45fed3e7cfb400 kernel/rcu/tree.c Paul E. McKenney 2015-11-07 1836 return false;
64db4cfff99c04 kernel/rcutree.c Paul E. McKenney 2008-12-18 1837 }
b32e9eb6ad2957 kernel/rcutree.c Paul E. McKenney 2009-11-12 1838
64db4cfff99c04 kernel/rcutree.c Paul E. McKenney 2008-12-18 1839 /* Advance to a new grace period and initialize state. */
ad3832e974eba3 kernel/rcu/tree.c Paul E. McKenney 2018-07-03 1840 record_gp_stall_check_time();
85aad7cc417877 kernel/rcu/tree.c Paul E. McKenney 2024-12-12 1841 /*
85aad7cc417877 kernel/rcu/tree.c Paul E. McKenney 2024-12-12 1842 * A new wait segment must be started before gp_seq advanced, so
85aad7cc417877 kernel/rcu/tree.c Paul E. McKenney 2024-12-12 1843 * that previous gp waiters won't observe the new gp_seq.
85aad7cc417877 kernel/rcu/tree.c Paul E. McKenney 2024-12-12 1844 */
85aad7cc417877 kernel/rcu/tree.c Paul E. McKenney 2024-12-12 1845 start_new_poll = rcu_sr_normal_gp_init();
ff3bb6f4d06247 kernel/rcu/tree.c Paul E. McKenney 2018-05-01 1846 /* Record GP times before starting GP, hence rcu_seq_start(). */
4aa6e94cf90c0d kernel/rcu/tree.c Joel Fernandes 2025-03-24 1847 old_gp_seq = rcu_state.gp_seq;
30a7806adab5f6 kernel/rcu/tree.c Joel Fernandes 2025-07-15 1848 /*
30a7806adab5f6 kernel/rcu/tree.c Joel Fernandes 2025-07-15 1849 * Critical ordering: rcu_seq_start() must happen BEFORE the CPU hotplug
30a7806adab5f6 kernel/rcu/tree.c Joel Fernandes 2025-07-15 1850 * scan below. Otherwise we risk a race where a newly onlining CPU could
30a7806adab5f6 kernel/rcu/tree.c Joel Fernandes 2025-07-15 1851 * be missed by the current grace period, potentially leading to
30a7806adab5f6 kernel/rcu/tree.c Joel Fernandes 2025-07-15 1852 * use-after-free errors. For a detailed explanation of this race, see
30a7806adab5f6 kernel/rcu/tree.c Joel Fernandes 2025-07-15 1853 * Documentation/RCU/Design/Requirements/Requirements.rst in the
30a7806adab5f6 kernel/rcu/tree.c Joel Fernandes 2025-07-15 1854 * "Hotplug CPU" section.
186779c0364680 kernel/rcu/tree.c Joel Fernandes 2025-07-15 1855 *
186779c0364680 kernel/rcu/tree.c Joel Fernandes 2025-07-15 1856 * Also note that the root rnp's gp_seq is kept separate from, and lags,
186779c0364680 kernel/rcu/tree.c Joel Fernandes 2025-07-15 1857 * the rcu_state's gp_seq, for a reason. See the Quick-Quiz on
186779c0364680 kernel/rcu/tree.c Joel Fernandes 2025-07-15 1858 * Single-node systems for more details (in Data-Structures.rst).
30a7806adab5f6 kernel/rcu/tree.c Joel Fernandes 2025-07-15 1859 */
9cbc5b97029bff kernel/rcu/tree.c Paul E. McKenney 2018-07-05 1860 rcu_seq_start(&rcu_state.gp_seq);
4aa6e94cf90c0d kernel/rcu/tree.c Joel Fernandes 2025-03-24 1861 /* Ensure that rcu_seq_done_exact() guardband doesn't give false positives. */
4aa6e94cf90c0d kernel/rcu/tree.c Joel Fernandes 2025-03-24 1862 WARN_ON_ONCE(IS_ENABLED(CONFIG_PROVE_RCU) &&
4aa6e94cf90c0d kernel/rcu/tree.c Joel Fernandes 2025-03-24 1863 rcu_seq_done_exact(&old_gp_seq, rcu_seq_snap(&rcu_state.gp_seq)));
4aa6e94cf90c0d kernel/rcu/tree.c Joel Fernandes 2025-03-24 1864
62ae19511f1efb kernel/rcu/tree.c Paul E. McKenney 2020-03-21 1865 ASSERT_EXCLUSIVE_WRITER(rcu_state.gp_seq);
9cbc5b97029bff kernel/rcu/tree.c Paul E. McKenney 2018-07-05 1866 trace_rcu_grace_period(rcu_state.name, rcu_state.gp_seq, TPS("start"));
bf95b2bc3e42f1 kernel/rcu/tree.c Paul E. McKenney 2022-04-13 1867 rcu_poll_gp_seq_start(&rcu_state.gp_seq_polled_snap);
67c583a7de3433 kernel/rcu/tree.c Boqun Feng 2015-12-29 1868 raw_spin_unlock_irq_rcu_node(rnp);
64db4cfff99c04 kernel/rcutree.c Paul E. McKenney 2008-12-18 1869
988f569ae041cc kernel/rcu/tree.c Uladzislau Rezki (Sony 2024-03-08 1870) /*
988f569ae041cc kernel/rcu/tree.c Uladzislau Rezki (Sony 2024-03-08 1871) * The "start_new_poll" is set to true, only when this GP is not able
988f569ae041cc kernel/rcu/tree.c Uladzislau Rezki (Sony 2024-03-08 1872) * to handle anything and there are outstanding users. It happens when
988f569ae041cc kernel/rcu/tree.c Uladzislau Rezki (Sony 2024-03-08 1873) * the rcu_sr_normal_gp_init() function was not able to insert a dummy
988f569ae041cc kernel/rcu/tree.c Uladzislau Rezki (Sony 2024-03-08 1874) * separator to the llist, because there were no left any dummy-nodes.
988f569ae041cc kernel/rcu/tree.c Uladzislau Rezki (Sony 2024-03-08 1875) *
988f569ae041cc kernel/rcu/tree.c Uladzislau Rezki (Sony 2024-03-08 1876) * Number of dummy-nodes is fixed, it could be that we are run out of
988f569ae041cc kernel/rcu/tree.c Uladzislau Rezki (Sony 2024-03-08 1877) * them, if so we start a new pool request to repeat a try. It is rare
988f569ae041cc kernel/rcu/tree.c Uladzislau Rezki (Sony 2024-03-08 1878) * and it means that a system is doing a slow processing of callbacks.
988f569ae041cc kernel/rcu/tree.c Uladzislau Rezki (Sony 2024-03-08 1879) */
988f569ae041cc kernel/rcu/tree.c Uladzislau Rezki (Sony 2024-03-08 1880) if (start_new_poll)
988f569ae041cc kernel/rcu/tree.c Uladzislau Rezki (Sony 2024-03-08 1881) (void) start_poll_synchronize_rcu();
988f569ae041cc kernel/rcu/tree.c Uladzislau Rezki (Sony 2024-03-08 1882)
0aa04b055e71bd kernel/rcu/tree.c Paul E. McKenney 2015-01-23 1883 /*
f37599e6f06da4 kernel/rcu/tree.c Joel Fernandes (Google 2020-08-07 1884) * Apply per-leaf buffered online and offline operations to
f37599e6f06da4 kernel/rcu/tree.c Joel Fernandes (Google 2020-08-07 1885) * the rcu_node tree. Note that this new grace period need not
f37599e6f06da4 kernel/rcu/tree.c Joel Fernandes (Google 2020-08-07 1886) * wait for subsequent online CPUs, and that RCU hooks in the CPU
f37599e6f06da4 kernel/rcu/tree.c Joel Fernandes (Google 2020-08-07 1887) * offlining path, when combined with checks in this function,
f37599e6f06da4 kernel/rcu/tree.c Joel Fernandes (Google 2020-08-07 1888) * will handle CPUs that are currently going offline or that will
f37599e6f06da4 kernel/rcu/tree.c Joel Fernandes (Google 2020-08-07 1889) * go offline later. Please also refer to "Hotplug CPU" section
f37599e6f06da4 kernel/rcu/tree.c Joel Fernandes (Google 2020-08-07 1890) * of RCU's Requirements documentation.
0aa04b055e71bd kernel/rcu/tree.c Paul E. McKenney 2015-01-23 1891 */
683954e55c9814 kernel/rcu/tree.c Neeraj Upadhyay 2020-11-16 1892 WRITE_ONCE(rcu_state.gp_state, RCU_GP_ONOFF);
82980b1622d970 kernel/rcu/tree.c David Woodhouse 2021-02-16 1893 /* Exclude CPU hotplug operations. */
aedf4ba984168a kernel/rcu/tree.c Paul E. McKenney 2018-07-04 1894 rcu_for_each_leaf_node(rnp) {
51cace13729f89 kernel/rcu/tree.c Paul E. McKenney 2024-05-08 1895 local_irq_disable();
5d71c2b53f1790 kernel/rcu/tree.c Joel Fernandes 2025-07-15 1896 /*
5d71c2b53f1790 kernel/rcu/tree.c Joel Fernandes 2025-07-15 1897 * Serialize with CPU offline. See Requirements.rst > Hotplug CPU >
5d71c2b53f1790 kernel/rcu/tree.c Joel Fernandes 2025-07-15 1898 * Concurrent Quiescent State Reporting for Offline CPUs.
5d71c2b53f1790 kernel/rcu/tree.c Joel Fernandes 2025-07-15 1899 */
82980b1622d970 kernel/rcu/tree.c David Woodhouse 2021-02-16 1900 arch_spin_lock(&rcu_state.ofl_lock);
82980b1622d970 kernel/rcu/tree.c David Woodhouse 2021-02-16 1901 raw_spin_lock_rcu_node(rnp);
899b2d63bf635c kernel/rcu/tree.c Joel Fernandes 2026-01-02 1902 rcu_promote_blocked_tasks(rnp);
0aa04b055e71bd kernel/rcu/tree.c Paul E. McKenney 2015-01-23 1903 if (rnp->qsmaskinit == rnp->qsmaskinitnext &&
0aa04b055e71bd kernel/rcu/tree.c Paul E. McKenney 2015-01-23 1904 !rnp->wait_blkd_tasks) {
0aa04b055e71bd kernel/rcu/tree.c Paul E. McKenney 2015-01-23 1905 /* Nothing to do on this leaf rcu_node structure. */
82980b1622d970 kernel/rcu/tree.c David Woodhouse 2021-02-16 1906 raw_spin_unlock_rcu_node(rnp);
82980b1622d970 kernel/rcu/tree.c David Woodhouse 2021-02-16 1907 arch_spin_unlock(&rcu_state.ofl_lock);
51cace13729f89 kernel/rcu/tree.c Paul E. McKenney 2024-05-08 1908 local_irq_enable();
0aa04b055e71bd kernel/rcu/tree.c Paul E. McKenney 2015-01-23 1909 continue;
0aa04b055e71bd kernel/rcu/tree.c Paul E. McKenney 2015-01-23 1910 }
0aa04b055e71bd kernel/rcu/tree.c Paul E. McKenney 2015-01-23 1911
0aa04b055e71bd kernel/rcu/tree.c Paul E. McKenney 2015-01-23 1912 /* Record old state, apply changes to ->qsmaskinit field. */
0aa04b055e71bd kernel/rcu/tree.c Paul E. McKenney 2015-01-23 1913 oldmask = rnp->qsmaskinit;
0aa04b055e71bd kernel/rcu/tree.c Paul E. McKenney 2015-01-23 1914 rnp->qsmaskinit = rnp->qsmaskinitnext;
0aa04b055e71bd kernel/rcu/tree.c Paul E. McKenney 2015-01-23 1915
0aa04b055e71bd kernel/rcu/tree.c Paul E. McKenney 2015-01-23 1916 /* If zero-ness of ->qsmaskinit changed, propagate up tree. */
0aa04b055e71bd kernel/rcu/tree.c Paul E. McKenney 2015-01-23 1917 if (!oldmask != !rnp->qsmaskinit) {
962aff03c315b5 kernel/rcu/tree.c Paul E. McKenney 2018-05-02 1918 if (!oldmask) { /* First online CPU for rcu_node. */
962aff03c315b5 kernel/rcu/tree.c Paul E. McKenney 2018-05-02 1919 if (!rnp->wait_blkd_tasks) /* Ever offline? */
0aa04b055e71bd kernel/rcu/tree.c Paul E. McKenney 2015-01-23 1920 rcu_init_new_rnp(rnp);
962aff03c315b5 kernel/rcu/tree.c Paul E. McKenney 2018-05-02 1921 } else if (rcu_preempt_has_tasks(rnp)) {
962aff03c315b5 kernel/rcu/tree.c Paul E. McKenney 2018-05-02 1922 rnp->wait_blkd_tasks = true; /* blocked tasks */
962aff03c315b5 kernel/rcu/tree.c Paul E. McKenney 2018-05-02 1923 } else { /* Last offline CPU and can propagate. */
0aa04b055e71bd kernel/rcu/tree.c Paul E. McKenney 2015-01-23 1924 rcu_cleanup_dead_rnp(rnp);
0aa04b055e71bd kernel/rcu/tree.c Paul E. McKenney 2015-01-23 1925 }
962aff03c315b5 kernel/rcu/tree.c Paul E. McKenney 2018-05-02 1926 }
0aa04b055e71bd kernel/rcu/tree.c Paul E. McKenney 2015-01-23 1927
0aa04b055e71bd kernel/rcu/tree.c Paul E. McKenney 2015-01-23 1928 /*
0aa04b055e71bd kernel/rcu/tree.c Paul E. McKenney 2015-01-23 1929 * If all waited-on tasks from prior grace period are
0aa04b055e71bd kernel/rcu/tree.c Paul E. McKenney 2015-01-23 1930 * done, and if all this rcu_node structure's CPUs are
0aa04b055e71bd kernel/rcu/tree.c Paul E. McKenney 2015-01-23 1931 * still offline, propagate up the rcu_node tree and
0aa04b055e71bd kernel/rcu/tree.c Paul E. McKenney 2015-01-23 1932 * clear ->wait_blkd_tasks. Otherwise, if one of this
0aa04b055e71bd kernel/rcu/tree.c Paul E. McKenney 2015-01-23 1933 * rcu_node structure's CPUs has since come back online,
962aff03c315b5 kernel/rcu/tree.c Paul E. McKenney 2018-05-02 1934 * simply clear ->wait_blkd_tasks.
0aa04b055e71bd kernel/rcu/tree.c Paul E. McKenney 2015-01-23 1935 */
0aa04b055e71bd kernel/rcu/tree.c Paul E. McKenney 2015-01-23 1936 if (rnp->wait_blkd_tasks &&
962aff03c315b5 kernel/rcu/tree.c Paul E. McKenney 2018-05-02 1937 (!rcu_preempt_has_tasks(rnp) || rnp->qsmaskinit)) {
0aa04b055e71bd kernel/rcu/tree.c Paul E. McKenney 2015-01-23 1938 rnp->wait_blkd_tasks = false;
962aff03c315b5 kernel/rcu/tree.c Paul E. McKenney 2018-05-02 1939 if (!rnp->qsmaskinit)
0aa04b055e71bd kernel/rcu/tree.c Paul E. McKenney 2015-01-23 1940 rcu_cleanup_dead_rnp(rnp);
0aa04b055e71bd kernel/rcu/tree.c Paul E. McKenney 2015-01-23 1941 }
0aa04b055e71bd kernel/rcu/tree.c Paul E. McKenney 2015-01-23 1942
82980b1622d970 kernel/rcu/tree.c David Woodhouse 2021-02-16 1943 raw_spin_unlock_rcu_node(rnp);
82980b1622d970 kernel/rcu/tree.c David Woodhouse 2021-02-16 1944 arch_spin_unlock(&rcu_state.ofl_lock);
51cace13729f89 kernel/rcu/tree.c Paul E. McKenney 2024-05-08 1945 local_irq_enable();
0aa04b055e71bd kernel/rcu/tree.c Paul E. McKenney 2015-01-23 1946 }
22212332c1f37d kernel/rcu/tree.c Paul E. McKenney 2018-07-03 1947 rcu_gp_slow(gp_preinit_delay); /* Races with CPU hotplug. */
64db4cfff99c04 kernel/rcutree.c Paul E. McKenney 2008-12-18 1948
64db4cfff99c04 kernel/rcutree.c Paul E. McKenney 2008-12-18 1949 /*
b835db1f9cadaf kernel/rcutree.c Paul E. McKenney 2009-09-08 1950 * Set the quiescent-state-needed bits in all the rcu_node
9cbc5b97029bff kernel/rcu/tree.c Paul E. McKenney 2018-07-05 1951 * structures for all currently online CPUs in breadth-first
9cbc5b97029bff kernel/rcu/tree.c Paul E. McKenney 2018-07-05 1952 * order, starting from the root rcu_node structure, relying on the
9cbc5b97029bff kernel/rcu/tree.c Paul E. McKenney 2018-07-05 1953 * layout of the tree within the rcu_state.node[] array. Note that
9cbc5b97029bff kernel/rcu/tree.c Paul E. McKenney 2018-07-05 1954 * other CPUs will access only the leaves of the hierarchy, thus
9cbc5b97029bff kernel/rcu/tree.c Paul E. McKenney 2018-07-05 1955 * seeing that no grace period is in progress, at least until the
9cbc5b97029bff kernel/rcu/tree.c Paul E. McKenney 2018-07-05 1956 * corresponding leaf node has been initialized.
7fdefc10e1d730 kernel/rcutree.c Paul E. McKenney 2012-06-22 1957 *
7fdefc10e1d730 kernel/rcutree.c Paul E. McKenney 2012-06-22 1958 * The grace period cannot complete until the initialization
7fdefc10e1d730 kernel/rcutree.c Paul E. McKenney 2012-06-22 1959 * process finishes, because this kthread handles both.
64db4cfff99c04 kernel/rcutree.c Paul E. McKenney 2008-12-18 1960 */
683954e55c9814 kernel/rcu/tree.c Neeraj Upadhyay 2020-11-16 1961 WRITE_ONCE(rcu_state.gp_state, RCU_GP_INIT);
aedf4ba984168a kernel/rcu/tree.c Paul E. McKenney 2018-07-04 1962 rcu_for_each_node_breadth_first(rnp) {
22212332c1f37d kernel/rcu/tree.c Paul E. McKenney 2018-07-03 1963 rcu_gp_slow(gp_init_delay);
ec2c29765a4ab1 kernel/rcu/tree.c Paul E. McKenney 2018-05-07 1964 raw_spin_lock_irqsave_rcu_node(rnp, flags);
da1df50d16171f kernel/rcu/tree.c Paul E. McKenney 2018-07-03 1965 rdp = this_cpu_ptr(&rcu_data);
899b2d63bf635c kernel/rcu/tree.c Joel Fernandes 2026-01-02 1966 rcu_promote_blocked_tasks(rnp);
81ab59a3ad8656 kernel/rcu/tree.c Paul E. McKenney 2018-07-03 1967 rcu_preempt_check_blocked_tasks(rnp);
49e291266d0920 kernel/rcutree.c Paul E. McKenney 2009-09-18 1968 rnp->qsmask = rnp->qsmaskinit;
9cbc5b97029bff kernel/rcu/tree.c Paul E. McKenney 2018-07-05 1969 WRITE_ONCE(rnp->gp_seq, rcu_state.gp_seq);
d09b62dfa33644 kernel/rcutree.c Paul E. McKenney 2009-11-02 1970 if (rnp == rdp->mynode)
c7e48f7ba38201 kernel/rcu/tree.c Paul E. McKenney 2018-07-03 1971 (void)__note_gp_changes(rnp, rdp);
27f4d28057adf9 kernel/rcutree.c Paul E. McKenney 2011-02-07 1972 rcu_preempt_boost_start_gp(rnp);
9cbc5b97029bff kernel/rcu/tree.c Paul E. McKenney 2018-07-05 1973 trace_rcu_grace_period_init(rcu_state.name, rnp->gp_seq,
d4c08f2ac311a3 kernel/rcutree.c Paul E. McKenney 2011-06-25 1974 rnp->level, rnp->grplo,
d4c08f2ac311a3 kernel/rcutree.c Paul E. McKenney 2011-06-25 1975 rnp->grphi, rnp->qsmask);
5d71c2b53f1790 kernel/rcu/tree.c Joel Fernandes 2025-07-15 1976 /*
5d71c2b53f1790 kernel/rcu/tree.c Joel Fernandes 2025-07-15 1977 * Quiescent states for tasks on any now-offline CPUs. Since we
5d71c2b53f1790 kernel/rcu/tree.c Joel Fernandes 2025-07-15 1978 * released the ofl and rnp lock before this loop, CPUs might
5d71c2b53f1790 kernel/rcu/tree.c Joel Fernandes 2025-07-15 1979 * have gone offline and we have to report QS on their behalf.
5d71c2b53f1790 kernel/rcu/tree.c Joel Fernandes 2025-07-15 1980 * See Requirements.rst > Hotplug CPU > Concurrent QS Reporting.
5d71c2b53f1790 kernel/rcu/tree.c Joel Fernandes 2025-07-15 1981 */
ec2c29765a4ab1 kernel/rcu/tree.c Paul E. McKenney 2018-05-07 1982 mask = rnp->qsmask & ~rnp->qsmaskinitnext;
f2e2df59786d7b kernel/rcu/tree.c Paul E. McKenney 2018-05-15 1983 rnp->rcu_gp_init_mask = mask;
f378d76282efe0 kernel/rcu/tree.c Joel Fernandes 2026-01-02 1984 if ((mask || rnp->wait_blkd_tasks) && rcu_is_leaf_node(rnp)) {
f378d76282efe0 kernel/rcu/tree.c Joel Fernandes 2026-01-02 1985 int cpu;
f378d76282efe0 kernel/rcu/tree.c Joel Fernandes 2026-01-02 1986
f378d76282efe0 kernel/rcu/tree.c Joel Fernandes 2026-01-02 1987 /*
f378d76282efe0 kernel/rcu/tree.c Joel Fernandes 2026-01-02 1988 * Promote blocked tasks from offline CPUs before
f378d76282efe0 kernel/rcu/tree.c Joel Fernandes 2026-01-02 1989 * reporting QS, so they properly block the GP.
f378d76282efe0 kernel/rcu/tree.c Joel Fernandes 2026-01-02 1990 */
f378d76282efe0 kernel/rcu/tree.c Joel Fernandes 2026-01-02 1991 for_each_leaf_node_cpu_mask(rnp, cpu, mask) {
f378d76282efe0 kernel/rcu/tree.c Joel Fernandes 2026-01-02 1992 struct rcu_data *rdp_cpu;
f378d76282efe0 kernel/rcu/tree.c Joel Fernandes 2026-01-02 1993
f378d76282efe0 kernel/rcu/tree.c Joel Fernandes 2026-01-02 1994 rdp_cpu = per_cpu_ptr(&rcu_data, cpu);
f378d76282efe0 kernel/rcu/tree.c Joel Fernandes 2026-01-02 1995 rcu_promote_blocked_tasks_rdp(rdp_cpu, rnp);
f378d76282efe0 kernel/rcu/tree.c Joel Fernandes 2026-01-02 1996 }
b50912d0b5e03f kernel/rcu/tree.c Paul E. McKenney 2018-07-03 1997 rcu_report_qs_rnp(mask, rnp, rnp->gp_seq, flags);
f378d76282efe0 kernel/rcu/tree.c Joel Fernandes 2026-01-02 1998 }
ec2c29765a4ab1 kernel/rcu/tree.c Paul E. McKenney 2018-05-07 1999 else
67c583a7de3433 kernel/rcu/tree.c Boqun Feng 2015-12-29 2000 raw_spin_unlock_irq_rcu_node(rnp);
cee43939893337 kernel/rcu/tree.c Paul E. McKenney 2018-03-02 2001 cond_resched_tasks_rcu_qs();
9cbc5b97029bff kernel/rcu/tree.c Paul E. McKenney 2018-07-05 2002 WRITE_ONCE(rcu_state.gp_activity, jiffies);
64db4cfff99c04 kernel/rcutree.c Paul E. McKenney 2008-12-18 2003 }
64db4cfff99c04 kernel/rcutree.c Paul E. McKenney 2008-12-18 2004
933ada2c3310aa kernel/rcu/tree.c Paul E. McKenney 2020-08-06 2005 // If strict, make all CPUs aware of new grace period.
933ada2c3310aa kernel/rcu/tree.c Paul E. McKenney 2020-08-06 2006 if (IS_ENABLED(CONFIG_RCU_STRICT_GRACE_PERIOD))
933ada2c3310aa kernel/rcu/tree.c Paul E. McKenney 2020-08-06 2007 on_each_cpu(rcu_strict_gp_boundary, NULL, 0);
933ada2c3310aa kernel/rcu/tree.c Paul E. McKenney 2020-08-06 2008
45fed3e7cfb400 kernel/rcu/tree.c Paul E. McKenney 2015-11-07 2009 return true;
cabc49c1ff51ba kernel/rcutree.c Paul E. McKenney 2012-06-20 2010 }
cabc49c1ff51ba kernel/rcutree.c Paul E. McKenney 2012-06-20 2011
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-01-10 1:34 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20260103002343.6599-15-joelagnelf@nvidia.com>
2026-01-10 1:33 ` [PATCH RFC 14/14] rcu: Remove checking of per-cpu blocked list against the node list kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox