All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sean Christopherson <seanjc@google.com>
To: Tom Lendacky <thomas.lendacky@amd.com>
Cc: Rick P Edgecombe <rick.p.edgecombe@intel.com>,
	"john.allen@amd.com" <john.allen@amd.com>,
	Weijiang Yang <weijiang.yang@intel.com>,
	"bp@alien8.de" <bp@alien8.de>, "x86@kernel.org" <x86@kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	"pbonzini@redhat.com" <pbonzini@redhat.com>,
	"andrew.cooper3@citrix.com" <andrew.cooper3@citrix.com>
Subject: Re: [RFC PATCH v2 6/6] KVM: SVM: Add CET features to supported_xss
Date: Mon, 26 Jun 2023 09:28:24 -0700	[thread overview]
Message-ID: <ZJm64a7IKuSDS9bz@google.com> (raw)
In-Reply-To: <52ea8386-8652-dd91-23de-9d35781cb131@amd.com>

On Mon, Jun 26, 2023, Tom Lendacky wrote:
> On 6/23/23 17:18, Sean Christopherson wrote:
> > On Fri, Jun 09, 2023, Rick P Edgecombe wrote:
> > > Also, since the host might have CR4.CET set for its own reasons, if the host
> > > handled an exit with the the guests MSR_IA32_S_CET set it could suddenly be
> > > subjected to CET enforcement that it doesn't expect. Waiting to restore it
> > > until returning to the guest is too late.
> > > 
> > > At least that's the reasoning on the VMX side as I understand it
> > 
> > The APM doesn't come right out and say it, but I assume/hope that S_CET is saved
> > on VMRUN and loaded on #VMEXIT, i.e. is the same as VMX for all intents and
> > purposes.
> > 
> > The host save state definitely has a field for S_CET, and VMRUN documents that the
> > guest values are loaded, I just can't find anything in the APM that explicitly states
> > how host S_CET and friends are handled.  E.g. in theory, they could have been
> > shoved into VMSAVE+VMLOAD, though I very much doubt that's the case.
> 
> Yes, the host value is saved/restored on VMRUN/#VMEXIT. Anything that is in
> the VMCB Save Area (the non-SEV-ES save area) is fully virtualized (unless
> noted otherwise) and doesn't require special processing to save/restore the
> host values.

Would it makes sense to add a column in "Table B-2. VMCB Layout, State Save Area"
to specify whether a field is handled by VMRUN+#VMEXIT vs. VMLOAD+VMSAVE?  I can't
find anywhere in the APM where it explicitly states that VMRUN+#VMEXIT context
switches everything in the Save Area except the fields listed in "15.5.2 VMSAVE
and VMLOAD Instructions".

"15.5 VMRUN Instruction" kinda sorta covers that behavior, but the information is
either incomplete or stale, e.g. for host state it says "at least the following"

  Saving Host State. To ensure that the host can resume operation after #VMEXIT,
  VMRUN saves at least the following host state information:

but for guest state it says "the following"

  Loading Guest State. After saving host state, VMRUN loads the following guest
  state from the VMCB:

and then both provide incomplete lists of state.  A pedantic reading of the guest
case suggests that there's a large pile of state that *isn't* loaded, and the host
case isn't all that helpful because it's way too handwavy.

  reply	other threads:[~2023-06-26 16:30 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-24 15:53 [RFC PATCH v2 0/6] SVM guest shadow stack support John Allen
2023-05-24 15:53 ` [RFC PATCH v2 1/6] KVM: x86: SVM: Emulate reads and writes to shadow stack MSRs John Allen
2023-05-24 15:53 ` [RFC PATCH v2 2/6] KVM: x86: SVM: Update dump_vmcb with shadow stack save area additions John Allen
2023-05-24 15:53 ` [RFC PATCH v2 3/6] KVM: x86: SVM: Pass through shadow stack MSRs John Allen
2023-06-24  0:05   ` Sean Christopherson
2023-08-01 15:25     ` John Allen
2023-08-01 16:42       ` Sean Christopherson
2023-08-01 16:51         ` John Allen
2023-05-24 15:53 ` [RFC PATCH v2 4/6] KVM: SVM: Save shadow stack host state on VMRUN John Allen
2023-06-23 21:11   ` Sean Christopherson
2023-08-01 15:19     ` John Allen
2023-08-01 16:28       ` Sean Christopherson
2023-08-01 17:03         ` John Allen
2023-08-02  2:18           ` Yang, Weijiang
2023-08-02 16:38             ` Sean Christopherson
2023-08-03  5:11               ` Yang, Weijiang
2023-05-24 15:53 ` [RFC PATCH v2 5/6] KVM: SVM: Add MSR_IA32_XSS to the GHCB for hypervisor kernel John Allen
2023-05-24 15:53 ` [RFC PATCH v2 6/6] KVM: SVM: Add CET features to supported_xss John Allen
2023-05-24 17:24   ` Edgecombe, Rick P
2023-06-09 15:34     ` John Allen
2023-06-09 16:46       ` Edgecombe, Rick P
2023-06-23 22:18         ` Sean Christopherson
2023-06-26 15:57           ` Tom Lendacky
2023-06-26 16:28             ` Sean Christopherson [this message]
2023-06-26 16:45               ` Tom Lendacky
2023-06-26 18:22                 ` 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=ZJm64a7IKuSDS9bz@google.com \
    --to=seanjc@google.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=bp@alien8.de \
    --cc=john.allen@amd.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=rick.p.edgecombe@intel.com \
    --cc=thomas.lendacky@amd.com \
    --cc=weijiang.yang@intel.com \
    --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 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.