On 10/21/2020 6:01 AM, Sean Christopherson wrote:
On Mon, Oct 12, 2020 at 11:35:41AM +0800, Chenyi Qiang wrote:
From: Sean Christopherson <sean.j.christopher...@intel.com>

Convert vcpu_vmx.exit_reason from a u32 to a union (of size u32).  The
full VM_EXIT_REASON field is comprised of a 16-bit basic exit reason in
bits 15:0, and single-bit modifiers in bits 31:16.

Historically, KVM has only had to worry about handling the "failed
VM-Entry" modifier, which could only be set in very specific flows and
required dedicated handling.  I.e. manually stripping the FAILED_VMENTRY
bit was a somewhat viable approach.  But even with only a single bit to
worry about, KVM has had several bugs related to comparing a basic exit
reason against the full exit reason store in vcpu_vmx.

Upcoming Intel features, e.g. SGX, will add new modifier bits that can
be set on more or less any VM-Exit, as opposed to the significantly more
restricted FAILED_VMENTRY, i.e. correctly handling everything in one-off
flows isn't scalable.  Tracking exit reason in a union forces code to
explicitly choose between consuming the full exit reason and the basic
exit, and is a convenient way to document and access the modifiers.

No functional change intended.

Cc: Xiaoyao Li <xiaoyao...@intel.com>
Signed-off-by: Sean Christopherson <sean.j.christopher...@intel.com>

This needs your SOB since you are involved in the handling of the patch.
Sorry for the late response, my mailbox encountered some issues...

Will add the SOB here.


Reply via email to