Re: [PATCH] x86: add cpuidle_kvm driver to allow guest side halt polling

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

 



On Mon, May 20, 2019 at 02:07:09PM +0200, Christian Borntraeger wrote:
> 
> 
> On 20.05.19 13:51, Paolo Bonzini wrote:
> > On 17/05/19 19:48, Marcelo Tosatti wrote:
> >>
> >> The cpuidle_kvm driver allows the guest vcpus to poll for a specified
> >> amount of time before halting. This provides the following benefits
> >> to host side polling:
> >>
> >> 	1) The POLL flag is set while polling is performed, which allows
> >> 	   a remote vCPU to avoid sending an IPI (and the associated
> >>  	   cost of handling the IPI) when performing a wakeup.
> >>
> >> 	2) The HLT VM-exit cost can be avoided.
> >>
> >> The downside of guest side polling is that polling is performed
> >> even with other runnable tasks in the host.
> >>
> >> Results comparing halt_poll_ns and server/client application
> >> where a small packet is ping-ponged:
> >>
> >> host                                        --> 31.33	
> >> halt_poll_ns=300000 / no guest busy spin    --> 33.40	(93.8%)
> >> halt_poll_ns=0 / guest_halt_poll_ns=300000  --> 32.73	(95.7%)
> >>
> >> For the SAP HANA benchmarks (where idle_spin is a parameter 
> >> of the previous version of the patch, results should be the
> >> same):
> >>
> >> hpns == halt_poll_ns
> >>
> >>                           idle_spin=0/   idle_spin=800/	   idle_spin=0/
> >> 			  hpns=200000    hpns=0            hpns=800000
> >> DeleteC06T03 (100 thread) 1.76           1.71 (-3%)        1.78	  (+1%)
> >> InsertC16T02 (100 thread) 2.14     	 2.07 (-3%)        2.18   (+1.8%)
> >> DeleteC00T01 (1 thread)   1.34 		 1.28 (-4.5%)	   1.29   (-3.7%)
> >> UpdateC00T03 (1 thread)	  4.72		 4.18 (-12%)	   4.53   (-5%)
> > 
> > Hi Marcelo,
> > 
> > some quick observations:
> > 
> > 1) This is actually not KVM-specific, so the name and placement of the
> > docs should be adjusted.
> > 
> > 2) Regarding KVM-specific code, however, we could add an MSR so that KVM
> > disables halt_poll_ns for this VM when this is active in the guest?
> 
> The whole code looks pretty much architecture independent. I have also seen cases
> on s390 where this kind of code would make sense. Can we try to make this
> usable for other archs as well?

Will move to drivers/cpuidle/




[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