[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210607141242.GD18427@gate.crashing.org>
Date: Mon, 7 Jun 2021 09:12:42 -0500
From: Segher Boessenkool <segher@...nel.crashing.org>
To: "Paul E. McKenney" <paulmck@...nel.org>
Cc: Linus Torvalds <torvalds@...ux-foundation.org>,
Alan Stern <stern@...land.harvard.edu>,
Peter Zijlstra <peterz@...radead.org>,
Will Deacon <will@...nel.org>,
Andrea Parri <parri.andrea@...il.com>,
Boqun Feng <boqun.feng@...il.com>,
Nick 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>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
linux-toolchains@...r.kernel.org,
linux-arch <linux-arch@...r.kernel.org>
Subject: Re: [RFC] LKMM: Add volatile_if()
On Sun, Jun 06, 2021 at 04:37:29PM -0700, Paul E. McKenney wrote:
> > > The barrier() thing can work - all we need to do is to simply make it
> > > impossible for gcc to validly create anything but a conditional
> > > branch.
> >
> > And the only foolproof way of doing that is by writing a branch.
[ ... ]
> > I am saying that if you depend on that some C code you write will result
> > in some particular machine code, without actually *forcing* the compiler
> > to output that exact machine code, then you will be disappointed. Maybe
> > not today, and maybe it will take years, if you are lucky.
> >
> > (s/forcing/instructing/ of course, compilers have feelings too!)
>
> OK, I will bite...
>
> What would you suggest as a way of instructing the compiler to emit the
> conditional branch that we are looking for?
You write it in the assembler code.
Yes, it sucks. But it is the only way to get a branch if you really
want one. Now, you do not really need one here anyway, so there may be
some other way to satisfy the actual requirements.
Segher
Powered by blists - more mailing lists