From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrea Arcangeli Subject: Re: KVM swapping with mmu notifiers Date: Tue, 22 Jan 2008 15:56:31 +0100 Message-ID: <20080122145631.GG7331@v2.random> References: <20080114142457.GF7062@v2.random> <478B833E.1020801@qumranet.com> <20080114174447.GA30812@v2.random> <478CC5D3.2040201@qumranet.com> <20080115155253.GA7059@v2.random> <478CD7CF.3080603@qumranet.com> <20080115160936.GC7059@v2.random> <479365B3.3000600@qumranet.com> <20080121113715.GE6970@v2.random> <4795F1B7.9050604@qumranet.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: Marcelo Tosatti , kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org To: Avi Kivity Return-path: Content-Disposition: inline In-Reply-To: <4795F1B7.9050604-atKUWr5tajBWk0Htik3J/w@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org Errors-To: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org List-Id: kvm.vger.kernel.org On Tue, Jan 22, 2008 at 03:37:59PM +0200, Avi Kivity wrote: > Andrea Arcangeli wrote: >> On Sun, Jan 20, 2008 at 05:16:03PM +0200, Avi Kivity wrote: >> >>> Yes, it's supposed to work (we can't prevent userspace from doing it). >>> >> >> Hmm, I think we already prevent it, so I don't think I need to update >> my swap code until the below is removed. >> >> /* Check for overlaps */ >> r = -EEXIST; >> for (i = 0; i < KVM_MEMORY_SLOTS; ++i) { >> struct kvm_memory_slot *s = &kvm->memslots[i]; >> >> if (s == memslot) >> continue; >> if (!((base_gfn + npages <= s->base_gfn) || >> (base_gfn >= s->base_gfn + s->npages))) >> goto out_free; >> } >> >> > > Actually, this checks against slots with the overlapping gfns. Aliases > have different gfns but same hvas. Hmm not sure to follow, do you mean I need to change something? Aliases live in a different dimension, and I can't see how my code could ever notice or care about aliases (that have to be translated to a real hva-memslot-backed gfn before calling get_user_pages). All I care about are to find the right rmap structures for each hva. The above snippet should be enough to guarantee that there can only be 1 rmap structure for each hva, so when I checked yesterday that looked enough to prove my kvm_hva_to_rmapp implementation already correct. ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/