@@ -36,16 +36,14 @@ technologies in interesting new ways.
36
36
All that aside, here are the categories of currently known RCU
37
37
requirements:
38
38
39
- #. `Fundamental Requirements <#Fundamental%20Requirements >`__
40
- #. `Fundamental Non-Requirements <#Fundamental%20Non-Requirements >`__
41
- #. `Parallelism Facts of Life <#Parallelism%20Facts%20of%20Life >`__
42
- #. `Quality-of-Implementation
43
- Requirements <#Quality-of-Implementation%20Requirements> `__
44
- #. `Linux Kernel Complications <#Linux%20Kernel%20Complications >`__
45
- #. `Software-Engineering
46
- Requirements <#Software-Engineering%20Requirements> `__
47
- #. `Other RCU Flavors <#Other%20RCU%20Flavors >`__
48
- #. `Possible Future Changes <#Possible%20Future%20Changes >`__
39
+ #. `Fundamental Requirements `_
40
+ #. `Fundamental Non-Requirements `_
41
+ #. `Parallelism Facts of Life `_
42
+ #. `Quality-of-Implementation Requirements `_
43
+ #. `Linux Kernel Complications `_
44
+ #. `Software-Engineering Requirements `_
45
+ #. `Other RCU Flavors `_
46
+ #. `Possible Future Changes `_
49
47
50
48
This is followed by a `summary <#Summary >`__, however, the answers to
51
49
each quick quiz immediately follows the quiz. Select the big white space
@@ -57,13 +55,11 @@ Fundamental Requirements
57
55
RCU's fundamental requirements are the closest thing RCU has to hard
58
56
mathematical requirements. These are:
59
57
60
- #. `Grace-Period Guarantee <#Grace-Period%20Guarantee >`__
61
- #. `Publish-Subscribe Guarantee <#Publish-Subscribe%20Guarantee >`__
62
- #. `Memory-Barrier Guarantees <#Memory-Barrier%20Guarantees >`__
63
- #. `RCU Primitives Guaranteed to Execute
64
- Unconditionally <#RCU%20Primitives%20Guaranteed%20to%20Execute%20Unconditionally> `__
65
- #. `Guaranteed Read-to-Write
66
- Upgrade <#Guaranteed%20Read-to-Write%20Upgrade> `__
58
+ #. `Grace-Period Guarantee `_
59
+ #. `Publish/Subscribe Guarantee `_
60
+ #. `Memory-Barrier Guarantees `_
61
+ #. `RCU Primitives Guaranteed to Execute Unconditionally `_
62
+ #. `Guaranteed Read-to-Write Upgrade `_
67
63
68
64
Grace-Period Guarantee
69
65
~~~~~~~~~~~~~~~~~~~~~~
@@ -689,16 +685,11 @@ infinitely long, however, the following sections list a few
689
685
non-guarantees that have caused confusion. Except where otherwise noted,
690
686
these non-guarantees were premeditated.
691
687
692
- #. `Readers Impose Minimal
693
- Ordering <#Readers%20Impose%20Minimal%20Ordering> `__
694
- #. `Readers Do Not Exclude
695
- Updaters <#Readers%20Do%20Not%20Exclude%20Updaters> `__
696
- #. `Updaters Only Wait For Old
697
- Readers <#Updaters%20Only%20Wait%20For%20Old%20Readers> `__
698
- #. `Grace Periods Don't Partition Read-Side Critical
699
- Sections <#Grace%20Periods%20Don't%20Partition%20Read-Side%20Critical%20Sections> `__
700
- #. `Read-Side Critical Sections Don't Partition Grace
701
- Periods <#Read-Side%20Critical%20Sections%20Don't%20Partition%20Grace%20Periods> `__
688
+ #. `Readers Impose Minimal Ordering `_
689
+ #. `Readers Do Not Exclude Updaters `_
690
+ #. `Updaters Only Wait For Old Readers `_
691
+ #. `Grace Periods Don't Partition Read-Side Critical Sections `_
692
+ #. `Read-Side Critical Sections Don't Partition Grace Periods `_
702
693
703
694
Readers Impose Minimal Ordering
704
695
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -1056,11 +1047,11 @@ it would likely be subject to limitations that would make it
1056
1047
inappropriate for industrial-strength production use. Classes of
1057
1048
quality-of-implementation requirements are as follows:
1058
1049
1059
- #. `Specialization < #Specialization >`__
1060
- #. `Performance and Scalability < #Performance%20and%20Scalability >`__
1061
- #. `Forward Progress < #Forward%20Progress >`__
1062
- #. `Composability < #Composability >`__
1063
- #. `Corner Cases < #Corner%20Cases >`__
1050
+ #. `Specialization `_
1051
+ #. `Performance and Scalability `_
1052
+ #. `Forward Progress `_
1053
+ #. `Composability `_
1054
+ #. `Corner Cases `_
1064
1055
1065
1056
These classes is covered in the following sections.
1066
1057
@@ -1692,21 +1683,18 @@ The Linux kernel provides an interesting environment for all kinds of
1692
1683
software, including RCU. Some of the relevant points of interest are as
1693
1684
follows:
1694
1685
1695
- #. `Configuration <#Configuration >`__.
1696
- #. `Firmware Interface <#Firmware%20Interface >`__.
1697
- #. `Early Boot <#Early%20Boot >`__.
1698
- #. `Interrupts and non-maskable interrupts
1699
- (NMIs) <#Interrupts%20and%20NMIs> `__.
1700
- #. `Loadable Modules <#Loadable%20Modules >`__.
1701
- #. `Hotplug CPU <#Hotplug%20CPU >`__.
1702
- #. `Scheduler and RCU <#Scheduler%20and%20RCU >`__.
1703
- #. `Tracing and RCU <#Tracing%20and%20RCU >`__.
1704
- #. `Energy Efficiency <#Energy%20Efficiency >`__.
1705
- #. `Scheduling-Clock Interrupts and
1706
- RCU <#Scheduling-Clock%20Interrupts%20and%20RCU> `__.
1707
- #. `Memory Efficiency <#Memory%20Efficiency >`__.
1708
- #. `Performance, Scalability, Response Time, and
1709
- Reliability <#Performance,%20Scalability,%20Response%20Time,%20and%20Reliability> `__.
1686
+ #. `Configuration `_
1687
+ #. `Firmware Interface `_
1688
+ #. `Early Boot `_
1689
+ #. `Interrupts and NMIs `_
1690
+ #. `Loadable Modules `_
1691
+ #. `Hotplug CPU `_
1692
+ #. `Scheduler and RCU `_
1693
+ #. `Tracing and RCU `_
1694
+ #. `Energy Efficiency `_
1695
+ #. `Scheduling-Clock Interrupts and RCU `_
1696
+ #. `Memory Efficiency `_
1697
+ #. `Performance, Scalability, Response Time, and Reliability `_
1710
1698
1711
1699
This list is probably incomplete, but it does give a feel for the most
1712
1700
notable Linux-kernel complications. Each of the following sections
@@ -2344,10 +2332,10 @@ implementations, non-preemptible and preemptible. The other four flavors
2344
2332
are listed below, with requirements for each described in a separate
2345
2333
section.
2346
2334
2347
- #. `Bottom-Half Flavor (Historical) < #Bottom-Half%20Flavor >`__
2348
- #. `Sched Flavor (Historical) < #Sched%20Flavor >`__
2349
- #. `Sleepable RCU < #Sleepable%20RCU >`__
2350
- #. `Tasks RCU < #Tasks%20RCU >`__
2335
+ #. `Bottom-Half Flavor (Historical) `_
2336
+ #. `Sched Flavor (Historical) `_
2337
+ #. `Sleepable RCU `_
2338
+ #. `Tasks RCU `_
2351
2339
2352
2340
Bottom-Half Flavor (Historical)
2353
2341
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0 commit comments