update.c (dd84cfff3cc3b79c9d616f85bd1178df135cbd1a) update.c (e67198cc05b8ecbb7b8e2d8ef9fb5c8d26821873)
1// SPDX-License-Identifier: GPL-2.0+
2/*
3 * Read-Copy Update mechanism for mutual exclusion
4 *
5 * Copyright IBM Corporation, 2001
6 *
7 * Authors: Dipankar Sarma <dipankar@in.ibm.com>
8 * Manfred Spraul <manfred@colorfullife.com>

--- 71 unchanged lines hidden (view full) ---

80 * read-side critical section. This is useful for debug checks in functions
81 * that required that they be called within an RCU-sched read-side
82 * critical section.
83 *
84 * Check debug_lockdep_rcu_enabled() to prevent false positives during boot
85 * and while lockdep is disabled.
86 *
87 * Note that if the CPU is in the idle loop from an RCU point of view (ie:
1// SPDX-License-Identifier: GPL-2.0+
2/*
3 * Read-Copy Update mechanism for mutual exclusion
4 *
5 * Copyright IBM Corporation, 2001
6 *
7 * Authors: Dipankar Sarma <dipankar@in.ibm.com>
8 * Manfred Spraul <manfred@colorfullife.com>

--- 71 unchanged lines hidden (view full) ---

80 * read-side critical section. This is useful for debug checks in functions
81 * that required that they be called within an RCU-sched read-side
82 * critical section.
83 *
84 * Check debug_lockdep_rcu_enabled() to prevent false positives during boot
85 * and while lockdep is disabled.
86 *
87 * Note that if the CPU is in the idle loop from an RCU point of view (ie:
88 * that we are in the section between rcu_idle_enter() and rcu_idle_exit())
88 * that we are in the section between ct_idle_enter() and ct_idle_exit())
89 * then rcu_read_lock_held() sets ``*ret`` to false even if the CPU did an
90 * rcu_read_lock(). The reason for this is that RCU ignores CPUs that are
91 * in such a section, considering these as in extended quiescent state,
92 * so such a CPU is effectively never in an RCU read-side critical section
93 * regardless of what RCU primitives it invokes. This state of affairs is
94 * required --- we need to keep an RCU-free window in idle where the CPU may
95 * possibly enter into low power mode. This way we can notice an extended
96 * quiescent state to other CPUs that started a grace period. Otherwise

--- 519 unchanged lines hidden ---
89 * then rcu_read_lock_held() sets ``*ret`` to false even if the CPU did an
90 * rcu_read_lock(). The reason for this is that RCU ignores CPUs that are
91 * in such a section, considering these as in extended quiescent state,
92 * so such a CPU is effectively never in an RCU read-side critical section
93 * regardless of what RCU primitives it invokes. This state of affairs is
94 * required --- we need to keep an RCU-free window in idle where the CPU may
95 * possibly enter into low power mode. This way we can notice an extended
96 * quiescent state to other CPUs that started a grace period. Otherwise

--- 519 unchanged lines hidden ---