From: "Luck, Tony" <tony.luck@intel.com>
To: Andy Lutomirski <luto@amacapital.net>
Cc: Peter Zijlstra <peterz@infradead.org>,
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 10:46:06 -0800 [thread overview]
Message-ID: <20190207184606.GB17049@agluck-desk> (raw)
In-Reply-To: <8D8DF81C-3331-4105-8594-9600281010EF@amacapital.net>
On Thu, Feb 07, 2019 at 10:07:28AM -0800, Andy Lutomirski wrote:
> Joining this thread late...
>
> This is all IMO rather crazy. How about we fiddle with CR0 to turn off
> the cache, then fiddle with page tables, then turn caching on? Or, heck,
> see if there’s some chicken bit we can set to improve the situation
> while we’re in the MCE handler.
> Also, since I don’t really want
> to dig into the code to answer this, how exactly do we do a broadcast TLB
> flush from MCE context? We’re super-duper-atomic, and locks might be
> held on various CPUs. Shouldn’t we be telling the cpa code to skip
> the flush and then just have the MCE code do a full flush manually?
> The MCE code has already taken over all CPUs on non-LMCE systems.
MCE code doesn't do this while still in MCE context. You helped
restructure this code so the recovery bits happen after we call
ist_begin_non_atomic(regs);
on just the CPU that hit the error (in the broadcast case we've
let the other out of MCE jail by this point).
So there is a small window where we know the broken page is still
mapped WB in the kernel 1:1 map. But we just live dangerously for
a few more microseconds until we can fix the map.
> Or, better yet, get Intel to fix the hardware. A failed speculative
> access while already in MCE context should just be ignored.
Good idea.
-Tony
next prev parent reply other threads:[~2019-02-07 18:46 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
2019-02-07 17:57 ` Peter Zijlstra
2019-02-07 18:07 ` Andy Lutomirski
2019-02-07 18:46 ` Luck, Tony [this message]
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=20190207184606.GB17049@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@amacapital.net \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.