Re: [PATCH] don't call adjust_vmx_controls() second time

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

 



On Thu, 2009-08-27 at 19:21 +0300, Avi Kivity wrote:
> On 08/27/2009 06:41 PM, Gleb Natapov wrote:
> > Don't call adjust_vmx_controls() two times for the same control.
> > It restores options that was dropped earlier.
> >    
> 
> Applied, thanks.  Andrew, if you rerun your benchmark atop kvm.git 
> 'next' branch, I believe you will see dramatically better results.

Yes!  CPU is much lower:
user  nice  system   irq softirq  guest   idle  iowait
5.81  0.00    9.48  0.08    1.04  21.32  57.86    4.41

previous CPU:
user  nice  system   irq  softirq guest   idle  iowait
5.67  0.00   11.64  0.09     1.05 31.90  46.06    3.59

new oprofile:

> samples  %        app name                 symbol name
> 885444   53.2905  kvm-intel.ko             vmx_vcpu_run
> 38090     2.2924  qemu-system-x86_64       cpu_physical_memory_rw
> 34764     2.0923  qemu-system-x86_64       phys_page_find_alloc
> 25278     1.5214  vmlinux-2.6.31-rc5-autokern1 native_write_msr_safe
> 18205     1.0957  libc-2.5.so              memcpy
> 14730     0.8865  qemu-system-x86_64       qemu_get_ram_ptr
> 14189     0.8540  kvm.ko                   kvm_arch_vcpu_ioctl_run
> 12380     0.7451  vmlinux-2.6.31-rc5-autokern1 native_set_debugreg
> 12278     0.7390  vmlinux-2.6.31-rc5-autokern1 native_read_msr_safe
> 10871     0.6543  qemu-system-x86_64       virtqueue_get_head
> 10814     0.6508  vmlinux-2.6.31-rc5-autokern1 copy_user_generic_string
> 9080      0.5465  vmlinux-2.6.31-rc5-autokern1 fget_light
> 9015      0.5426  vmlinux-2.6.31-rc5-autokern1 schedule
> 8557      0.5150  qemu-system-x86_64       virtqueue_avail_bytes
> 7805      0.4697  vmlinux-2.6.31-rc5-autokern1 do_select
> 7173      0.4317  qemu-system-x86_64       lduw_phys
> 7019      0.4224  qemu-system-x86_64       main_loop_wait
> 6979      0.4200  vmlinux-2.6.31-rc5-autokern1 audit_syscall_exit
> 5571      0.3353  vmlinux-2.6.31-rc5-autokern1 kfree
> 5170      0.3112  vmlinux-2.6.31-rc5-autokern1 audit_syscall_entry
> 5086      0.3061  vmlinux-2.6.31-rc5-autokern1 fput
> 4631      0.2787  vmlinux-2.6.31-rc5-autokern1 mwait_idle
> 4584      0.2759  kvm.ko                   kvm_load_guest_fpu
> 4491      0.2703  vmlinux-2.6.31-rc5-autokern1 system_call
> 4461      0.2685  vmlinux-2.6.31-rc5-autokern1 __switch_to
> 4431      0.2667  kvm.ko                   kvm_put_guest_fpu
> 4371      0.2631  vmlinux-2.6.31-rc5-autokern1 __down_read
> 4290      0.2582  qemu-system-x86_64       kvm_run
> 4218      0.2539  vmlinux-2.6.31-rc5-autokern1 getnstimeofday
> 4129      0.2485  libpthread-2.5.so        pthread_mutex_lock
> 4122      0.2481  qemu-system-x86_64       ldl_phys
> 4100      0.2468  vmlinux-2.6.31-rc5-autokern1 do_vfs_ioctl
> 3811      0.2294  kvm.ko                   find_highest_vector
> 3593      0.2162  vmlinux-2.6.31-rc5-autokern1 unroll_tree_refs
> 3560      0.2143  vmlinux-2.6.31-rc5-autokern1 try_to_wake_up
> 3550      0.2137  vmlinux-2.6.31-rc5-autokern1 native_get_debugreg
> 3506      0.2110  kvm-intel.ko             vmcs_writel
> 3487      0.2099  vmlinux-2.6.31-rc5-autokern1 task_rq_lock
> 3434      0.2067  vmlinux-2.6.31-rc5-autokern1 __up_read
> 3368      0.2027  librt-2.5.so             clock_gettime
> 3339      0.2010  qemu-system-x86_64       virtqueue_num_heads
> 

Thanks very much for the fix!

-Andrew

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