[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20220715152145.GZ1790663@paulmck-ThinkPad-P17-Gen-1>
Date: Fri, 15 Jul 2022 08:21:45 -0700
From: "Paul E. McKenney" <paulmck@...nel.org>
To: Alan Stern <stern@...land.harvard.edu>
Cc: Paul Heidekrüger <Paul.Heidekrueger@...tum.de>,
clang-built-linux <llvm@...ts.linux.dev>,
linux-toolchains@...r.kernel.org,
Andrea Parri <parri.andrea@...il.com>,
Will Deacon <will@...nel.org>,
Peter Zijlstra <peterz@...radead.org>,
Boqun Feng <boqun.feng@...il.com>,
Nicholas Piggin <npiggin@...il.com>,
David Howells <dhowells@...hat.com>,
Jade Alglave <j.alglave@....ac.uk>,
Luc Maranget <luc.maranget@...ia.fr>,
Akira Yokosawa <akiyks@...il.com>,
Daniel Lustig <dlustig@...dia.com>,
Joel Fernandes <joel@...lfernandes.org>,
Nathan Chancellor <nathan@...nel.org>,
Nick Desaulniers <ndesaulniers@...gle.com>,
Tom Rix <trix@...hat.com>, Palmer Dabbelt <palmer@...belt.com>,
LKML <linux-kernel@...r.kernel.org>,
linux-arch <linux-arch@...r.kernel.org>,
Marco Elver <elver@...gle.com>,
Charalampos Mainas <charalampos.mainas@...il.com>,
Pramod Bhatotia <pramod.bhatotia@...tum.de>,
Soham Chakraborty <s.s.chakraborty@...elft.nl>,
Martin Fink <martin.fink@...tum.de>
Subject: Re: [PATCH RFC] tools/memory-model: Adjust ctrl dependency definition
On Fri, Jul 15, 2022 at 09:27:26AM -0400, Alan Stern wrote:
> On Fri, Jul 15, 2022 at 02:27:28PM +0200, Paul Heidekrüger wrote:
> > I have just been thinking about how to word this patch; am I correct in
> > assuming that the LKMM does not deal with loop conditions? Or in other
> > words, there is no way for a loop condition to impose a ctrl dependency on
> > any WRITE_ONCE's in the loop body? It are only if and switch statements the
> > LKMM is concerned with in the case of ctrl dependencies?
>
> In theory, the LKMM does say that a loop condition imposes a control
> dependency on any memory accesses within the loop body. However, the
> herd7 tool has only very limited support for looping constructs, so in
> practice it's not possible to create suitable litmus tests with loops.
And Alan isn't joking. The closest simulation that I know of is to
combine limited loop unrolling with the "filter" clause. The point of
the filter clause is to eliminate from consideration executions that
need the more iterations of the loop to be unrolled.
And that means that as far as LKMM is concerned, loop-based control
dependencies are similar to those for nested "if" statements.
Thanx, Paul
Powered by blists - more mailing lists