From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joerg Roedel Subject: Re: IO on guest is 20 times slower than host Date: Tue, 31 Mar 2009 11:59:56 +0200 Message-ID: <20090331095956.GB21083@amd.com> References: <49CA5825.7030201@redhat.com> <4AC00930-1EBB-4704-94CF-29478D07F03A@yoderhome.com> <49CA5D53.1080401@redhat.com> <52871.140.147.222.3.1238163053.squirrel@dyn.yoderhome.com> <49CF85D3.1020507@redhat.com> <49CFC7A2.3030808@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: QUOTED-PRINTABLE Cc: Kurt Yoder , kvm@vger.kernel.org To: Avi Kivity Return-path: Received: from outbound-sin.frontbridge.com ([207.46.51.80]:27654 "EHLO SG2EHSOBE005.bigfish.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751831AbZCaJ77 convert rfc822-to-8bit (ORCPT ); Tue, 31 Mar 2009 05:59:59 -0400 Content-Disposition: inline In-Reply-To: <49CFC7A2.3030808@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On Sun, Mar 29, 2009 at 10:10:26PM +0300, Avi Kivity wrote: > Avi Kivity wrote: >> Kurt Yoder wrote: >>> slow host cpu information, core 1 of 16: >>> >>> processor : 0 >>> vendor_id : AuthenticAMD >>> cpu family : 16 >>> model : 4 >>> model name : Quad-Core AMD Opteron(tm) Processor 8382 >>> stepping : 2 >>> cpu MHz : 2611.998 >>> cache size : 512 KB >>> physical id : 0 >>> siblings : 4 >>> core id : 0 >>> cpu cores : 4 >>> apicid : 0 >>> initial apicid : 0 >>> fpu : yes >>> fpu_exception : yes >>> cpuid level : 5 >>> wp : yes >>> flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr = =20 >>> pge mca >>> cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall mmxext fxsr_opt >>> pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl pni mon= itor >>> cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a >>> misalignsse 3dnowprefetch osvw ibs skinit wdt >>> bogomips : 5223.97 >>> TLB size : 1024 4K pages >>> clflush size : 64 >>> cache_alignment : 64 >>> address sizes : 48 bits physical, 48 bits virtual >>> power management: ts ttp tm stc 100mhzsteps hwpstate >>> >>> >>> =20 >> >> Can you loading kvm_amd on this host with 'modprobe kvm-amd npt=3D0'= ? >> > > If it helps, then the guest is messing up the cpu cache. Try the =20 > attached patch. > > --=20 > I have a truly marvellous patch that fixes the bug which this > signature is too narrow to contain. > > diff --git a/kernel/x86/kvm/svm.c b/kernel/x86/kvm/svm.c > index 1fcbc17..d9774e9 100644 > --- a/kernel/x86/kvm/svm.c > +++ b/kernel/x86/kvm/svm.c > @@ -575,7 +575,7 @@ static void init_vmcb(struct vcpu_svm *svm) > INTERCEPT_CR3_MASK); > control->intercept_cr_write &=3D ~(INTERCEPT_CR0_MASK| > INTERCEPT_CR3_MASK); > - save->g_pat =3D 0x0007040600070406ULL; > + save->g_pat =3D 0x0606060606060606ULL; > /* enable caching because the QEMU Bios doesn't enable it */ > save->cr0 =3D X86_CR0_ET; > save->cr3 =3D 0; Yeah, that patch makes sense. But I think we need some more work on thi= s because the guest may change the pat msr afterwards. Best would be a si= mple shadow of the pat msr. Last question is how this will effect pci passth= rough. Joerg --=20 | Advanced Micro Devices GmbH Operating | Karl-Hammerschmidt-Str. 34, 85609 Dornach bei M=FCnchen System |=20 Research | Gesch=E4ftsf=FChrer: Jochen Polster, Thomas M. McCoy, Giul= iano Meroni Center | Sitz: Dornach, Gemeinde Aschheim, Landkreis M=FCnchen | Registergericht M=FCnchen, HRB Nr. 43632