Re: Windows Server 2008R2 KVM guest performance issues

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Il 27/08/2013 09:38, Gleb Natapov ha scritto:
> On Tue, Aug 27, 2013 at 09:18:00AM +0200, Paolo Bonzini wrote:
>>> I've captured 20,000 lines of kvm trace output.  This can be found
>>> https://gist.github.com/devicenull/fa8f49d4366060029ee4/raw/fb89720d34b43920be22e3e9a1d88962bf305da8/trace
>>
>> The guest is doing quite a lot of exits per second, mostly to (a) access
>> the ACPI timer
> I see a lot of PM timer access not ACPI timer. The solution for that is
> the patchset Brian linked.

ACPI timer = PM timer, no?

>>                 (b) service NMIs.  In fact, every NMI is reading the
>> timer too and causing an exit to QEMU.
>>
> Do you mean "kvm_exit: reason EXCEPTION_NMI rip 0xfffff800016dcf84 info
> 0 80000307"? Those are not NMIs, single NMI will kill Windows, they are #NM
> exceptions.

Oops, yes.

> Brian, is your workload uses floating point calculation?

Yeah, it looks like it does, there are a lot of kvm_fpu tracepoints too.

Basically the problem is that every exit to userspace unloads the FPU in
vcpu_put.

 qemu-system-x86-16189 [003] d...  9439.144500: kvm_entry: vcpu 12
 qemu-system-x86-16189 [003] d...  9439.144502: kvm_exit: reason EXCEPTION_NMI rip 0xfffff800016dcf84 info 0 80000307
 qemu-system-x86-16189 [003] ....  9439.144502: kvm_fpu: load
 qemu-system-x86-16189 [003] d...  9439.144503: kvm_entry: vcpu 12
 qemu-system-x86-16189 [003] d...  9439.144505: kvm_exit: reason IO_INSTRUCTION rip 0xfffff8000162d17d info b008000b 0
 qemu-system-x86-16189 [003] ....  9439.144506: kvm_emulate_insn: 0:fffff8000162d17d:ed (prot64)
 qemu-system-x86-16189 [003] ....  9439.144506: kvm_pio: pio_read at 0xb008 size 4 count 1
 qemu-system-x86-16189 [003] ....  9439.144507: kvm_userspace_exit: reason KVM_EXIT_IO (2)
 qemu-system-x86-16189 [003] ....  9439.144508: kvm_fpu: unload
 qemu-system-x86-16189 [003] d...  9439.144578: kvm_entry: vcpu 12
 qemu-system-x86-16189 [003] d...  9439.144579: kvm_exit: reason EXCEPTION_NMI rip 0xfffff800016dcf84 info 0 80000307
 qemu-system-x86-16189 [003] ....  9439.144581: kvm_fpu: load
 qemu-system-x86-16189 [003] d...  9439.144581: kvm_entry: vcpu 12
 qemu-system-x86-16189 [003] d...  9439.144583: kvm_exit: reason IO_INSTRUCTION rip 0xfffff8000162d17d info b008000b 0
 qemu-system-x86-16189 [003] ....  9439.144585: kvm_emulate_insn: 0:fffff8000162d17d:ed (prot64)
 qemu-system-x86-16189 [003] ....  9439.144585: kvm_pio: pio_read at 0xb008 size 4 count 1
 qemu-system-x86-16189 [003] ....  9439.144586: kvm_userspace_exit: reason KVM_EXIT_IO (2)
 qemu-system-x86-16189 [003] ....  9439.144587: kvm_fpu: unload
 qemu-system-x86-16189 [003] d...  9439.144787: kvm_entry: vcpu 12
 qemu-system-x86-16189 [003] d...  9439.144788: kvm_exit: reason EXCEPTION_NMI rip 0xfffff800016dcf84 info 0 80000307
 qemu-system-x86-16189 [003] ....  9439.144789: kvm_fpu: load
 qemu-system-x86-16189 [003] d...  9439.144789: kvm_entry: vcpu 12
 qemu-system-x86-16189 [003] d...  9439.144791: kvm_exit: reason IO_INSTRUCTION rip 0xfffff8000162d17d info b008000b 0
 qemu-system-x86-16189 [003] ....  9439.144792: kvm_emulate_insn: 0:fffff8000162d17d:ed (prot64)
 qemu-system-x86-16189 [003] ....  9439.144793: kvm_pio: pio_read at 0xb008 size 4 count 1
 qemu-system-x86-16189 [003] ....  9439.144794: kvm_userspace_exit: reason KVM_EXIT_IO (2)
 qemu-system-x86-16189 [003] ....  9439.144794: kvm_fpu: unload

It should be interesting to analyze the cost in kvm-unit-tests.  I'll look
at it.

Paolo
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux