From: Paolo Bonzini <pbonzini@redhat.com>
To: Sean Christopherson <sean.j.christopherson@intel.com>
Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org
Subject: Re: [PATCH] KVM: x86: emulate reserved nops from 0f/18 to 0f/1f
Date: Tue, 19 May 2020 09:43:23 +0200 [thread overview]
Message-ID: <60c2c33c-a316-86d2-118a-96b9f4770559@redhat.com> (raw)
In-Reply-To: <20200519060156.GB4387@linux.intel.com>
On 19/05/20 08:02, Sean Christopherson wrote:
> On Mon, May 18, 2020 at 07:37:08PM +0200, Paolo Bonzini wrote:
>> On 18/05/20 18:07, Sean Christopherson wrote:
>>> On Fri, May 15, 2020 at 12:19:19PM -0400, Paolo Bonzini wrote:
>>>> Instructions starting with 0f18 up to 0f1f are reserved nops, except those
>>>> that were assigned to MPX.
>>> Well, they're probably reserved NOPs again :-D.
>>
>> So are you suggesting adding them back to the list as well?
>
> Doesn't KVM still support MPX?
>
>>>> These include the endbr markers used by CET.
>>> And RDSPP. Wouldn't it make sense to treat RDSPP as a #UD even though it's
>>> a NOP if CET is disabled? The logic being that a sane guest will execute
>>> RDSSP iff CET is enabled, and in that case it'd be better to inject a #UD
>>> than to silently break the guest.
>>
>> We cannot assume that guests will bother checking CPUID before invoking
>> RDSPP. This is especially true userspace, which needs to check if CET
>> is enable for itself and can only use RDSPP to do so.
>
> Ugh, yeah, just read through the CET enabling thread that showed code snippets
> that do exactly this.
>
> I assume it would be best to make SHSTK dependent on unrestricted guest?
> Emulating RDSPP by reading vmcs.GUEST_SSP seems pointless as it will become
> statle apart on the first emulated CALL/RET.
Running arbitrary code under the emulator is problematic anyway with
CET, since you won't be checking ENDBR markers or updating the state
machine. So perhaps in addition to what you say we should have a mode
where, unless unrestricted guest is disabled, the emulator only accepts
I/O, MOV and ALU instructions.
Paolo
next prev parent reply other threads:[~2020-05-19 7:43 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-15 16:19 Paolo Bonzini
2020-05-18 16:07 ` Sean Christopherson
2020-05-18 17:37 ` Paolo Bonzini
2020-05-19 6:02 ` Sean Christopherson
2020-05-19 7:43 ` Paolo Bonzini [this message]
2020-05-19 7:55 ` Sean Christopherson
2020-05-19 8:06 ` Paolo Bonzini
2020-05-19 15:32 ` Sean Christopherson
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=60c2c33c-a316-86d2-118a-96b9f4770559@redhat.com \
--to=pbonzini@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=sean.j.christopherson@intel.com \
/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®