alistair23-linux/Documentation/locking
Ahmed S. Darwish 0d24f65e93 Documentation: locking: Describe seqlock design and usage
Proper documentation for the design and usage of sequence counters and
sequential locks does not exist. Complete the seqlock.h documentation as
follows:

  - Divide all documentation on a seqcount_t vs. seqlock_t basis. The
    description for both mechanisms was intermingled, which is incorrect
    since the usage constrains for each type are vastly different.

  - Add an introductory paragraph describing the internal design of, and
    rationale for, sequence counters.

  - Document seqcount_t writer non-preemptibility requirement, which was
    not previously documented anywhere, and provide a clear rationale.

  - Provide template code for seqcount_t and seqlock_t initialization
    and reader/writer critical sections.

  - Recommend using seqlock_t by default. It implicitly handles the
    serialization and non-preemptibility requirements of writers.

At seqlock.h:

  - Remove references to brlocks as they've long been removed from the
    kernel.

  - Remove references to gcc-3.x since the kernel's minimum supported
    gcc version is 4.9.

References: 0f6ed63b17 ("no need to keep brlock macros anymore...")
References: 6ec4476ac8 ("Raise gcc version requirement to 4.9")
Signed-off-by: Ahmed S. Darwish <a.darwish@linutronix.de>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20200720155530.1173732-2-a.darwish@linutronix.de
2020-07-29 16:14:22 +02:00
..
futex-requeue-pi.rst docs: move locking-specific documents to locking/ 2020-05-15 12:05:07 -06:00
hwspinlock.rst docs: move locking-specific documents to locking/ 2020-05-15 12:05:07 -06:00
index.rst Documentation: locking: Describe seqlock design and usage 2020-07-29 16:14:22 +02:00
lockdep-design.rst docs: locking: convert docs to ReST and rename to *.rst 2019-07-15 08:53:27 -03:00
lockstat.rst docs: locking: convert docs to ReST and rename to *.rst 2019-07-15 08:53:27 -03:00
locktorture.rst doc:locking: remove info about old behavior of locktorture 2020-05-05 09:55:58 -06:00
locktypes.rst locking: Introduce local_lock() 2020-05-28 10:31:09 +02:00
mutex-design.rst docs: locking: Replace HTTP links with HTTPS ones 2020-07-16 23:19:51 +02:00
percpu-rw-semaphore.rst docs: move locking-specific documents to locking/ 2020-05-15 12:05:07 -06:00
pi-futex.rst docs: move locking-specific documents to locking/ 2020-05-15 12:05:07 -06:00
preempt-locking.rst docs: move locking-specific documents to locking/ 2020-05-15 12:05:07 -06:00
robust-futex-ABI.rst docs: move locking-specific documents to locking/ 2020-05-15 12:05:07 -06:00
robust-futexes.rst docs: move locking-specific documents to locking/ 2020-05-15 12:05:07 -06:00
rt-mutex-design.rst docs: locking: convert docs to ReST and rename to *.rst 2019-07-15 08:53:27 -03:00
rt-mutex.rst docs: move locking-specific documents to locking/ 2020-05-15 12:05:07 -06:00
seqlock.rst Documentation: locking: Describe seqlock design and usage 2020-07-29 16:14:22 +02:00
spinlocks.rst docs/locking: Fix outdated section names 2020-02-05 10:21:12 -07:00
ww-mutex-design.rst docs: locking: convert docs to ReST and rename to *.rst 2019-07-15 08:53:27 -03:00