RE: large amount of NMI_INTERRUPT disgrade winxp VM performance much.

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

 



> From: ya su
> Sent: Thursday, August 11, 2011 11:57 AM
> 
>  When I run winxp guest on one server, copy one file about 4G will
> take a time of 40-50 min; if I run a FC14 guest, it will take about
> 2-3 min;
> 
>  I copy and run the winxp image on another server, it works well, take
> about 3min.
> 
>  I run trace-cmd while copying files, the main difference of  the two
> outputs is that: the slow one's output have many NMI_INTERRUPT
> vm_exit, while the fast output has no such vm_exit. both of the two
> servers have NMI enabled default. the slow one's output as the
> following:
>  qemu-system-x86-4454  [004]   549.958147: kvm_entry:
> vcpu 0
>  qemu-system-x86-4454  [004]   549.958172: kvm_exit:
> reason EXCEPTION_NMI rip 0x8051d5e1
>  qemu-system-x86-4454  [004]   549.958172: kvm_page_fault:
> address c8f8a000 error_code b
>  qemu-system-x86-4454  [004]   549.958177: kvm_entry:
> vcpu 0
>  qemu-system-x86-4454  [004]   549.958202: kvm_exit:
> reason EXCEPTION_NMI rip 0x8051d5e1
>  qemu-system-x86-4454  [004]   549.958204: kvm_page_fault:
> address c8f8b000 error_code b
>  qemu-system-x86-4454  [004]   549.958209: kvm_entry:
> vcpu 0
>  qemu-system-x86-4454  [004]   549.958234: kvm_exit:
> reason EXCEPTION_NMI rip 0x8051d5e1
>  qemu-system-x86-4454  [004]   549.958234: kvm_page_fault:
> address c8f8c000 error_code b
>  qemu-system-x86-4454  [004]   549.958239: kvm_entry:
> vcpu 0
>  qemu-system-x86-4454  [004]   549.958264: kvm_exit:
> reason EXCEPTION_NMI rip 0x8051d5e1
>  qemu-system-x86-4454  [004]   549.958264: kvm_page_fault:
> address c8f8d000 error_code b
>  qemu-system-x86-4454  [004]   549.958267: kvm_entry:
> vcpu 0
>  qemu-system-x86-4454  [004]   549.958292: kvm_exit:
> reason EXCEPTION_NMI rip 0x8051d5e1
>  qemu-system-x86-4454  [004]   549.958294: kvm_page_fault:
> address c8f8e000 error_code b
>  qemu-system-x86-4454  [004]   549.958299: kvm_entry:
> vcpu 0
>  qemu-system-x86-4454  [004]   549.958324: kvm_exit:
> reason EXCEPTION_NMI rip 0x8051d5e1
>  qemu-system-x86-4454  [004]   549.958324: kvm_page_fault:
> address c8f8f000 error_code b
>  qemu-system-x86-4454  [004]   549.958329: kvm_entry:
> vcpu 0
>  qemu-system-x86-4454  [004]   549.958447: kvm_exit:
> reason EXTERNAL_INTERRUPT rip 0x80547ac8
>  qemu-system-x86-4454  [004]   549.958450: kvm_entry:
> vcpu 0
>  qemu-system-x86-4454  [004]   549.958461: kvm_exit:
> reason CR_ACCESS rip 0x8054428c
>  qemu-system-x86-4454  [004]   549.958461: kvm_cr:
> cr_write 0 = 0x80010031
>  qemu-system-x86-4454  [004]   549.958541: kvm_entry:
> vcpu 0
>  qemu-system-x86-4454  [004]   549.958573: kvm_exit:
> reason CR_ACCESS rip 0x80546beb
>  qemu-system-x86-4454  [004]   549.958575: kvm_cr:
> cr_write 0 = 0x8001003b
>  qemu-system-x86-4454  [004]   549.958585: kvm_entry:
> vcpu 0
>  qemu-system-x86-4454  [004]   549.958610: kvm_exit:
> reason CR_ACCESS rip 0x80546b6c
>  qemu-system-x86-4454  [004]   549.958610: kvm_cr:
> cr_write 3 = 0x6e00020
>  qemu-system-x86-4454  [004]   549.958621: kvm_entry:
> vcpu 0
>  qemu-system-x86-4454  [004]   549.958645: kvm_exit:
> reason EXCEPTION_NMI rip 0x8051d7f4
>  qemu-system-x86-4454  [004]   549.958645: kvm_page_fault:
> address c0648200 error_code 3
>  qemu-system-x86-4454  [004]   549.958653: kvm_entry:
> vcpu 0
>  qemu-system-x86-4454  [004]   549.958725: kvm_exit:
> reason EXCEPTION_NMI rip 0x8050a26a
>  qemu-system-x86-4454  [004]   549.958726: kvm_page_fault:
> address c0796994 error_code 3
>  qemu-system-x86-4454  [004]   549.958738: kvm_entry:
> vcpu 0
>  qemu-system-x86-4454  [004]   549.958750: kvm_exit:
> reason IO_INSTRUCTION rip 0x806edad0
>  qemu-system-x86-4454  [004]   549.958750: kvm_pio:
> pio_write at 0xc050 size 2 count 1
>  qemu-system-x86-4454  [004]   549.958838: kvm_entry:
> vcpu 0
>  qemu-system-x86-4454  [004]   549.958844: kvm_exit:
> reason APIC_ACCESS rip 0x806e7b85
>  qemu-system-x86-4454  [004]   549.958852: kvm_apic:
> apic_read APIC_ICR = 0x40041
>  qemu-system-x86-4454  [004]   549.958855: kvm_mmio:
> mmio
> read len 4 gpa 0xfee00300 val 0x40041
>  qemu-system-x86-4454  [004]   549.958857: kvm_mmio:
> mmio
> write len 4 gpa 0xfee00300 val 0x40041
>  qemu-system-x86-4454  [004]   549.958858: kvm_apic:
> apic_write APIC_ICR = 0x40041
>  qemu-system-x86-4454  [004]   549.958860: kvm_apic_ipi:         dst 1
> vec 65 (Fixed|physical|de-assert|edge|self)
>  qemu-system-x86-4454  [004]   549.958860: kvm_apic_accept_irq:
> apicid 0 vec 65 (Fixed|edge)
> 
>  Even I disable the NMI when I boot the kernel with nmi_watchdog=0,
> the trace-cmd output still show there are many NMI_INTERRUPT. I find
> that in /proc/interrupts, the amount of NMI is 0. Does this mean that
> NMI is produced in winxp guest OS, or this setting can not hinder kvm
> to catch NMI interrupt?
> 
>   I think the difference between FC14 and winxp is that: fc14 process
> the NMI interrupt correctly, but winxp can not, is this right?
> 
>   I run qemu-kvm with version 0.14.0, kernel version 2.6.32-131.6.4. I
> change kvm-kmod to 2.6.32-27, it produce the same result.
> 
>   Any suggestions? thanks.
> 

Here " reason EXCEPTION_NMI" implicates the cause from either an 
exception (if the bit in exception bitmap is set) or an NMI (when "NMI
exiting control is set). In most time you should see majority of this
category as page fault, which is revealed by:

>  qemu-system-x86-4454  [004]   549.958172: kvm_exit:
> reason EXCEPTION_NMI rip 0x8051d5e1
>  qemu-system-x86-4454  [004]   549.958172: kvm_page_fault:
> address c8f8a000 error_code b

error_code 'b' means the page fault is caused by a write access in kernel
space, but related page entry has reserved bit set. This is usually used by
OS for some special tricks, e.g. to handle page swaps. You may check related
setting in win guest.

Thanks
Kevin
--
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