From: "Paul E. McKenney" <paulmck@linux.ibm.com>
To: Dmitry Vyukov <dvyukov@google.com>
Cc: Andrea Parri <andrea.parri@amarulasolutions.com>,
Anatol Pomozov <anatol.pomozov@gmail.com>,
Florian Westphal <fw@strlen.de>,
LKML <linux-kernel@vger.kernel.org>,
Andrey Konovalov <andreyknvl@google.com>,
Alan Stern <stern@rowland.harvard.edu>,
Luc Maranget <luc.maranget@inria.fr>,
Will Deacon <will.deacon@arm.com>,
Peter Zijlstra <peterz@infradead.org>
Subject: Re: seqcount usage in xt_replace_table()
Date: Thu, 10 Jan 2019 06:50:29 -0800 [thread overview]
Message-ID: <20190110145029.GL1215@linux.ibm.com> (raw)
In-Reply-To: <CACT4Y+ZMcQ3aF+mJws2mzbHww=ZGB9XQkPU5YUsicNS9SKwD_A@mail.gmail.com>
On Thu, Jan 10, 2019 at 01:38:11PM +0100, Dmitry Vyukov wrote:
> On Thu, Jan 10, 2019 at 1:30 PM Andrea Parri
> <andrea.parri@amarulasolutions.com> wrote:
> >
> > > For seqcounts we currently simply ignore all accesses within the read
> > > section (thus the requirement to dynamically track read sections).
> > > What does LKMM say about seqlocks?
> >
> > LKMM does not currently model seqlocks, if that's what you're asking;
> > c.f., tools/memory-model/linux-kernel.def for a list of the currently
> > supported synchronization primitives.
> >
> > LKMM has also no notion of "data race", it insists that the code must
> > contain no unmarked accesses; we have been discussing such extensions
> > since at least Dec'17 (we're not quite there!, as mentioned by Paul).
>
> How does it call cases that do contain unmarked accesses then? :)
>
> > My opinion is that ignoring all accesses within a given read section
> > _can_ lead to false negatives
>
> Absolutely. But this is a deliberate decision.
> For our tools we consider priority 1: no false positives. Period.
> Priority 2: also report some true positives in best effort manner.
>
> > (in every possible definition of "data
> > race" and "read sections" I can think of at the moment ;D):
> >
> > P0 P1
> > read_seqbegin() x = 1;
> > r0 = x;
> > read_seqretry() // =0
> >
> > ought to be "racy"..., right? (I didn't audit all the callsites for
> > read_{seqbegin,seqretry}(), but I wouldn't be surprised to find such
> > pattern ;D ... "legacy", as you recalled).
One approach would be to forgive data races in the seqlock read-side
critical section only if:
o There was a later matching read_seqretry() that returned true, and
o There were no dereferences of any data-racy load. (Yeah, this
one should be good clean fun to model!)
Do people nest read_seqbegin(), and if so, what does that mean? ;-)
Thanx, Paul
next prev parent reply other threads:[~2019-01-10 14:50 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-08 19:33 seqcount usage in xt_replace_table() Anatol Pomozov
2019-01-08 22:37 ` Florian Westphal
2019-01-10 12:41 ` Peter Zijlstra
2019-01-10 12:53 ` Dmitry Vyukov
2019-01-10 20:18 ` Peter Zijlstra
2019-01-10 14:48 ` Florian Westphal
2019-01-10 20:20 ` Peter Zijlstra
2019-01-10 20:25 ` Peter Zijlstra
2019-01-10 22:29 ` Florian Westphal
2019-01-11 8:34 ` Peter Zijlstra
2019-01-11 14:08 ` Paul E. McKenney
2019-01-10 14:52 ` Paul E. McKenney
2019-01-09 0:02 ` Andrea Parri
2019-01-09 0:36 ` Anatol Pomozov
2019-01-09 5:35 ` Dmitry Vyukov
2019-01-09 11:24 ` Andrea Parri
2019-01-09 11:55 ` Dmitry Vyukov
2019-01-09 12:11 ` Andrea Parri
2019-01-09 12:29 ` Dmitry Vyukov
2019-01-09 17:10 ` Paul E. McKenney
2019-01-10 8:49 ` Dmitry Vyukov
2019-01-10 12:30 ` Andrea Parri
2019-01-10 12:38 ` Dmitry Vyukov
2019-01-10 12:46 ` Andrea Parri
2019-01-10 13:25 ` Dmitry Vyukov
2019-01-10 14:50 ` Paul E. McKenney [this message]
2019-01-10 12:44 ` Peter Zijlstra
2019-01-10 12:54 ` Dmitry Vyukov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190110145029.GL1215@linux.ibm.com \
--to=paulmck@linux.ibm.com \
--cc=anatol.pomozov@gmail.com \
--cc=andrea.parri@amarulasolutions.com \
--cc=andreyknvl@google.com \
--cc=dvyukov@google.com \
--cc=fw@strlen.de \
--cc=linux-kernel@vger.kernel.org \
--cc=luc.maranget@inria.fr \
--cc=peterz@infradead.org \
--cc=stern@rowland.harvard.edu \
--cc=will.deacon@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.