From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marcelo Tosatti Subject: Re: [PATCH] KVM: SVM: Pass through the host kernel's IO delay port Date: Mon, 22 Jun 2009 14:35:28 -0300 Message-ID: <20090622173528.GA4673@amt.cnet> References: <1245406553-22013-1-git-send-email-pbonzini@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: kvm@vger.kernel.org To: Paolo Bonzini Return-path: Received: from mx2.redhat.com ([66.187.237.31]:53175 "EHLO mx2.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751966AbZFVRgB (ORCPT ); Mon, 22 Jun 2009 13:36:01 -0400 Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id n5MHa4Yt032670 for ; Mon, 22 Jun 2009 13:36:04 -0400 Content-Disposition: inline In-Reply-To: <1245406553-22013-1-git-send-email-pbonzini@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: 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 > > 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 > --- > 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 > #include > > +#include > #include > > #include > @@ -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@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html