Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752665AbbGOAT5 (ORCPT ); Tue, 14 Jul 2015 20:19:57 -0400 Received: from mga09.intel.com ([134.134.136.24]:21317 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750996AbbGOAT4 convert rfc822-to-8bit (ORCPT ); Tue, 14 Jul 2015 20:19:56 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.15,476,1432623600"; d="scan'208";a="762614642" From: "Fan, Jeff" To: Paolo Bonzini , Laszlo Ersek CC: edk2-devel list , Xiao Guangrong , "kvm@vger.kernel.org" , "gleb@kernel.org" , "linux-kernel@vger.kernel.org" Subject: RE: [edk2] MTRR setup in OVMF [was: PATCH v3 01/10 KVM: MMU: fix decoding cache type from MTRR] Thread-Topic: [edk2] MTRR setup in OVMF [was: PATCH v3 01/10 KVM: MMU: fix decoding cache type from MTRR] Thread-Index: AQHQvnouFIaQKw2gr0Su8XIL0Uh7153a8WMAgAC1yCA= Date: Wed, 15 Jul 2015 00:14:14 +0000 Message-ID: <542CF652F8836A4AB8DBFAAD40ED192A119FE059@shsmsx102.ccr.corp.intel.com> References: <1431499348-25188-1-git-send-email-guangrong.xiao@linux.intel.com> <1436722432.1391.347.camel@redhat.com> <55A2B8F7.1050805@linux.intel.com> <55A36976.6090807@redhat.com> <55A3CEF2.2030200@linux.intel.com> <55A3D57C.4050100@redhat.com> <55A3D616.8010209@linux.intel.com> <55A57B54.2040305@redhat.com> <922266674.41385307.1436908536320.JavaMail.zimbra@redhat.com> In-Reply-To: <922266674.41385307.1436908536320.JavaMail.zimbra@redhat.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 8BIT MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2756 Lines: 53 Actually, MMIO will be used in OVMF SEC phase if local APIC is consumed. (SecPeiDebugAgentLib will consume local APIC timer for communication between debugger TARGET/HOST). So, I suggest to keep MTRR default value to UC and set the code range to WB, or set default value to WB and set Local APIC space range to UC. (gUefiCpuPkgTokenSpaceGuid.PcdCpuLocalApicBaseAddress|0xfee00000) As Jordan's suggestion, you could make use of MTRR lib in UefiCpuPkg. Jeff -----Original Message----- From: Paolo Bonzini [mailto:pbonzini@redhat.com] Sent: Wednesday, July 15, 2015 5:16 AM To: Laszlo Ersek Cc: edk2-devel list; Xiao Guangrong; kvm@vger.kernel.org; gleb@kernel.org; mtosatti@redhat.com; linux-kernel@vger.kernel.org Subject: Re: [edk2] MTRR setup in OVMF [was: PATCH v3 01/10 KVM: MMU: fix decoding cache type from MTRR] > The long delay that Alex reported (for the case when all guest memory > was set to UC up-front) is due to the fact that the SEC phase of OVMF > decompresses an approximately 1712 KB sized, LZMA-compressed blob, to > approx. 896 KB worth of PEI drivers and 8192 KB worth of DXE and UEFI > drivers -- and this decompression is extremely memory-intensive. > > (When Jordan implemented that reset vector first, we saw similar > performance degradation on AMD hosts (albeit not due to MTRR but due > to page attributes). See > . I'm only > mentioning it here because it makes me appreciate the current problem > report.) > > Anyway, the reset vector's page table building is implemented in > "OvmfPkg/ResetVector/Ia32/PageTables64.asm". The decompression in SEC > can be found in "OvmfPkg/Sec/SecMain.c", function DecompressMemFvs(). Perhaps the OVMF reset vector should initialize the MTRRs for the BSP? I think SEC doesn't do any MMIO, so it should be enough to enable MTRRs and set the default type to writeback. In any case we're going to have to quirk it, because of the broken guests in the wild. Paolo ------------------------------------------------------------------------------ Don't Limit Your Business. Reach for the Cloud. GigeNET's Cloud Solutions provide you with the tools and support that you need to offload your IT needs and focus on growing your business. Configured For All Businesses. Start Your Cloud Today. https://www.gigenetcloud.com/ _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/