On Mon, Dec 20, 2021 at 06:55:36PM +0900, Akira Yokosawa wrote: > Hi Paul, > > While reading through Section 9.5.4, I noticed a few terms > I'd like to see in perfbook's Glossary. > > - Reference Counter/Counting > - Existence Guarantee > - Type-safe Memory > > "Reference counter" is already mentioned in a couple of existing > items in the glossary. > > "Existing guarantee" might be obvious enough and not worthy > to be in the glossary. > > Thoughts? > > There were only a few minor nits in the section. > Will post a patch taking care of them. Thank you for looking it over! Please see below for a proposed patch to the glossary. Oh, and thank you for the checking utilities, very nice to get explicit messages rather than subtlely broken formatting!!! utilities/punctcheck.sh ./glossary.tex:547: Type-safe memory\cite{Cheriton96a} is provided by a utilities/cleverefcheck.sh Thanx, Paul ------------------------------------------------------------------------ commit a8f5948a1b8921941bf4039e278aa7929f64c322 Author: Paul E. McKenney <paulmck@xxxxxxxxxx> Date: Mon Dec 20 09:41:55 2021 -0800 glossary: Add reference count, existence guarantee, and TSM Where "TSM" is type-safe memory. Reported-by: Akira Yokosawa <akiyks@xxxxxxxxx> Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxx> diff --git a/glossary.tex b/glossary.tex index be10f703..31c09232 100644 --- a/glossary.tex +++ b/glossary.tex @@ -199,6 +199,14 @@ increase the overall cost of the computation, resulting in linear speedups as threads are added (assuming sufficient CPUs are available). +\item[\IX{Existence Guarantee}:] + An existence guarantee is provided by a synchronization mechanism + that prevents a given dynamically allocated object from being + freed for the duration of that guarantee. + For example, RCU provides existence guarantees for the duration + of RCU read-side critical sections. + A similar but strictly weaker guarantee is provided by + type-safe memory. \item[\IXh{Exclusive}{Lock}:] An exclusive lock is a mutual-exclusion mechanism that permits only one thread at a time into the @@ -469,6 +477,11 @@ A situation in which getting the correct result is not sufficient, but where this result must also be obtained within a given amount of time. +\item[\IX{Reference Count}:] + A counter that tracks the number of users of a given object or + entity. + Reference counters provide existence guarantees and are sometimes + used to implement garbage collectors. \item[\IX{Scalability}:] A measure of how effectively a given system is able to utilize additional resources. @@ -531,6 +544,17 @@ A synchronization mechanism that gathers groups of memory accesses so as to execute them atomically from the viewpoint of transactions on other CPUs or threads. +\item[\IX{Type-Safe Memory}:] + Type-safe memory~\cite{Cheriton96a} is provided by a + synchronization mechanism that prevents a given dynamically + allocated object from changing to an incompatible type. + Note that the object might well be freed and then reallocated, but + the reallocated object is guaranteed to be of a compatible type. + Within the Linux kernel, type-safe memory is provided within + RCU read-side critical sections for memory allocated from slabs + marked with the \co{SLAB_TYPESAFE_BY_RCU} flag. + The strictly stronger existence guarantee also prevents freeing + of the protected object. \item[\IX{Unteachable}:] A topic, concept, method, or mechanism that the teacher does not understand well is therefore uncomfortable teaching.