diff options
author | Ahmed S. Darwish <a.darwish@linutronix.de> | 2020-07-20 17:55:07 +0200 |
---|---|---|
committer | Peter Zijlstra <peterz@infradead.org> | 2020-07-29 16:14:22 +0200 |
commit | 0d24f65e933ca89d55d17f6dbdb2a72ca88f0992 (patch) | |
tree | 69b56e136fd1aba3f2b24db0116ba03c582ffdb1 /Documentation/locking/index.rst | |
parent | Merge branch 'locking/header' (diff) | |
download | linux-0d24f65e933ca89d55d17f6dbdb2a72ca88f0992.tar.xz linux-0d24f65e933ca89d55d17f6dbdb2a72ca88f0992.zip |
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: 0f6ed63b1707 ("no need to keep brlock macros anymore...")
References: 6ec4476ac825 ("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
Diffstat (limited to 'Documentation/locking/index.rst')
-rw-r--r-- | Documentation/locking/index.rst | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/Documentation/locking/index.rst b/Documentation/locking/index.rst index d785878cad65..7003bd5aeff4 100644 --- a/Documentation/locking/index.rst +++ b/Documentation/locking/index.rst @@ -14,6 +14,7 @@ locking mutex-design rt-mutex-design rt-mutex + seqlock spinlocks ww-mutex-design preempt-locking |