[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20180104204000.GD10427@amd>
Date: Thu, 4 Jan 2018 21:40:00 +0100
From: Pavel Machek <pavel@....cz>
To: Jiri Kosina <jikos@...nel.org>
Cc: Dan Williams <dan.j.williams@...el.com>,
Alan Cox <gnomes@...rguk.ukuu.org.uk>,
Linus Torvalds <torvalds@...ux-foundation.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Mark Rutland <mark.rutland@....com>,
linux-arch@...r.kernel.org, Peter Zijlstra <peterz@...radead.org>,
Greg KH <gregkh@...uxfoundation.org>,
Thomas Gleixner <tglx@...utronix.de>,
Elena Reshetova <elena.reshetova@...el.com>,
Alan Cox <alan@...ux.intel.com>
Subject: Re: [RFC PATCH] asm/generic: introduce if_nospec and nospec_barrier
Hi!
> > So this is in that same category, but yes, it's inconvenient.
>
> Disagreed, violently. CPU has to execute the instructions I ask it to
> execute, and if it executes *anything* else that reveals any information
> about the instructions that have *not* been executed, it's flawed.
I agree that's a flaw. Unfortunately... CPUs do execute instructions
you did not ask them to execute all the time.
Plus CPU designers forgot that cache state (and active row in DRAM) is
actually observable side-effect. ....and that's where we are today.
If you want, I have two systems with AMD Geode. One is PC. Neither is
very fast.
All the other general purpose CPUs I have -- and that includes
smartphones -- are likely out-of-order, and that means flawed.
So... situation is bad.
CPUs do execute intruction you did not ask them to execute. I don't
think that's reasonable to change.
I believe "right" fix would be for CPUs to treat even DRAM read as
side-effects, and adjust speculation accordingly. I'm not sure Intel/AMD
is going to do the right thing here.
Oh, I have an FPGA, too, if you want to play with RISC-V :-).
Best regards,
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
Download attachment "signature.asc" of type "application/pgp-signature" (182 bytes)
Powered by blists - more mailing lists