Re: [PATCH RFC] KVM: x86: vmx: throttle immediate exit through preemtion timer to assist buggy guests

From: Vitaly Kuznetsov
Date: Mon Apr 01 2019 - 04:51:05 EST


Paolo Bonzini <pbonzini@xxxxxxxxxx> writes:

>
> IIRC there was an enlightenment to tell Windows "I support auto-EOI but
> please don't use it". If this is what's happening, that would also fix it.
>

Unfortunately this doesn't save the day, Hyper-V behaves the
same. I'm more and move convinced that the secord IRQ was completely
unrelated:

[011] 515003.517644: kvm_exit: reason EPT_MISCONFIG rip 0xfffff80ca6bf1a5e info 0 0
[011] 515003.517645: kvm_nested_vmexit: rip fffff80ca6bf1a5e reason EPT_MISCONFIG info1 0 info2 0 int_info 0 int_info_err 0
[011] 515003.517649: kvm_emulate_insn: 0:fffff80ca6bf1a5e: 8b 08
[011] 515003.517652: vcpu_match_mmio: gva 0xffffd300eb0a8008 gpa 0x91044008 Read GPA
[011] 515003.517653: kvm_mmio: mmio unsatisfied-read len 4 gpa 0x91044008 val 0x0
[011] 515003.517654: kvm_fpu: unload
[011] 515003.517655: kvm_userspace_exit: reason KVM_EXIT_MMIO (6)

-> injecting

[007] 515003.517664: kvm_set_irq: gsi 23 level 1 source 0
[007] 515003.517666: kvm_msi_set_irq: dst 0 vec 80 (Fixed|physical|level)
[007] 515003.517667: kvm_apic_accept_irq: apicid 0 vec 80 (Fixed|edge)
[011] 515003.517688: kvm_fpu: load
[011] 515003.517689: kvm_mmio: mmio read len 4 gpa 0x91044008 val 0x1
[011] 515003.517692: kvm_nested_vmexit_inject: reason EXTERNAL_INTERRUPT info1 0 info2 0 int_info 80000050 int_info_err 0
[011] 515003.517696: kvm_entry: vcpu 0

-> immediate EOI

[011] 515003.517702: kvm_exit: reason EOI_INDUCED rip 0xfffff80002427e1a info 50 0
[011] 515003.517703: kvm_eoi: apicid 0 vector 80
[011] 515003.517704: kvm_fpu: unload
[011] 515003.517705: kvm_userspace_exit: reason KVM_EXIT_IOAPIC_EOI (26)
[011] 515003.517710: kvm_set_irq: gsi 23 level 1 source 0
[011] 515003.517711: kvm_msi_set_irq: dst 0 vec 80 (Fixed|physical|level)
[011] 515003.517712: kvm_apic_accept_irq: apicid 0 vec 80 (Fixed|edge)
[011] 515003.517714: kvm_fpu: load
[011] 515003.517716: kvm_entry: vcpu 0
[011] 515003.517720: kvm_exit: reason VMRESUME rip 0xfffff80002450115 info 0 0
[011] 515003.517726: kvm_entry: vcpu 0
[011] 515003.517729: kvm_exit: reason PREEMPTION_TIMER rip 0xfffff80ca6bf1a60 info 0 0
[011] 515003.517730: kvm_nested_vmexit: rip fffff80ca6bf1a60 reason PREEMPTION_TIMER info1 0 info2 0 int_info 0 int_info_err 0
[011] 515003.517732: kvm_nested_vmexit_inject: reason EXTERNAL_INTERRUPT info1 0 info2 0 int_info 80000050 int_info_err 0
[011] 515003.517735: kvm_entry: vcpu 0
[011] 515003.517739: kvm_exit: reason EOI_INDUCED rip 0xfffff80002427e1a info 50 0
[011] 515003.517739: kvm_eoi: apicid 0 vector 80
[011] 515003.517740: kvm_fpu: unload
[011] 515003.517741: kvm_userspace_exit: reason KVM_EXIT_IOAPIC_EOI (26)
[011] 515003.517743: kvm_set_irq: gsi 23 level 1 source 0
[011] 515003.517744: kvm_msi_set_irq: dst 0 vec 80 (Fixed|physical|level)
[011] 515003.517744: kvm_apic_accept_irq: apicid 0 vec 80 (Fixed|edge)
[011] 515003.517746: kvm_fpu: load
[011] 515003.517747: kvm_entry: vcpu 0
[011] 515003.517751: kvm_exit: reason VMRESUME rip 0xfffff80002450115 info 0 0

...

--
Vitaly