From: "Luck, Tony" <tony.luck@intel.com>
To: Borislav Petkov <bp@suse.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
Ingo Molnar <mingo@kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
Borislav Petkov <bp@alien8.de>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [GIT PULL] x86/asm changes for v5.6
Date: Wed, 29 Jan 2020 09:07:25 -0800 [thread overview]
Message-ID: <20200129170725.GA21265@agluck-desk2.amr.corp.intel.com> (raw)
In-Reply-To: <20200129132618.GA30979@zn.tnic>
On Wed, Jan 29, 2020 at 02:26:18PM +0100, Borislav Petkov wrote:
> On Tue, Jan 28, 2020 at 12:06:53PM -0800, Linus Torvalds wrote:
> > On Tue, Jan 28, 2020 at 11:51 AM Linus Torvalds
> > <torvalds@linux-foundation.org> wrote:
> > >
> > > ALTERNATIVE_2 \
> > > "cmp $680, %rdx ; jb 3f ; cmpb %dil, %sil; je 4f", \
> > > "movq %rdx, %rcx ; rep movsb; retq", X86_FEATURE_FSRM, \
> > > "cmp $0x20, %rdx; jb 1f; movq %rdx, %rcx; rep movsb; retq", X86_FEATURE_ERMS
> >
> > Note the UNTESTED part.
> >
> > In particular, I didn't check what the priority for the alternatives
> > is. Since FSRM being set always implies ERMS being set too, it may be
> > that the ERMS case is always picked with the above code.
So I wrote a tiny function to test (rather than wrestle with trying
to disassemble the post-alternative patched binary of the running system):
.globl feature
.type feature, @function
feature:
.cfi_startproc
ALTERNATIVE_2 \
"movl $1, %eax", \
"movl $2, %eax", X86_FEATURE_FSRM, \
"movl $3, %eax", X86_FEATURE_ERMS
ret
This returns "3" ... not what we want. But swapping the ERMS/FSRM order
gets the correct version.
> And yes, your idea makes sense to use ALTERNATIVE_2 but as it is, it
> triple-faults my guest. I'll debug it more later to find out why, when I
> get a chance.
Triple fault is a surprise. As long as you have ERMS, it shouldn't
hurt to take the FSRM code path.
Does the code that performs the patch use memmove() to copy the alternate
version into place? That could get ugly!
I'm not in the same city as my test machine, so I'm going to defer testing
Linus' patch (with FSRM/ERMS swapped) until I'm near enough to poke it
if it breaks.
-Tony
next prev parent reply other threads:[~2020-01-29 17:07 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-28 16:59 Ingo Molnar
2020-01-28 19:51 ` Linus Torvalds
2020-01-28 20:06 ` Linus Torvalds
2020-01-28 20:14 ` Ingo Molnar
2020-01-28 20:41 ` Luck, Tony
2020-01-28 21:04 ` Linus Torvalds
2020-01-28 22:31 ` Borislav Petkov
2020-01-29 18:00 ` Josh Poimboeuf
2020-01-29 13:26 ` Borislav Petkov
2020-01-29 17:07 ` Luck, Tony [this message]
2020-01-29 17:40 ` Linus Torvalds
2020-01-29 18:34 ` Borislav Petkov
2020-01-29 18:56 ` Linus Torvalds
2020-01-30 8:51 ` Borislav Petkov
2020-01-30 15:27 ` Linus Torvalds
2020-01-30 17:39 ` Borislav Petkov
2020-01-30 18:02 ` Linus Torvalds
2020-01-31 14:27 ` Borislav Petkov
2020-01-31 16:05 ` Josh Poimboeuf
2020-01-29 19:42 ` Luck, Tony
2020-01-30 5:47 ` Damian Tometzki
2020-01-30 7:55 ` Borislav Petkov
2020-01-30 11:10 ` Mike Rapoport
2020-01-30 11:53 ` Borislav Petkov
2020-01-30 11:59 ` Mike Rapoport
2020-01-30 12:06 ` Borislav Petkov
2020-01-30 16:45 ` Damian Tometzki
2020-01-30 17:39 ` Borislav Petkov
2020-01-28 21:15 ` pr-tracker-bot
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=20200129170725.GA21265@agluck-desk2.amr.corp.intel.com \
--to=tony.luck@intel.com \
--cc=a.p.zijlstra@chello.nl \
--cc=akpm@linux-foundation.org \
--cc=bp@alien8.de \
--cc=bp@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--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
all inboxes | Powered by JetHome®