Re: [PATCH] kvm-vmx: add module parameter to avoid trapping HLT instructions (v2)

Avi Kivity
2010-12-03T09:37:05Z

On 12/02/2010 10:51 PM, Anthony Liguori wrote:
>> VCPU in HLT state only allows injection of certain events that
>> would be delivered on HLT. #PF is not one of them.
>
> But you can't inject an exception into a guest while the VMCS is
> active, can you?

No, but this is irrelevant.

> So the guest takes an exit while in the hlt instruction but that's no
> different than if the guest has been interrupted because of hlt exiting.

hlt exiting doesn't leave vcpu in the halted state (since hlt has not
been executed). So currently we never see a vcpu in halted state.

>
>> You'd have to handle this situation on event injection, vmentry fails
>> otherwise. Or perhaps clear HLT state on vmexit and vmentry.
>
> So this works today because on a hlt exit, emulate_halt() will clear
> the the HLT state which then puts the the vcpu into a state where it
> can receive an exception injection?

The halt state is never entered.

--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.