Re: [PATCH] Replace kvm io delay pv-ops with linux magic

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

 



On 11/18/09 20:56, Alexander Graf wrote:
> Currently we use pv-ops to tell linux not to do anything on io_delay.
>
> While the basic idea is good IMHO, I don't see why we would need pv-ops
> for that. The io delay function already has a switch that can do nothing
> if you're so inclined.
>
> So here's a patch (stacked on top of the previous pv-ops series) that
> removes the io delay pv-ops hook and just sets the native io delay
> variable instead.
>   

Can you just get rid of the io_delay op altogether?  If KVM doesn't need
it, then nobody does.

    J

> Signed-off-by: Alexander Graf <agraf@xxxxxxx>
> ---
>  arch/x86/Kconfig      |   14 --------------
>  arch/x86/kernel/kvm.c |   16 +++-------------
>  2 files changed, 3 insertions(+), 27 deletions(-)
>
> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
> index 97d4f92..ebed686 100644
> --- a/arch/x86/Kconfig
> +++ b/arch/x86/Kconfig
> @@ -527,20 +527,6 @@ config KVM_GUEST
>  	  This option enables various optimizations for running under the KVM
>  	  hypervisor.
>  
> -config KVM_IODELAY
> -	bool "KVM IO-delay support"
> -	depends on KVM_GUEST
> -	select PARAVIRT_CPU
> -	---help---
> -	  Usually we wait for PIO access to complete. When inside KVM there's
> -	  no need to do that, as we know that we're not going through a bus,
> -	  but process PIO requests instantly.
> -
> -	  This option disables PIO waits, but drags in CPU-bound pv-ops. Thus
> -	  you will probably get more speed loss than speedup using this option.
> -
> -	  If in doubt, say N.
> -
>  config KVM_MMU
>  	bool "KVM PV MMU support"
>  	depends on KVM_GUEST
> diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
> index 7e0207f..be182e6 100644
> --- a/arch/x86/kernel/kvm.c
> +++ b/arch/x86/kernel/kvm.c
> @@ -29,15 +29,6 @@
>  #include <linux/hardirq.h>
>  #include <asm/timer.h>
>  
> -#ifdef CONFIG_KVM_IODELAY
> -/*
> - * No need for any "IO delay" on KVM
> - */
> -static void kvm_io_delay(void)
> -{
> -}
> -#endif  /* CONFIG_KVM_IODELAY */
> -
>  #ifdef CONFIG_KVM_MMU
>  #define MMU_QUEUE_SIZE 1024
>  
> @@ -201,13 +192,12 @@ static void kvm_leave_lazy_mmu(void)
>  
>  static void __init paravirt_ops_setup(void)
>  {
> +	extern int io_delay_type;
>  	pv_info.name = "KVM";
>  	pv_info.paravirt_enabled = 1;
>  
> -#ifdef CONFIG_KVM_IODELAY
> -	if (kvm_para_has_feature(KVM_FEATURE_NOP_IO_DELAY))
> -		pv_cpu_ops.io_delay = kvm_io_delay;
> -#endif
> +	/* Disable IO delay */
> +	io_delay_type = CONFIG_IO_DELAY_TYPE_NONE;
>  
>  #ifdef CONFIG_KVM_MMU
>  	if (kvm_para_has_feature(KVM_FEATURE_MMU_OP)) {
>   

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