From: Izik Eidus <ieidus@redhat.com>
To: Marcelo Tosatti <mtosatti@redhat.com>
Cc: kvm@vger.kernel.org
Subject: Re: [PATCH] RFC: alias rework
Date: Mon, 25 Jan 2010 23:51:21 +0200 [thread overview]
Message-ID: <20100125235121.66d90342@redhat.com> (raw)
In-Reply-To: <20100125204925.GA23079@amt.cnet>
On Mon, 25 Jan 2010 18:49:25 -0200
Marcelo Tosatti <mtosatti@redhat.com> wrote:
> On Mon, Jan 25, 2010 at 10:40:32PM +0200, Izik Eidus wrote:
> > On Mon, 25 Jan 2010 18:20:39 -0200
> > Marcelo Tosatti <mtosatti@redhat.com> wrote:
> >
> > > With current code, if a memslot is deleted, access through any aliases
> > > that use it will fail (BTW it looks this is not properly handled, but
> > > thats a separate problem).
> >
> >
> > Yea I had some still open concerns about this code (this why I sent it on RFC)
> >
> > >
> > > So AFAICS there is no requirement for an alias to continue "operable"
> > > if its parent memslot is deleted.
> >
> >
> > With this patch alias will stop to opearte when the parent is deleted
> > just like the behivor with the current code...
> >
> > base_gfn will be set to 0 and npages will be set to 0 as well
> > (the true values wil be hide in real_base_gfn...), so gfn_to_memslot
> > and gfn_to_page will fail....
>
> But you adjust the alias (and keep it valid) if dirty logging is
> enabled?
I am sorry, but probaby you got confused beacuse the code is wrong
the adjust of aliasing should happen in every case of:
if(slot->rmap -> valid (!NULL)):
this mean we got NEW parent slot that mapped into the gfn
that the alias is mapped to, and we want the userspace address
of the alias slot to intersect with the new parent slot.
and the latter adjustmant of the dirty_bitmap should happen only in case
of - if(slot->dirty_bitmap -> valid (!NULL)):
the alias slot need to mark_page_dirty the bitmap of the new parent slot
I hope this will make things more clear
(I think there is another small issue there, but I will send it when it wont be RFC)
>
> > >
> > > Or is this a feature you need?
> >
> >
> > I dont need it (I asked Avi to do something), So he said he want to nuke the aliasing
> > from kvm and keep supporting the old userspace`s
>
> With feature i meant keeping the alias around when parent slot is
> deleted.
The code doesnt try to do this, infact:
} else if (!slot->rmap) {
alias_memslot->base_gfn = 0;
alias_memslot->npages = 0;
}
came to invalidate the alias slot.
Sorry if I made to much mess :).
>
> > Do you have any other way to achive this?
>
> No.
>
> > Btw I do realize it might be better not to push this patch and just keep the old
> > way of treating aliasing as we have now, I really don`t mind.
> >
> > >
> > > Motivation is that nukeing aliases is simpler than adjusting them.
> > >
> >
> > Agree.
>
next prev parent reply other threads:[~2010-01-25 21:51 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-25 13:53 [PATCH] RFC: alias rework Izik Eidus
2010-01-25 19:45 ` Marcelo Tosatti
2010-01-25 19:57 ` Izik Eidus
2010-01-25 20:20 ` Marcelo Tosatti
2010-01-25 20:40 ` Izik Eidus
2010-01-25 20:49 ` Marcelo Tosatti
2010-01-25 21:51 ` Izik Eidus [this message]
2010-01-26 14:14 ` Avi Kivity
2010-01-26 14:29 ` Izik Eidus
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100125235121.66d90342@redhat.com \
--to=ieidus@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=mtosatti@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox