Re: [PATCH] KVM: nVMX: set rflags to specify success in handle_invvpid() default case

From: Jim Mattson
Date: Thu Jan 23 2020 - 13:22:38 EST


On Thu, Jan 23, 2020 at 1:54 AM Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote:
>
> On 23/01/20 10:45, Vitaly Kuznetsov wrote:
> >>> SDM says that "If an
> >>> unsupported INVVPID type is specified, the instruction fails." and this
> >>> is similar to INVEPT and I decided to check what handle_invept()
> >>> does. Well, it does BUG_ON().
> >>>
> >>> Are we doing the right thing in any of these cases?
> >>
> >> Yes, both INVEPT and INVVPID catch this earlier.
> >>
> >> So I'm leaning towards not applying Miaohe's patch.
> >
> > Well, we may at least want to converge on BUG_ON() for both
> > handle_invvpid()/handle_invept(), there's no need for them to differ.
>
> WARN_ON_ONCE + nested_vmx_failValid would probably be better, if we
> really want to change this.
>
> Paolo

In both cases, something is seriously wrong. The only plausible
explanations are compiler error or hardware failure. It would be nice
to handle *all* such failures with a KVM_INTERNAL_ERROR exit to
userspace. (I'm also thinking of situations like getting a VM-exit for
INIT.)