lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 4 Jun 2021 11:40:47 -0500
From:   Segher Boessenkool <segher@...nel.crashing.org>
To:     Peter Zijlstra <peterz@...radead.org>
Cc:     Linus Torvalds <torvalds@...ux-foundation.org>, will@...nel.org,
        paulmck@...nel.org, stern@...land.harvard.edu,
        parri.andrea@...il.com, boqun.feng@...il.com, npiggin@...il.com,
        dhowells@...hat.com, j.alglave@....ac.uk, luc.maranget@...ia.fr,
        akiyks@...il.com, linux-kernel@...r.kernel.org,
        linux-toolchains@...r.kernel.org, linux-arch@...r.kernel.org
Subject: Re: [RFC] LKMM: Add volatile_if()

On Fri, Jun 04, 2021 at 06:10:55PM +0200, Peter Zijlstra wrote:
> On Fri, Jun 04, 2021 at 10:35:18AM -0500, Segher Boessenkool wrote:
> > On Fri, Jun 04, 2021 at 01:44:37PM +0200, Peter Zijlstra wrote:
> > > On naming (sorry Paul for forgetting that in the initial mail); while I
> > > think using the volatile qualifier for the language feature (can we haz
> > > plz, kthxbai) makes perfect sense, Paul felt that we might use a
> > > 'better' name for the kernel use, ctrl_dep_if() was proposed.
> > 
> > In standard C statements do not have qualifiers.  Unless you can
> > convince the ISO C committee to have them on "if", you will have a very
> > hard time convincing any serious compiler to do this.
> 
> While some people like talking to the Committee, I would much rather
> explore language extensions with the compiler communities. Such
> extensions can then make their way into the Committee once they show
> their usefulness.

My point is that you ask compiler developers to paint themselves into a
corner if you ask them to change such fundamental C syntax.

> If you have another proposal on how to express this; one you'd rather
> see implemented, I'm all ears.

I would love to see something that meshes well with the rest of C.  But
there is no 1-1 translation from C code to machine code (not in either
direction), so anything that more or less depends on that will always
be awkward.  If you can actually express the dependency in your source
code that will get us 95% to where we want to be.

> Data dependencies, control dependencies and address dependencies, C
> doesn't really like them, we rely on them. It would be awesome if we can
> fix this.

Yes.  The problem is that C is a high-level language.  All C semantics
are expressed on a an "as-if" level, never as "do this, then that" --
well, of course that *is* what it says, it's an imperative language just
like most, but that is just how you *think* about things on a conceptual
level, there is nothing that says the machine code has to do the same
thing in the same order as you wrote!


Segher

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ