Re: [PATCH] [2/2] KVM: Add VT-x machine check support

Avi Kivity
2009-06-04T12:49:22Z

Andi Kleen wrote:
>> This assumption is incorrect. This code is executed after preemption
>> has been enabled, and we may have even slept before reaching it.
>>
>
> The only thing that counts here is the context before the machine
> check event. If there was a vmexit we know it was in guest context.
>
> The only requirement we have is that we're running still on the same
> CPU. I assume that's true, otherwise the vmcb accesses wouldn't work?
>

It's not true, we're in preemptible context and may have even slept.

vmcs access work because we have a preempt notifier called when we are
scheduled in, and will execute vmclear/vmptrld as necessary. Look at
kvm_preempt_ops in virt/kvm_main.c.

>> We get both an explicit EXIT_REASON and an exception?
>>
>
> These are different cases. The exception is #MC in guest context,
> the EXIT_REASON is when a #MC happens while the CPU is executing
> the VM entry microcode.
>

I see, thanks.

--
error compiling committee.c: too many arguments to function