diff options
Diffstat (limited to 'Documentation/RCU')
-rw-r--r-- | Documentation/RCU/Design/Memory-Ordering/Tree-RCU-Memory-Ordering.rst | 17 | ||||
-rw-r--r-- | Documentation/RCU/Design/Requirements/Requirements.rst | 90 |
2 files changed, 47 insertions, 60 deletions
diff --git a/Documentation/RCU/Design/Memory-Ordering/Tree-RCU-Memory-Ordering.rst b/Documentation/RCU/Design/Memory-Ordering/Tree-RCU-Memory-Ordering.rst index 1011b5db1b3d..248b1222f918 100644 --- a/Documentation/RCU/Design/Memory-Ordering/Tree-RCU-Memory-Ordering.rst +++ b/Documentation/RCU/Design/Memory-Ordering/Tree-RCU-Memory-Ordering.rst @@ -230,15 +230,14 @@ Tree RCU Grace Period Memory Ordering Components Tree RCU's grace-period memory-ordering guarantee is provided by a number of RCU components: -#. `Callback Registry <#Callback%20Registry>`__ -#. `Grace-Period Initialization <#Grace-Period%20Initialization>`__ -#. `Self-Reported Quiescent - States <#Self-Reported%20Quiescent%20States>`__ -#. `Dynamic Tick Interface <#Dynamic%20Tick%20Interface>`__ -#. `CPU-Hotplug Interface <#CPU-Hotplug%20Interface>`__ -#. `Forcing Quiescent States <Forcing%20Quiescent%20States>`__ -#. `Grace-Period Cleanup <Grace-Period%20Cleanup>`__ -#. `Callback Invocation <Callback%20Invocation>`__ +#. `Callback Registry`_ +#. `Grace-Period Initialization`_ +#. `Self-Reported Quiescent States`_ +#. `Dynamic Tick Interface`_ +#. `CPU-Hotplug Interface`_ +#. `Forcing Quiescent States`_ +#. `Grace-Period Cleanup`_ +#. `Callback Invocation`_ Each of the following section looks at the corresponding component in detail. diff --git a/Documentation/RCU/Design/Requirements/Requirements.rst b/Documentation/RCU/Design/Requirements/Requirements.rst index 876e0038bb58..a33b5fb331b4 100644 --- a/Documentation/RCU/Design/Requirements/Requirements.rst +++ b/Documentation/RCU/Design/Requirements/Requirements.rst @@ -36,16 +36,14 @@ technologies in interesting new ways. All that aside, here are the categories of currently known RCU requirements: -#. `Fundamental Requirements <#Fundamental%20Requirements>`__ -#. `Fundamental Non-Requirements <#Fundamental%20Non-Requirements>`__ -#. `Parallelism Facts of Life <#Parallelism%20Facts%20of%20Life>`__ -#. `Quality-of-Implementation - Requirements <#Quality-of-Implementation%20Requirements>`__ -#. `Linux Kernel Complications <#Linux%20Kernel%20Complications>`__ -#. `Software-Engineering - Requirements <#Software-Engineering%20Requirements>`__ -#. `Other RCU Flavors <#Other%20RCU%20Flavors>`__ -#. `Possible Future Changes <#Possible%20Future%20Changes>`__ +#. `Fundamental Requirements`_ +#. `Fundamental Non-Requirements`_ +#. `Parallelism Facts of Life`_ +#. `Quality-of-Implementation Requirements`_ +#. `Linux Kernel Complications`_ +#. `Software-Engineering Requirements`_ +#. `Other RCU Flavors`_ +#. `Possible Future Changes`_ This is followed by a `summary <#Summary>`__, however, the answers to each quick quiz immediately follows the quiz. Select the big white space @@ -57,13 +55,11 @@ Fundamental Requirements RCU's fundamental requirements are the closest thing RCU has to hard mathematical requirements. These are: -#. `Grace-Period Guarantee <#Grace-Period%20Guarantee>`__ -#. `Publish-Subscribe Guarantee <#Publish-Subscribe%20Guarantee>`__ -#. `Memory-Barrier Guarantees <#Memory-Barrier%20Guarantees>`__ -#. `RCU Primitives Guaranteed to Execute - Unconditionally <#RCU%20Primitives%20Guaranteed%20to%20Execute%20Unconditionally>`__ -#. `Guaranteed Read-to-Write - Upgrade <#Guaranteed%20Read-to-Write%20Upgrade>`__ +#. `Grace-Period Guarantee`_ +#. `Publish/Subscribe Guarantee`_ +#. `Memory-Barrier Guarantees`_ +#. `RCU Primitives Guaranteed to Execute Unconditionally`_ +#. `Guaranteed Read-to-Write Upgrade`_ Grace-Period Guarantee ~~~~~~~~~~~~~~~~~~~~~~ @@ -689,16 +685,11 @@ infinitely long, however, the following sections list a few non-guarantees that have caused confusion. Except where otherwise noted, these non-guarantees were premeditated. -#. `Readers Impose Minimal - Ordering <#Readers%20Impose%20Minimal%20Ordering>`__ -#. `Readers Do Not Exclude - Updaters <#Readers%20Do%20Not%20Exclude%20Updaters>`__ -#. `Updaters Only Wait For Old - Readers <#Updaters%20Only%20Wait%20For%20Old%20Readers>`__ -#. `Grace Periods Don't Partition Read-Side Critical - Sections <#Grace%20Periods%20Don't%20Partition%20Read-Side%20Critical%20Sections>`__ -#. `Read-Side Critical Sections Don't Partition Grace - Periods <#Read-Side%20Critical%20Sections%20Don't%20Partition%20Grace%20Periods>`__ +#. `Readers Impose Minimal Ordering`_ +#. `Readers Do Not Exclude Updaters`_ +#. `Updaters Only Wait For Old Readers`_ +#. `Grace Periods Don't Partition Read-Side Critical Sections`_ +#. `Read-Side Critical Sections Don't Partition Grace Periods`_ Readers Impose Minimal Ordering ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -1056,11 +1047,11 @@ it would likely be subject to limitations that would make it inappropriate for industrial-strength production use. Classes of quality-of-implementation requirements are as follows: -#. `Specialization <#Specialization>`__ -#. `Performance and Scalability <#Performance%20and%20Scalability>`__ -#. `Forward Progress <#Forward%20Progress>`__ -#. `Composability <#Composability>`__ -#. `Corner Cases <#Corner%20Cases>`__ +#. `Specialization`_ +#. `Performance and Scalability`_ +#. `Forward Progress`_ +#. `Composability`_ +#. `Corner Cases`_ These classes is covered in the following sections. @@ -1692,21 +1683,18 @@ The Linux kernel provides an interesting environment for all kinds of software, including RCU. Some of the relevant points of interest are as follows: -#. `Configuration <#Configuration>`__. -#. `Firmware Interface <#Firmware%20Interface>`__. -#. `Early Boot <#Early%20Boot>`__. -#. `Interrupts and non-maskable interrupts - (NMIs) <#Interrupts%20and%20NMIs>`__. -#. `Loadable Modules <#Loadable%20Modules>`__. -#. `Hotplug CPU <#Hotplug%20CPU>`__. -#. `Scheduler and RCU <#Scheduler%20and%20RCU>`__. -#. `Tracing and RCU <#Tracing%20and%20RCU>`__. -#. `Energy Efficiency <#Energy%20Efficiency>`__. -#. `Scheduling-Clock Interrupts and - RCU <#Scheduling-Clock%20Interrupts%20and%20RCU>`__. -#. `Memory Efficiency <#Memory%20Efficiency>`__. -#. `Performance, Scalability, Response Time, and - Reliability <#Performance,%20Scalability,%20Response%20Time,%20and%20Reliability>`__. +#. `Configuration`_ +#. `Firmware Interface`_ +#. `Early Boot`_ +#. `Interrupts and NMIs`_ +#. `Loadable Modules`_ +#. `Hotplug CPU`_ +#. `Scheduler and RCU`_ +#. `Tracing and RCU`_ +#. `Energy Efficiency`_ +#. `Scheduling-Clock Interrupts and RCU`_ +#. `Memory Efficiency`_ +#. `Performance, Scalability, Response Time, and Reliability`_ This list is probably incomplete, but it does give a feel for the most notable Linux-kernel complications. Each of the following sections @@ -2344,10 +2332,10 @@ implementations, non-preemptible and preemptible. The other four flavors are listed below, with requirements for each described in a separate section. -#. `Bottom-Half Flavor (Historical) <#Bottom-Half%20Flavor>`__ -#. `Sched Flavor (Historical) <#Sched%20Flavor>`__ -#. `Sleepable RCU <#Sleepable%20RCU>`__ -#. `Tasks RCU <#Tasks%20RCU>`__ +#. `Bottom-Half Flavor (Historical)`_ +#. `Sched Flavor (Historical)`_ +#. `Sleepable RCU`_ +#. `Tasks RCU`_ Bottom-Half Flavor (Historical) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |