On Mon, 20 Dec 2021 09:43:04 -0800, Paul E. McKenney wrote: > 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. > Looks good to me! Thanks, Akira