Re: [PATCH] KVM: SVM: Pass through the host kernel's IO delay port

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

 



Paolo,

As said in private email you can change the port 80 passthrough to
disabled only on those hosts that have broken port 80 (you can find the
blacklist at arch/x86/kernel/io_delay.c).c

On Fri, Jun 19, 2009 at 12:15:53PM +0200, Paolo Bonzini wrote:
> From: Paolo Bonzini <pbonzini@xxxxxxxxxx>
> 
> KVM's optimization of guest port 80 accesses was removed last May 11
> in commit 99f85a.  However, this probably has speed penalties.  I don't
> have a machine to test but the equivalent VMX patch (fdef3ad) reported
> a speedup of 3-5%, and on the Xen mailing list it was mentioned that on
> Xen passing port 80 through had positive effects on startup speed.
> 
> We can enable passthrough to the same port the host kernel uses instead.
> 
> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
> ---
>  arch/x86/kernel/io_delay.c |    1 +
>  arch/x86/kvm/svm.c         |    5 +++++
>  2 files changed, 6 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/x86/kernel/io_delay.c b/arch/x86/kernel/io_delay.c
> index a979b5b..a478cb2 100644
> --- a/arch/x86/kernel/io_delay.c
> +++ b/arch/x86/kernel/io_delay.c
> @@ -129,3 +129,4 @@ static int __init io_delay_param(char *s)
>  }
>  
>  early_param("io_delay", io_delay_param);
> +EXPORT_SYMBOL_GPL(io_delay_type);
> diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
> index 1f8510c..c49f4db 100644
> --- a/arch/x86/kvm/svm.c
> +++ b/arch/x86/kvm/svm.c
> @@ -26,6 +26,7 @@
>  #include <linux/highmem.h>
>  #include <linux/sched.h>
>  
> +#include <asm/io.h>
>  #include <asm/desc.h>
>  
>  #include <asm/virtext.h>
> @@ -411,6 +412,10 @@ static __init int svm_hardware_setup(void)
>  
>  	iopm_va = page_address(iopm_pages);
>  	memset(iopm_va, 0xff, PAGE_SIZE * (1 << IOPM_ALLOC_ORDER));
> +	if (io_delay_type == CONFIG_IO_DELAY_TYPE_0X80)
> +		clear_bit(0x80, iopm_va);
> +	else if (io_delay_type == CONFIG_IO_DELAY_TYPE_0XED)
> +		clear_bit(0xED, iopm_va);
>  	iopm_base = page_to_pfn(iopm_pages) << PAGE_SHIFT;
>  
>  	if (boot_cpu_has(X86_FEATURE_NX))
> -- 
> 1.6.0.3
> 
> --
> 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
--
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