From mboxrd@z Thu Jan 1 00:00:00 1970 From: Xiao Guangrong Subject: Re: [Bug 37262] VNC access to KVM VM is unusable Date: Fri, 17 Jun 2011 10:25:39 +0800 Message-ID: <4DFABB23.9080808@cn.fujitsu.com> References: <201106162039.p5GKdWxg020197@demeter2.kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org, Avi Kivity To: bugzilla-daemon@bugzilla.kernel.org Return-path: Received: from cn.fujitsu.com ([222.73.24.84]:51228 "EHLO song.cn.fujitsu.com" rhost-flags-OK-FAIL-OK-OK) by vger.kernel.org with ESMTP id S1750829Ab1FQCXh (ORCPT ); Thu, 16 Jun 2011 22:23:37 -0400 In-Reply-To: <201106162039.p5GKdWxg020197@demeter2.kernel.org> Sender: kvm-owner@vger.kernel.org List-ID: On 06/17/2011 04:39 AM, bugzilla-daemon@bugzilla.kernel.org wrote: > https://bugzilla.kernel.org/show_bug.cgi?id=37262 > > > > > > --- Comment #43 from Steve 2011-06-16 20:39:32 --- > Solution of this bug is very simple: > > arch/x86/kvm/mmu.c: > > static bool mapping_level_dirty_bitmap(struct kvm_vcpu *vcpu, gfn_t large_gfn) > { > return (gfn_to_memslot_dirty_bitmap(vcpu, large_gfn, true) == NULL) > ? true : false; > } > > Only opposite condition. > Please commit when it's possible. > Yes, it is the reason, thanks for your time and great job, i am so sorry, this is caused by my mistake :-( And this is the fix patch from you and i did little cleanup From: Steve Subject: [PATCH] KVM: MMU: fix opposite condition in mapping_level_dirty_bitmap The condition is opposite, it always maps huge page for the dirty tracked page Reported-by: Steve Signed-off-by: Steve --- arch/x86/kvm/mmu.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c index 19ebb76..15afa1e 100644 --- a/arch/x86/kvm/mmu.c +++ b/arch/x86/kvm/mmu.c @@ -549,7 +549,7 @@ gfn_to_memslot_dirty_bitmap(struct kvm_vcpu *vcpu, gfn_t gfn, static bool mapping_level_dirty_bitmap(struct kvm_vcpu *vcpu, gfn_t large_gfn) { - return gfn_to_memslot_dirty_bitmap(vcpu, large_gfn, true); + return !gfn_to_memslot_dirty_bitmap(vcpu, large_gfn, true); } static int mapping_level(struct kvm_vcpu *vcpu, gfn_t large_gfn) -- 1.7.5.4