From: "Michael R. Hines" <mrhines@linux.vnet.ibm.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: aliguori@us.ibm.com, quintela@redhat.com, qemu-devel@nongnu.org,
owasserm@redhat.com, abali@us.ibm.com, mrhines@us.ibm.com,
gokul@us.ibm.com, chegu_vinod@hp.com, knoel@redhat.com
Subject: Re: [Qemu-devel] [PATCH v10 14/14, resend] rdma: add setup time accounting to QMP statistics
Date: Mon, 24 Jun 2013 13:18:47 -0400 [thread overview]
Message-ID: <51C87F77.50805@linux.vnet.ibm.com> (raw)
In-Reply-To: <51C85172.7020400@redhat.com>
On 06/24/2013 10:02 AM, Paolo Bonzini wrote:
> Il 24/06/2013 15:55, Michael R. Hines ha scritto:
>>>> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
>>> Please stop inventing Reviewed-by tags, or I will stop reviewing your
>>> patches.
>>>
>>> Paolo
>> Inventing? I don't understand.
>>
>> I accumulated all of those tags from everybody - copy and pasted
>> directly from everyone when they gave them to me.\
>>
>> What exactly is wrong here?
> I didn't review this patch in particular, or at least it was changed
> very heavily since I last reviewed it.
>
> I certainly haven't reviewed this:
OK, so I need finer granularity with the tags. I didn't understand that
until now.
I apologize for that.
>>>> +static void migrate_set_state(MigrationState *s, int old_state, int new_state)
>>>> {
>>>> - if (__sync_val_compare_and_swap(&s->state, MIG_STATE_ACTIVE,
>>>> + if (__sync_val_compare_and_swap(&s->state, old_state,
>>>> new_state) == new_state) {
> and I wouldn't have approved it in fact. In this shape, the patch
> should be split in at least 3 or 4 pieces.
>
> In v9 I asked to not apply patch 14 of v9 (I don't remember if you had
> already the R-b there); in v10 you rewrote patch 14 and I pointed out
> that the Reviewed-by tag was coming out of thin air; now you resent the
> series and left the wrong tag. That's why I started to be a bit grumpy.
>
> By now you must have learnt that I want changes outside migration-rdma.c
> to be as a) minimal b) separate c) well-described as possible.
>
> What is _exactly_ the reason why you're changing the state machine?
> What is the change exactly, in fact?
Patch 14 is very important: Currently QEMU does not timestamp the setup
phase.
On the other hand: RDMA uses memory pinning, which happens in the setup
phase.
Unfortunately, since QEMU does not *explicitly* treat the setup phase
like a fully-fledged
phase, this phase is unknown to the user.
As a result, pinning can take a very long time sometimes and it makes
the migration command
(not the VM, just the command) appear to "hang" for several seconds when
in reality,
the setup phase is just taking a long time for the pinning.
As you recommended previously, since the pinning now happens in the
setup phase,
we need a patch which make the user aware of *why* the setup phase is
taking such a long time.
Does that make sense?
This means that we cannot transition from MIG_STATE_SETUP =>
MIG_STATE_ACTIVE until
the pinniing has already completed (i.e. *after* qemu_savevm_state_begin()).
But the only way to do that is to call MIG_STATE_ACTIVE *inside* the
migration thread.
- Michael
> Paolo
>
next prev parent reply other threads:[~2013-06-24 17:18 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-24 13:46 [Qemu-devel] [PATCH v10 00/14, resend] rdma: migration support mrhines
2013-06-24 13:46 ` [Qemu-devel] [PATCH v10 01/14, resend] rdma: add documentation mrhines
2013-06-24 13:46 ` [Qemu-devel] [PATCH v10 02/14, resend] rdma: introduce qemu_update_position() mrhines
2013-06-24 13:46 ` [Qemu-devel] [PATCH v10 03/14, resend] rdma: export yield_until_fd_readable() mrhines
2013-06-24 13:46 ` [Qemu-devel] [PATCH v10 04/14, resend] rdma: export throughput w/ MigrationStats QMP mrhines
2013-06-24 13:46 ` [Qemu-devel] [PATCH v10 05/14, resend] rdma: introduce qemu_file_mode_is_not_valid() mrhines
2013-06-24 13:46 ` [Qemu-devel] [PATCH v10 06/14, resend] rdma: export qemu_fflush() mrhines
2013-06-24 13:46 ` [Qemu-devel] [PATCH v10 07/14, resend] rdma: introduce ram_handle_compressed() mrhines
2013-06-24 13:46 ` [Qemu-devel] [PATCH v10 08/14, resend] rdma: introduce qemu_ram_foreach_block() mrhines
2013-06-24 13:46 ` [Qemu-devel] [PATCH v10 09/14, resend] rdma: new QEMUFileOps hooks mrhines
2013-06-24 13:46 ` [Qemu-devel] [PATCH v10 10/14, resend] rdma: introduce capability x-rdma-pin-all mrhines
2013-06-24 13:46 ` [Qemu-devel] [PATCH v10 11/14, resend] rdma: core logic mrhines
2013-06-24 13:46 ` [Qemu-devel] [PATCH v10 12/14, resend] rdma: send pc.ram mrhines
2013-06-24 13:46 ` [Qemu-devel] [PATCH v10 13/14, resend] rdma: fix mlock() freezes and accounting mrhines
2013-06-24 13:46 ` [Qemu-devel] [PATCH v10 14/14, resend] rdma: add setup time accounting to QMP statistics mrhines
2013-06-24 13:51 ` Paolo Bonzini
2013-06-24 13:55 ` Michael R. Hines
2013-06-24 14:02 ` Paolo Bonzini
2013-06-24 17:18 ` Michael R. Hines [this message]
2013-06-24 14:41 ` Anthony Liguori
2013-06-24 21:28 ` Michael R. Hines
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=51C87F77.50805@linux.vnet.ibm.com \
--to=mrhines@linux.vnet.ibm.com \
--cc=abali@us.ibm.com \
--cc=aliguori@us.ibm.com \
--cc=chegu_vinod@hp.com \
--cc=gokul@us.ibm.com \
--cc=knoel@redhat.com \
--cc=mrhines@us.ibm.com \
--cc=owasserm@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@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;
as well as URLs for NNTP newsgroup(s).