From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paolo Bonzini Subject: Re: [edk2] [PATCH 2/3] KVM: MTRR: simplify kvm_mtrr_get_guest_memory_type Date: Thu, 30 Jul 2015 09:21:53 +0200 Message-ID: <55B9D091.8050906@redhat.com> References: <1436988356-4565-1-git-send-email-guangrong.xiao@linux.intel.com> <1436988356-4565-2-git-send-email-guangrong.xiao@linux.intel.com> <1438196833.13460.63.camel@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Cc: edk2-devel@lists.sourceforge.net, Xiao Guangrong , kvm@vger.kernel.org, gleb@kernel.org, mtosatti@redhat.com, linux-kernel@vger.kernel.org, bsd@redhat.com To: Alex Williamson , Xiao Guangrong Return-path: In-Reply-To: <1438196833.13460.63.camel@redhat.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org On 29/07/2015 21:07, Alex Williamson wrote: > diff --git a/arch/x86/kvm/mtrr.c b/arch/x86/kvm/mtrr.c > index e275013..dc0a84a 100644 > --- a/arch/x86/kvm/mtrr.c > +++ b/arch/x86/kvm/mtrr.c > @@ -672,15 +672,16 @@ u8 kvm_mtrr_get_guest_memory_type(struct kvm_vcpu *vcpu, gfn_t gfn) > if (iter.mtrr_disabled) > return mtrr_disabled_type(); > > - /* It is not covered by MTRRs. */ > - if (iter.partial_map) { > - /* > - * We just check one page, partially covered by MTRRs is > - * impossible. > - */ > - WARN_ON(type != -1); > - type = mtrr_default_type(mtrr_state); > - } > + /* > + * We just check one page, partially covered by MTRRs is > + * impossible. > + */ > + WARN_ON(iter.partial_map); > + > + /* not contained in any MTRRs. */ > + if (type == -1) > + return mtrr_default_type(mtrr_state); > + > return type; > } > EXPORT_SYMBOL_GPL(kvm_mtrr_get_guest_memory_type); > > The WARN_ON() now comes before the type == -1 test and I hit that at > *very* high frequency when trying to test device assignment. Restoring > the ordering to what Xiao originally proposed resolves the problem. > Thanks, And I remember testing the change and seeing the warning. So, in short, I screwed up. Probably I tested on one machine and pushed from another. :/ Paolo