Re: Starting a VM reboots my machine

Avi Kivity
2007-11-05T15:25:17Z

Andrea Arcangeli wrote:
> On Mon, Nov 05, 2007 at 04:25:00PM +0200, Avi Kivity wrote:
>
>> This one's obviously correct, will apply...
>>
>
> thanks!
>
>
>>> Signed-off-by: Andrea Arcangeli <andrea-l3A5Bk7waGM@public.gmane.org>
>>>
>>> index 9584d0f..95a3489 100644
>>> --- a/drivers/kvm/svm.c
>>> +++ b/drivers/kvm/svm.c
>>> @@ -1459,11 +1459,6 @@ static void svm_vcpu_run(struct kvm_vcpu *vcpu,
>>> struct kvm_run *kvm_run)
>>> local_irq_enable();
>>> - vcpu->guest_mode = 1;
>>> - if (vcpu->requests)
>>> - if (test_and_clear_bit(KVM_TLB_FLUSH, &vcpu->requests))
>>> - svm_flush_tlb(vcpu);
>>> -
>>> asm volatile (
>>> #ifdef CONFIG_X86_64
>>> "push %%rbp; \n\t"
>>>
>>>
>>>
>> Against which kvm is that? It isn't 2.6.24-rc, or kvm.git, or 2.6.23?
>>
>
> I use the bleeding edge for userland and kernel, so kvm.git with "make
> sync".
>
>

Well, I can't find anything like that it my tree. Maybe something's stale?

>> Anyway, removing guest tlb flushing won't be good for the guest.
>>
>
> Doesn't the common layer already take care of test_and_clearing that
> bitflag and calling kvm_x86_ops->tlb_flush before kvm_x86_ops->run in
> __vcpu_run?

It does.

> I thought it was an obsolete piece of code (besides it
> doesn't compile anyway it would need to be changed KVM_REQ_TLB_FLUSH)
> and it got re-introduced by mistake with a merging error in the last
> commit.
>

We're definitely looking at different trees.

--
Any sufficiently difficult bug is indistinguishable from a feature.