qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC PATCH RDMA support v5: 03/12] comprehensive protoc


From: Michael S. Tsirkin
Subject: Re: [Qemu-devel] [RFC PATCH RDMA support v5: 03/12] comprehensive protocol documentation
Date: Thu, 11 Apr 2013 20:04:07 +0300

On Thu, Apr 11, 2013 at 12:09:44PM -0400, Michael R. Hines wrote:
> On 04/11/2013 11:44 AM, Michael S. Tsirkin wrote:
> >On Thu, Apr 11, 2013 at 11:18:56AM -0400, Michael R. Hines wrote:
> >>First of all,
> >I know it's a hard habit to break but could you
> >please stop stop top-posting?
> Acknowledged.
> >
> >>this whole argument should not even exist for the
> >>following reason:
> >>
> >>Page registrations are supposed to be *rare* - once a page is registered, it
> >>is registered for life. There is nothing in the design that says a page must
> >>be "unregistered" and I do not believe anybody is proposing that.
> >Hmm proposing what? Of course you need to unregister pages
> >eventually otherwise your pinned memory on the destination
> >will just grow indefinitely. People are often doing
> >registration caches to help reduce the overhead,
> >but never unregistering seems too aggressive.
> >
> >You mean the chunk-based thing just delays the agony
> >until all guest memory is pinned for RDMA anyway?
> >Wait, is it registered for life on the source too?
> >
> >Well this kind of explains why qemu was dying on OOM,
> >doesn't it?
> 
> Yes, that's correct. The agony is just delayed. The right thing to do
> in a future patch would be to pin as much as possible in advance
> before the bulk phase round even begins (using the pagemap).

IMHO the right thing is to unpin memory after it's sent.

> In the meantime, chunk registartion performance is still very good
> so long as total migration time is not the metric you are optimizing for.

You mean it has better downtime than TCP? Or lower host CPU
overhead? These are the metrics we care about.

> >>Second, this means that my previous analysis showing that
> >>performance was reduced
> >>was also incorrect because most of the RDMA transfers were against
> >>pages during
> >>the bulk phase round, which incorrectly makes dynamic page
> >>registration look bad.
> >>I should have done more testing *after* the bulk phase round,
> >>and I apologize for not doing that.
> >>
> >>Indeed when I do such a test (with the 'stress' command) the cost of
> >>page registration disappears
> >>because most of the registrations have already completed a long time ago.
> >>
> >>Thanks, Paolo for reminding us about the bulk-phase behavior to being with.
> >>
> >>Third, this means that optimizing this protocol would not be helpful
> >>and that we should
> >>follow the "keep it simple" approach because during steady-state
> >>phase of the migration
> >>most of the pages should have already been registered.
> >>
> >>- Michael
> >If you mean that registering all memory is a requirement,
> >then I am not sure I agree: you wrote one slow protocol, this
> >does not mean that there can't be a fast one.
> >
> >But if you mean to say that the current chunk based code
> >is useless, then I'd have to agree.
> 
> Answer above.

I don't see it above. What does "keep it simple mean"?

-- 
MST



reply via email to

[Prev in Thread] Current Thread [Next in Thread]