Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751770AbbGMHcN (ORCPT ); Mon, 13 Jul 2015 03:32:13 -0400 Received: from mail-wi0-f174.google.com ([209.85.212.174]:38410 "EHLO mail-wi0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751292AbbGMHcM (ORCPT ); Mon, 13 Jul 2015 03:32:12 -0400 Subject: Re: [PATCH v3 01/10] KVM: MMU: fix decoding cache type from MTRR To: Xiao Guangrong , Alex Williamson References: <1431499348-25188-1-git-send-email-guangrong.xiao@linux.intel.com> <1431499348-25188-2-git-send-email-guangrong.xiao@linux.intel.com> <1436722432.1391.347.camel@redhat.com> <55A2B8F7.1050805@linux.intel.com> Cc: gleb@kernel.org, mtosatti@redhat.com, kvm@vger.kernel.org, linux-kernel@vger.kernel.org From: Paolo Bonzini Message-ID: <55A36976.6090807@redhat.com> Date: Mon, 13 Jul 2015 09:32:06 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.0.1 MIME-Version: 1.0 In-Reply-To: <55A2B8F7.1050805@linux.intel.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2264 Lines: 61 On 12/07/2015 20:59, Xiao Guangrong wrote: > > > On 07/13/2015 01:33 AM, Alex Williamson wrote: >> On Wed, 2015-05-13 at 14:42 +0800, Xiao Guangrong wrote: >>> There are some bugs in current get_mtrr_type(); >>> 1: bit 1 of mtrr_state->enabled is corresponding bit 11 of >>> IA32_MTRR_DEF_TYPE MSR which completely control MTRR's enablement >>> that means other bits are ignored if it is cleared >>> >>> 2: the fixed MTRR ranges are controlled by bit 0 of >>> mtrr_state->enabled (bit 10 of IA32_MTRR_DEF_TYPE) >>> >>> 3: if MTRR is disabled, UC is applied to all of physical memory rather >>> than mtrr_state->def_type >>> >>> Signed-off-by: Xiao Guangrong >>> --- >>> arch/x86/kvm/mmu.c | 14 ++++++-------- >>> 1 file changed, 6 insertions(+), 8 deletions(-) >> >> >> I'm seeing a significant regression in boot performance on Intel >> hardware with assigned devices that bisects back to this patch. There's >> a long delay with Seabios between the version splash and execution of >> option ROMs, and a _very_ long delay with OVMF before the display is >> initialized. The delay is long enough that users are reporting their >> previously working VM is hung with 100% CPU usage on v4.2-rc1. Thanks, >> > > Alex, thanks for your report. I will try to reproduce and fix it asap. The code that Bandan pointed out + /* MTRR is completely disabled, use UC for all of physical memory. */ + if (!(mtrr_state->enabled & 0x2)) + return MTRR_TYPE_UNCACHABLE; actually disappears in commit fa61213746a7 (KVM: MTRR: simplify kvm_mtrr_get_guest_memory_type, 2015-06-15). Should mtrr_default_type actually be something like this: static u8 mtrr_default_type(struct kvm_mtrr *mtrr_state) { if (mtrr_is_enabled(mtrr_state)) return mtrr_state->deftype & IA32_MTRR_DEF_TYPE_TYPE_MASK; else return MTRR_TYPE_UNCACHABLE; } ? Then it's easy to add a quirk that makes the default WRITEBACK until MTRRs are enabled. Paolo -- 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/