Lines Matching refs:that

5 that make use of RCU.  Violating any of the rules listed below will
6 result in the same sorts of problems that leaving out a locking primitive
13 performance measurements show that RCU is nonetheless the right
42 information relating to itself that other tasks can read, there
61 any locks or atomic operations. This means that readers will
68 RCU-protected data structures that have been added to
74 locks (that are acquired by both readers and writers)
75 that guard per-element state. Of course, fields that
90 d. Carefully order the updates and the reads so that
99 a separate structure, so that the change may be made
109 accesses. The rcu_dereference() primitive ensures that
111 that the pointer points to. This really is necessary
119 Please note that compilers can also reorder code, and
121 just that. The rcu_dereference() primitive therefore also
130 as the list_for_each_entry_rcu(). Note that it is
133 primitives. This is particularly useful in code that
163 e. Updates must ensure that initialization of a given
164 structure happens before pointers to that structure are
166 when publicizing a pointer to a structure that can
184 operations that would not normally be undertaken while a real-time
189 Restructure your code so that it batches the updates, allowing
197 a CPU-hotplug notifier, or while holding a lock that is acquired
234 primitive is that it automatically self-limits: if grace periods
257 the memory allocator, so that this wrapper function
271 here is that superuser already has lots of ways to crash
284 Note that although these primitives do take action to avoid memory
301 The reason that it is permissible to use RCU list-traversal
302 primitives when the update-side lock is held is that doing so
313 11. Note that synchronize_rcu() -only- guarantees to wait until
316 that all currently running interrupts, NMIs, preempt_disable()
322 for rcu_read_lock(). Code that attempts to use preemption
339 acquisition of that lock will result in deadlock as soon as
341 interrupting that acquisition's critical section.
344 the callback code simply wrappers around kfree(), so that this
345 is not an issue (or, more accurately, to the extent that it is
349 to safely access and/or modify that data structure.
351 RCU callbacks are -usually- executed on the same CPU that executed
354 CPU goes offline while having an RCU callback pending, then that
364 hence the "SRCU": "sleepable RCU". Please note that if you
372 that defines the scope of a given SRCU domain. Once initialized,
377 calls that have been passed the same srcu_struct. This property
395 Note that, rcu_assign_pointer() relates to SRCU just as it does
402 that readers can follow that could be affected by the
407 is the caller's responsibility to guarantee that any subsequent
420 CONFIG_PROVE_RCU: check that accesses to RCU-protected data
426 CONFIG_DEBUG_OBJECTS_RCU_HEAD: check that you don't pass the
428 grace period has elapsed since the last time that you
429 passed that same object to call_rcu() (or friends).
433 access that pointer without the services of one of the
436 These debugging aids can help you find problems that are