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 R. Hines
Subject: Re: [Qemu-devel] [RFC PATCH RDMA support v5: 03/12] comprehensive protocol documentation
Date: Thu, 11 Apr 2013 12:09:44 -0400
User-agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130106 Thunderbird/17.0.2

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).

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

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.




reply via email to

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