Lines Matching +full:light +full:- +full:weight

1 /* SPDX-License-Identifier: GPL-2.0+ */
3 * Sleepable Read-Copy Update mechanism for mutual exclusion
11 * For detailed explanation of Read-Copy Update mechanism see -
46 /* Values for SRCU Tree srcu_data ->srcu_reader_flavor, but also used by rcutorture. */
77 * get_completed_synchronize_srcu - Return a pre-completed polled state cookie
92 // not-yet-completed SRCU grace periods.
96 * same_state_synchronize_srcu - Are two old-state values identical?
97 * @oldstate1: First old-state value.
98 * @oldstate2: Second old-state value.
100 * The two old-state values must have been obtained from either
104 * are tracked by old-state values to push these values to a list header,
131 * srcu_read_lock_held - might we be in SRCU read-side critical section?
135 * read-side critical section. In absence of CONFIG_DEBUG_LOCK_ALLOC,
136 * this assumes we are in an SRCU read-side critical section unless it can
150 return lock_is_held(&ssp->dep_map); in srcu_read_lock_held()
157 * srcu_lock_sync(), which is basically an empty *write*-side critical section,
194 * srcu_dereference_check - fetch SRCU-protected pointer for later dereferencing
197 * really are in an SRCU read-side critical section.
198 * @c: condition to check for update-side use
200 * If PROVE_RCU is enabled, invoking this outside of an RCU read-side
201 * critical section will result in an RCU-lockdep splat, unless @c evaluates
210 * srcu_dereference - fetch SRCU-protected pointer for later dereferencing
213 * really are in an SRCU read-side critical section.
216 * is enabled, invoking this outside of an RCU read-side critical
217 * section will result in an RCU-lockdep splat.
222 * srcu_dereference_notrace - no tracing and no lockdep calls from here
225 * really are in an SRCU read-side critical section.
230 * srcu_read_lock - register a new reader for an SRCU-protected structure.
233 * Enter an SRCU read-side critical section. Note that SRCU read-side
242 * non-negative. This value must be passed unaltered to the matching
256 srcu_lock_acquire(&ssp->dep_map); in srcu_read_lock()
261 * srcu_read_lock_lite - register a new reader for an SRCU-protected structure.
264 * Enter an SRCU read-side critical section, but for a light-weight
265 * smp_mb()-free reader. See srcu_read_lock() for more information.
269 * or after. Note that grace-period auto-expediting is disabled for _lite
270 * srcu_struct structures because auto-expedited grace periods invoke
283 rcu_try_lock_acquire(&ssp->dep_map); in srcu_read_lock_lite()
288 * srcu_read_lock_nmisafe - register a new reader for an SRCU-protected structure.
291 * Enter an SRCU read-side critical section, but in an NMI-safe manner.
304 rcu_try_lock_acquire(&ssp->dep_map); in srcu_read_lock_nmisafe()
320 * srcu_down_read - register a new reader for an SRCU-protected structure.
323 * Enter a semaphore-like SRCU read-side critical section. Note that
324 * SRCU read-side critical sections may be nested. However, it is
332 * The semaphore-like nature of srcu_down_read() means that the matching
348 * srcu_read_unlock - unregister a old reader from an SRCU-protected structure.
352 * Exit an SRCU read-side critical section.
359 srcu_lock_release(&ssp->dep_map); in srcu_read_unlock()
364 * srcu_read_unlock_lite - unregister a old reader from an SRCU-protected structure.
368 * Exit a light-weight SRCU read-side critical section.
375 srcu_lock_release(&ssp->dep_map); in srcu_read_unlock_lite()
380 * srcu_read_unlock_nmisafe - unregister a old reader from an SRCU-protected structure.
384 * Exit an SRCU read-side critical section, but in an NMI-safe manner.
391 rcu_lock_release(&ssp->dep_map); in srcu_read_unlock_nmisafe()
404 * srcu_up_read - unregister a old reader from an SRCU-protected structure.
408 * Exit an SRCU read-side critical section, but not necessarily from
421 * smp_mb__after_srcu_read_unlock - ensure full ordering after srcu_read_unlock
423 * Converts the preceding srcu_read_unlock into a two-way memory barrier.
435 * smp_mb__after_srcu_read_lock - ensure full ordering after srcu_read_lock
437 * Converts the preceding srcu_read_lock into a two-way memory barrier.
449 _T->idx = srcu_read_lock(_T->lock),
450 srcu_read_unlock(_T->lock, _T->idx),