mirror of
https://github.com/torvalds/linux.git
synced 2024-11-25 05:32:00 +00:00
ef2555cf68
Although RCU can in theory be used to protect array indexes in a manner similar to the way it protects pointers, doing so is extremely risky because of the huge number of optimizations that modern compilers can apply to integral types. For but one example, if your code can be configured such that your array contains only a single element, then indexing that array with any integer other than zero invokes undefined behavior, which in turn means that the compiler is within its rights to assume (without checking!) that any integer used as an index to that array has the value zero. Therefore, the compiler can index the array with the constant zero, which breaks any dependencies that might have otherwise existed between the time the actual value was loaded and the time that the array was indexed. This commit therefore removes the arrayRCU.rst file that describes how to go about carrying dependencies through array indexes. Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
38 lines
563 B
ReStructuredText
38 lines
563 B
ReStructuredText
.. SPDX-License-Identifier: GPL-2.0
|
|
|
|
.. _rcu_concepts:
|
|
|
|
============
|
|
RCU concepts
|
|
============
|
|
|
|
.. toctree::
|
|
:maxdepth: 3
|
|
|
|
checklist
|
|
lockdep
|
|
lockdep-splat
|
|
rcubarrier
|
|
rcu_dereference
|
|
whatisRCU
|
|
rcu
|
|
rculist_nulls
|
|
rcuref
|
|
torture
|
|
stallwarn
|
|
listRCU
|
|
NMI-RCU
|
|
UP
|
|
|
|
Design/Memory-Ordering/Tree-RCU-Memory-Ordering
|
|
Design/Expedited-Grace-Periods/Expedited-Grace-Periods
|
|
Design/Requirements/Requirements
|
|
Design/Data-Structures/Data-Structures
|
|
|
|
.. only:: subproject and html
|
|
|
|
Indices
|
|
=======
|
|
|
|
* :ref:`genindex`
|