From: Paolo Bonzini <pbonzini@redhat.com>
To: Alexey Kardashevskiy <aik@ozlabs.ru>,
"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>
Cc: Alex Graf <agraf@suse.de>
Subject: Re: [Qemu-devel] migration: broken ram_save_pending
Date: Wed, 05 Feb 2014 08:18:18 +0100 [thread overview]
Message-ID: <52F1E5BA.60902@redhat.com> (raw)
In-Reply-To: <52F16708.8060902@ozlabs.ru>
Il 04/02/2014 23:17, Alexey Kardashevskiy ha scritto:
>>> >> Well, it will fix it in my particular case but in a long run this does not
>>> >> feel like a fix - there should be a way for migration_thread() to know that
>>> >> ram_save_iterate() sent all dirty pages it had to send, no?
>> >
>> > No, because new pages might be dirtied while ram_save_iterate() was running.
>
> I do not get it, sorry. In my example the ram_save_iterate() sends
> everything in one go but its caller thinks that it did not and tries again.
It's not that "the caller thinks that it did not". The caller knows
what happens, because migration_bitmap_find_and_reset_dirty updates the
migration_dirty_pages count that ram_save_pending uses. So
migration_dirty_pages should be 0 when ram_save_pending is entered.
However, something gets dirty in between so remaining_size is again
393216 when ram_save_pending returns, after the migration_bitmap_sync
call. Because of this the migration thread thinks that
ram_save_iterate() _will_ not send everything in one go.
At least, this is how I read the code. Perhaps I'm wrong. ;)
Paolo
> This is is not because something got dirty in between, this is only because
> of sending zero pages as 8+1 bytes chunk (not as 4096+1 bytes).
next prev parent reply other threads:[~2014-02-05 7:18 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-04 7:15 [Qemu-devel] migration: broken ram_save_pending Alexey Kardashevskiy
2014-02-04 10:46 ` Paolo Bonzini
2014-02-04 11:59 ` Alexey Kardashevskiy
2014-02-04 12:07 ` Paolo Bonzini
2014-02-04 12:16 ` Alexey Kardashevskiy
2014-02-04 14:00 ` Paolo Bonzini
2014-02-04 22:17 ` Alexey Kardashevskiy
2014-02-05 7:18 ` Paolo Bonzini [this message]
2014-02-05 9:09 ` Dr. David Alan Gilbert
2014-02-05 16:35 ` Paolo Bonzini
2014-02-05 16:42 ` Dr. David Alan Gilbert
2014-02-05 16:45 ` Paolo Bonzini
2014-02-06 3:10 ` Alexey Kardashevskiy
2014-02-06 11:24 ` Dr. David Alan Gilbert
2014-02-07 5:39 ` Alexey Kardashevskiy
2014-02-07 8:55 ` Dr. David Alan Gilbert
2014-02-06 23:49 ` Paolo Bonzini
2014-02-07 5:42 ` Alexey Kardashevskiy
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=52F1E5BA.60902@redhat.com \
--to=pbonzini@redhat.com \
--cc=agraf@suse.de \
--cc=aik@ozlabs.ru \
--cc=qemu-devel@nongnu.org \
/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).