linux-arch.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Peter Zijlstra <peterz@infradead.org>
To: Nadav Amit <namit@vmware.com>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	LKML <linux-kernel@vger.kernel.org>,
	Ingo Molnar <mingo@redhat.com>, X86 ML <x86@kernel.org>,
	Arnd Bergmann <arnd@arndb.de>,
	linux-arch <linux-arch@vger.kernel.org>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	Jiri Kosina <jkosina@suse.cz>, Andy Lutomirski <luto@kernel.org>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Kees Cook <keescook@chromium.org>
Subject: Re: [PATCH v2 0/6] x86/alternatives: text_poke() fixes
Date: Thu, 6 Sep 2018 19:23:00 +0200	[thread overview]
Message-ID: <20180906172300.GK24082@hirez.programming.kicks-ass.net> (raw)
In-Reply-To: <6703CD9F-2D84-4449-A423-A4DC24677673@vmware.com>

On Thu, Sep 06, 2018 at 05:01:25PM +0000, Nadav Amit wrote:
> I’ll give your patch a try once my server goes back online. I was (and still
> am) worried that interrupts would be disabled when __set_pte_vaddr() is
> called, which would make the fix more complicated.

Thing is, we only need the TLB invalidate if the previous PTE was
present and the new PTE is different. If we write the 'first' PTE, all
is fine.

The code as presented WARNs if we do __set_pte_vaddr() that needs a TLB
invalidate and we have IRQs disabled. And aside from the GHES
trainwreck, the patch as given boots and runs fine on my machine.

And no, if there is a caller that has interrupts disabled and needs TLB
invalidate, the patch still is right. Just means that caller is
terminally broken and needs fixing (like GHES).

There is no way x86 can do what needs done with IRQs disabled.

  parent reply	other threads:[~2018-09-06 17:23 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-02 17:32 [PATCH v2 0/6] x86/alternatives: text_poke() fixes Nadav Amit
2018-09-02 17:32 ` Nadav Amit
2018-09-02 17:32 ` [PATCH v2 1/6] Fix "x86/alternatives: Lockdep-enforce text_mutex in text_poke*()" Nadav Amit
2018-09-02 17:32   ` Nadav Amit
2018-09-06 19:40   ` Peter Zijlstra
2018-09-06 19:40     ` Peter Zijlstra
2018-09-06 19:42     ` Nadav Amit
2018-09-06 19:42       ` Nadav Amit
2018-09-06 19:53       ` Peter Zijlstra
2018-09-06 19:53         ` Peter Zijlstra
2018-09-06 19:58         ` Nadav Amit
2018-09-06 19:58           ` Nadav Amit
2018-09-06 20:25           ` Peter Zijlstra
2018-09-06 20:25             ` Peter Zijlstra
2018-09-06 20:57             ` Nadav Amit
2018-09-06 20:57               ` Nadav Amit
2018-09-06 21:41               ` Peter Zijlstra
2018-09-06 21:41                 ` Peter Zijlstra
2018-09-02 17:32 ` [PATCH v2 2/6] x86/mm: temporary mm struct Nadav Amit
2018-09-02 17:32   ` Nadav Amit
2018-09-02 17:32 ` [PATCH v2 3/6] fork: provide a function for copying init_mm Nadav Amit
2018-09-02 17:32   ` Nadav Amit
2018-09-02 17:32 ` [PATCH v2 4/6] x86/alternatives: initializing temporary mm for patching Nadav Amit
2018-09-02 17:32   ` Nadav Amit
2018-09-06  9:01   ` Peter Zijlstra
2018-09-06  9:01     ` Peter Zijlstra
2018-09-07 20:52     ` Nadav Amit
2018-09-07 20:52       ` Nadav Amit
2018-09-02 17:32 ` [PATCH v2 5/6] x86/alternatives: use temporary mm for text poking Nadav Amit
2018-09-02 17:32   ` Nadav Amit
2018-09-02 17:32 ` [PATCH v2 6/6] x86/alternatives: remove text_poke() return value Nadav Amit
2018-09-02 17:32   ` Nadav Amit
2018-09-05 18:56 ` [PATCH v2 0/6] x86/alternatives: text_poke() fixes Peter Zijlstra
2018-09-05 18:56   ` Peter Zijlstra
2018-09-05 19:02   ` Nadav Amit
2018-09-05 19:02     ` Nadav Amit
2018-09-05 19:10     ` Nadav Amit
2018-09-05 19:10       ` Nadav Amit
2018-09-06  8:13       ` Peter Zijlstra
2018-09-06  8:13         ` Peter Zijlstra
2018-09-06  8:42         ` Peter Zijlstra
2018-09-06  8:42           ` Peter Zijlstra
2018-09-06  9:18         ` Peter Zijlstra
2018-09-06  9:18           ` Peter Zijlstra
2018-09-06 10:16         ` Peter Zijlstra
2018-09-06 10:16           ` Peter Zijlstra
2018-09-06 17:01           ` Nadav Amit
2018-09-06 17:01             ` Nadav Amit
2018-09-06 17:17             ` Peter Zijlstra
2018-09-06 17:17               ` Peter Zijlstra
2018-09-06 17:58               ` Nadav Amit
2018-09-06 17:58                 ` Nadav Amit
2018-09-06 18:09                 ` Andy Lutomirski
2018-09-06 18:09                   ` Andy Lutomirski
2018-09-06 18:31                   ` Peter Zijlstra
2018-09-06 18:31                     ` Peter Zijlstra
2018-09-06 18:38                     ` Nadav Amit
2018-09-06 18:38                       ` Nadav Amit
2018-09-06 19:19                       ` Peter Zijlstra
2018-09-06 19:19                         ` Peter Zijlstra
2018-09-06 17:23             ` Peter Zijlstra [this message]
2018-09-06 17:23               ` 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=20180906172300.GK24082@hirez.programming.kicks-ass.net \
    --to=peterz@infradead.org \
    --cc=arnd@arndb.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=jkosina@suse.cz \
    --cc=keescook@chromium.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@kernel.org \
    --cc=mhiramat@kernel.org \
    --cc=mingo@redhat.com \
    --cc=namit@vmware.com \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.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;
as well as URLs for NNTP newsgroup(s).