Re: [PATCH v4 01/24] Documentation: locking: Describe seqlock design and usage

From: Steven Rostedt
Date: Mon Jul 20 2020 - 21:37:56 EST


On Mon, 20 Jul 2020 21:35:51 -0400
Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:

> On Mon, 20 Jul 2020 17:55:07 +0200
> "Ahmed S. Darwish" <a.darwish@xxxxxxxxxxxxx> wrote:
> > +Read path, three categories:
> > +
> > +1. Normal Sequence readers which never block a writer but they must
> > + retry if a writer is in progress by detecting change in the sequence
> > + number. Writers do not wait for a sequence reader::
> > +
> > + do {
> > + seq = read_seqbegin(&foo_seqlock);
> > +
> > + /* ... [[read-side critical section]] ... */
> > +
> > + } while (read_seqretry(&foo_seqlock, seq));
> > +
> > +2. Locking readers which will wait if a writer or another locking reader
> > + is in progress. A locking reader in progress will also block a writer
> > + from entering its critical section. This read lock is
> > + exclusive. Unlike rwlock_t, only one locking reader can acquire it::
>
> Nit, but I would mention that this acts similar to a normal spin_lock, and even disables preeption (in the non-RT case).

What I learned today: Ctrl-return on claws mail sends the email :-p

I need to disable that before I send another email before I'm done with it!


I haven't finished reading the rest.

-- Steve