From: "Luck, Tony" <tony.luck@intel.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
Dan Williams <dan.j.williams@intel.com>,
Ingo Molnar <mingo@kernel.org>,
Linux List Kernel Mailing <linux-kernel@vger.kernel.org>,
Dave Hansen <dave.hansen@linux.intel.com>,
Andy Lutomirski <luto@kernel.org>, Borislav Petkov <bp@alien8.de>,
Thomas Gleixner <tglx@linutronix.de>,
Rik van Riel <riel@surriel.com>
Subject: Re: [GIT PULL] x86/mm changes for v4.21
Date: Thu, 7 Feb 2019 09:36:00 -0800 [thread overview]
Message-ID: <20190207173600.GA15682@agluck-desk> (raw)
In-Reply-To: <20190207140131.GB32477@hirez.programming.kicks-ass.net>
On Thu, Feb 07, 2019 at 03:01:31PM +0100, Peter Zijlstra wrote:
> On Thu, Feb 07, 2019 at 11:50:52AM +0000, Linus Torvalds wrote:
> > If you re-generate the canonical address in __cpa_addr(), now we'll
> > actually have the real virtual address around for a lot of code-paths
> > (pte lookup etc), which was what people wanted to avoid in the first
> > place.
>
> Note that it's an 'unsigned long' address, not an actual pointer, and
> (afaict) non of the code paths use it as a pointer. This _should_ avoid
> the CPU from following said pointer and doing a deref on it.
The type doesn't matter. You want to avoid having the
true value in the register as long as possible. Ideal
spot would be the instruction before the TLB is flushed.
The speculative issue is that any branch you encounter
while you have the address in a register may be mispredicted.
You might also get a bogus hit in the branch target cache
and speculatively jump into the weeds. While there you
could find an instruction that loads using that register, and
even though it is speculative and the instruction won't
retire, a machine check log will be created in a bank (no
machine check is signalled).
Once the TLB is updated, you are safe. A speculative
access to an uncached address will not load or log anything.
-Tony
next prev parent reply other threads:[~2019-02-07 17:36 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-24 23:11 [GIT PULL] x86/mm changes for v4.21 Ingo Molnar
2018-12-27 2:45 ` pr-tracker-bot
2019-02-07 0:17 ` Luck, Tony
2019-02-07 0:33 ` Dave Hansen
2019-02-07 9:50 ` Peter Zijlstra
2019-02-07 10:18 ` Peter Zijlstra
2019-02-07 11:50 ` Linus Torvalds
2019-02-07 14:01 ` Peter Zijlstra
2019-02-07 17:36 ` Luck, Tony [this message]
2019-02-07 17:57 ` Peter Zijlstra
2019-02-07 18:07 ` Andy Lutomirski
2019-02-07 18:46 ` Luck, Tony
2019-02-07 20:24 ` Andy Lutomirski
2019-02-07 22:53 ` Linus Torvalds
2019-02-07 23:05 ` Andy Lutomirski
2019-02-07 18:40 ` Luck, Tony
2019-02-08 12:08 ` [PATCH] x86/mm/cpa: Fix set_mce_nospec() Peter Zijlstra
2019-02-08 13:37 ` [tip:x86/urgent] " tip-bot for Peter Zijlstra
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=20190207173600.GA15682@agluck-desk \
--to=tony.luck@intel.com \
--cc=bp@alien8.de \
--cc=dan.j.williams@intel.com \
--cc=dave.hansen@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@kernel.org \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=riel@surriel.com \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox