From mboxrd@z Thu Jan 1 00:00:00 1970 From: Izik Eidus Subject: Re: [PATCH 2/2] kvm: change the dirty page tracking to work with dirty bity Date: Thu, 11 Jun 2009 18:49:03 +0300 Message-ID: <4A31276F.3080107@redhat.com> References: <1244651005-18322-1-git-send-email-ieidus@redhat.com> <1244651005-18322-2-git-send-email-ieidus@redhat.com> <1244651005-18322-3-git-send-email-ieidus@redhat.com> <20090610204227.GA12682@amt.cnet> <4A30484E.1040708@redhat.com> <20090611010413.GB15350@amt.cnet> <4A30EA32.7010000@redhat.com> <20090611122411.GB3944@amt.cnet> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org, avi@redhat.com To: Marcelo Tosatti Return-path: Received: from mx2.redhat.com ([66.187.237.31]:38557 "EHLO mx2.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751621AbZFKPs5 (ORCPT ); Thu, 11 Jun 2009 11:48:57 -0400 Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id n5BFn0DG024030 for ; Thu, 11 Jun 2009 11:49:00 -0400 In-Reply-To: <20090611122411.GB3944@amt.cnet> Sender: kvm-owner@vger.kernel.org List-ID: Marcelo Tosatti wrote: > On Thu, Jun 11, 2009 at 02:27:46PM +0300, Izik Eidus wrote: > >> Marcelo Tosatti wrote: >> >>> What i'm saying is with shadow and NPT (i believe) you can mark a spte >>> writable but not dirty, which gives you the ability to know whether >>> certain pages have been dirtied. >>> >>> >> Isnt this what this patch is doing? >> > > Yes, was confused for some reason i don't remember. > > So making the dirty bit available to the host is a good idea, but would > have to check things like faults on out of sync pagetables (where > the guest dirty bit might be cleared in parallel, maybe its ok but > not sure), verify transfer of dirty bit when zapping is consistent > everywhere, etc. > I am looking on the host sptes, not the guest emulated page tables, when the guest clean its dirty bit, we dont clean it from the spte, or am i wrong? When we zap the spte, i transfer the dirty bit into the bitmap in case of SPTE_DONT_DIRTY..., But Avi, pointed out that in case of live migration, it might be overkill to walk all the sptes in the system, so maybe we want to add page fault from the page directory (would be write protected, or if it cant be write protected at least notpresent), and then scan only sptes that inside this "write protected" page tables... You have some ideas for this case? > So it would be nicer to introduce an optimization to the way dirty bit > info is acquired, then you use that to optimize kvm's dirty log ioctl. > > The link with KSM was that you can consult this dirty info, which is > fast, to know if content of pages has changed. But it maybe useless, > don't know. > > It sure can help for ksm as we calc sometimes jhash of the page to know if the page content was changed, but i afraid that starting to clean the dirty bit that will need tlbflush, plus taking the mmu_lock to walk the sptes, maybe will save ksm some cpu, but might hurt kvm, we will have to check this...