From: Bharata B Rao <bharata@linux.vnet.ibm.com>
To: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
Cc: aarcange@redhat.com, yamahata@private.email.ne.jp,
quintela@redhat.com, liang.z.li@intel.com,
"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
luis@cs.umu.se, "amit.shah@redhat.com" <amit.shah@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>,
David Gibson <david@gibson.dropbear.id.au>
Subject: Re: [Qemu-devel] [PATCH v9 00/56] Postcopy implementation
Date: Mon, 9 Nov 2015 08:51:16 +0530 [thread overview]
Message-ID: <20151109032116.GB14232@in.ibm.com> (raw)
In-Reply-To: <20151106154810.GC4267@work-vm>
On Fri, Nov 06, 2015 at 03:48:11PM +0000, Dr. David Alan Gilbert wrote:
> * Bharata B Rao (bharata@linux.vnet.ibm.com) wrote:
>
> > > Where we have iterable, but non-postcopiable devices (e.g. htab
> > > or block migration), complete them before forming the 'package'
> > > but with the CPUs stopped. This stops them filling up the package.
> >
> > That helps and the migration suceeds now when I switch to postcopy
> > immediately after starting the migration.
>
> Excellent.
>
> > However after postcopy migration, when I attempt to start an incoming
> > instance again to migrate the guest back, I see this failure:
> >
> > qemu-system-ppc64: cannot set up guest memory 'ppc_spapr.ram': Cannot allocate memory
> >
> > The same doesn't happen with normal migration.
>
> Huh that's fun; that's the original source guest that's running out of RAM?
> It's original QEMU should be gone by that point.
Yes, the original source QEMU is gone, but there is not enough memory left
in the host to start another incoming QEMU instance because...
At the beginning
-----------------
$ grep -i mem /proc/meminfo
MemTotal: 132816832 kB
MemFree: 128781632 kB
MemAvailable: 131668224 kB
After starting the guest (-m 64G,slots=32,maxmem=128G)
------------------------
$ grep -i mem /proc/meminfo
MemTotal: 132816832 kB
MemFree: 124866880 kB
MemAvailable: 127753728 kB
After starting the destination instance (incoming)
-------------------------------------------------
$ grep -i mem /proc/meminfo
MemTotal: 132816832 kB
MemFree: 122514880 kB
MemAvailable: 125401920 kB
After postcopy migration completes
----------------------------------
$ grep -i mem /proc/meminfo
MemTotal: 132816832 kB
MemFree: 55150592 kB
MemAvailable: 58037888 kB
After terminating the source instance
-------------------------------------
$ grep -i mem /proc/meminfo
MemTotal: 132816832 kB
MemFree: 59432448 kB
MemAvailable: 62319872 kB
So as you can see, postcopy migration will result in guest claiming
its entire RAM memory from host. This doesn't happen during normal migration.
The above results are with the additional patch you sent in this thread
and I was switching to postcopy migration immediately after starting the
migration. Without this patch, when I delay the switching to postcopy
migration a bit, I see the free memory as below when postcopy migration
completes.
$ grep -i mem /proc/meminfo
MemTotal: 132816832 kB
MemFree: 85018176 kB
MemAvailable: 87937024 kB
Regards,
Bharata.
next prev parent reply other threads:[~2015-11-09 3:22 UTC|newest]
Thread overview: 92+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-05 18:10 [Qemu-devel] [PATCH v9 00/56] Postcopy implementation Dr. David Alan Gilbert (git)
2015-11-05 18:10 ` [Qemu-devel] [PATCH v9 01/56] Add postcopy documentation Dr. David Alan Gilbert (git)
2015-11-05 18:10 ` [Qemu-devel] [PATCH v9 02/56] Provide runtime Target page information Dr. David Alan Gilbert (git)
2015-11-05 18:10 ` [Qemu-devel] [PATCH v9 03/56] Move configuration section writing Dr. David Alan Gilbert (git)
2015-11-05 18:10 ` [Qemu-devel] [PATCH v9 04/56] Move page_size_init earlier Dr. David Alan Gilbert (git)
2015-11-09 9:21 ` Juan Quintela
2015-11-05 18:10 ` [Qemu-devel] [PATCH v9 05/56] qemu_ram_block_from_host Dr. David Alan Gilbert (git)
2015-11-05 18:10 ` [Qemu-devel] [PATCH v9 06/56] qemu_ram_block_by_name Dr. David Alan Gilbert (git)
2015-11-09 9:24 ` Juan Quintela
2015-11-05 18:10 ` [Qemu-devel] [PATCH v9 07/56] Rename mis->file to from_src_file Dr. David Alan Gilbert (git)
2015-11-05 18:10 ` [Qemu-devel] [PATCH v9 08/56] Add qemu_get_buffer_in_place to avoid copies some of the time Dr. David Alan Gilbert (git)
2015-11-09 9:25 ` Juan Quintela
2015-11-05 18:10 ` [Qemu-devel] [PATCH v9 09/56] Add wrapper for setting blocking status on a QEMUFile Dr. David Alan Gilbert (git)
2015-11-05 18:10 ` [Qemu-devel] [PATCH v9 10/56] Add QEMU_MADV_NOHUGEPAGE Dr. David Alan Gilbert (git)
2015-11-05 18:10 ` [Qemu-devel] [PATCH v9 11/56] ram_debug_dump_bitmap: Dump a migration bitmap as text Dr. David Alan Gilbert (git)
2015-11-05 18:10 ` [Qemu-devel] [PATCH v9 12/56] ram_load: Factor out host_from_stream_offset call and check Dr. David Alan Gilbert (git)
2015-11-09 9:29 ` Juan Quintela
2015-11-05 18:10 ` [Qemu-devel] [PATCH v9 13/56] migrate_init: Call from savevm Dr. David Alan Gilbert (git)
2015-11-05 18:10 ` [Qemu-devel] [PATCH v9 14/56] Rename save_live_complete to save_live_complete_precopy Dr. David Alan Gilbert (git)
2015-11-05 18:10 ` [Qemu-devel] [PATCH v9 15/56] Add Linux userfaultfd.h header Dr. David Alan Gilbert (git)
2015-11-09 9:31 ` Juan Quintela
2015-11-05 18:10 ` [Qemu-devel] [PATCH v9 16/56] Return path: Open a return path on QEMUFile for sockets Dr. David Alan Gilbert (git)
2015-11-05 18:10 ` [Qemu-devel] [PATCH v9 17/56] Return path: socket_writev_buffer: Block even on non-blocking fd's Dr. David Alan Gilbert (git)
2015-11-05 18:10 ` [Qemu-devel] [PATCH v9 18/56] Migration commands Dr. David Alan Gilbert (git)
2015-11-05 18:10 ` [Qemu-devel] [PATCH v9 19/56] Return path: Control commands Dr. David Alan Gilbert (git)
2015-11-05 18:10 ` [Qemu-devel] [PATCH v9 20/56] Return path: Send responses from destination to source Dr. David Alan Gilbert (git)
2015-11-09 10:54 ` Juan Quintela
2015-11-05 18:10 ` [Qemu-devel] [PATCH v9 21/56] migration_is_setup_or_active Dr. David Alan Gilbert (git)
2015-11-09 10:55 ` Juan Quintela
2015-11-05 18:10 ` [Qemu-devel] [PATCH v9 22/56] Return path: Source handling of return path Dr. David Alan Gilbert (git)
2015-11-05 18:10 ` [Qemu-devel] [PATCH v9 23/56] Rework loadvm path for subloops Dr. David Alan Gilbert (git)
2015-11-05 18:10 ` [Qemu-devel] [PATCH v9 24/56] Add migration-capability boolean for postcopy-ram Dr. David Alan Gilbert (git)
2015-11-05 18:10 ` [Qemu-devel] [PATCH v9 25/56] Add wrappers and handlers for sending/receiving the postcopy-ram migration messages Dr. David Alan Gilbert (git)
2015-11-05 18:10 ` [Qemu-devel] [PATCH v9 26/56] MIG_CMD_PACKAGED: Send a packaged chunk of migration stream Dr. David Alan Gilbert (git)
2015-11-05 18:10 ` [Qemu-devel] [PATCH v9 27/56] Modify save_live_pending for postcopy Dr. David Alan Gilbert (git)
2015-11-05 18:10 ` [Qemu-devel] [PATCH v9 28/56] postcopy: OS support test Dr. David Alan Gilbert (git)
2015-11-05 18:10 ` [Qemu-devel] [PATCH v9 29/56] migrate_start_postcopy: Command to trigger transition to postcopy Dr. David Alan Gilbert (git)
2015-11-05 18:10 ` [Qemu-devel] [PATCH v9 30/56] migration_completion: Take current state Dr. David Alan Gilbert (git)
2015-11-09 10:57 ` Juan Quintela
2015-11-05 18:10 ` [Qemu-devel] [PATCH v9 31/56] MIGRATION_STATUS_POSTCOPY_ACTIVE: Add new migration state Dr. David Alan Gilbert (git)
2015-11-05 18:10 ` [Qemu-devel] [PATCH v9 32/56] Avoid sending vmdescription during postcopy Dr. David Alan Gilbert (git)
2015-11-05 18:11 ` [Qemu-devel] [PATCH v9 33/56] Add qemu_savevm_state_complete_postcopy Dr. David Alan Gilbert (git)
2015-11-05 18:11 ` [Qemu-devel] [PATCH v9 34/56] Postcopy: Maintain unsentmap Dr. David Alan Gilbert (git)
2015-11-09 11:01 ` Juan Quintela
2015-11-05 18:11 ` [Qemu-devel] [PATCH v9 35/56] Postcopy: Calculate discard Dr. David Alan Gilbert (git)
2015-11-09 11:08 ` Juan Quintela
2015-11-09 18:27 ` Dr. David Alan Gilbert
2015-11-05 18:11 ` [Qemu-devel] [PATCH v9 36/56] postcopy: Incoming initialisation Dr. David Alan Gilbert (git)
2015-11-09 11:11 ` Juan Quintela
2015-11-05 18:11 ` [Qemu-devel] [PATCH v9 37/56] postcopy: ram_enable_notify to switch on userfault Dr. David Alan Gilbert (git)
2015-11-05 18:11 ` [Qemu-devel] [PATCH v9 38/56] Postcopy: Postcopy startup in migration thread Dr. David Alan Gilbert (git)
2015-11-05 18:11 ` [Qemu-devel] [PATCH v9 39/56] Postcopy: End of iteration Dr. David Alan Gilbert (git)
2015-11-05 18:11 ` [Qemu-devel] [PATCH v9 40/56] Page request: Add MIG_RP_MSG_REQ_PAGES reverse command Dr. David Alan Gilbert (git)
2015-11-05 18:11 ` [Qemu-devel] [PATCH v9 41/56] Page request: Process incoming page request Dr. David Alan Gilbert (git)
2015-11-05 18:11 ` [Qemu-devel] [PATCH v9 42/56] Page request: Consume pages off the post-copy queue Dr. David Alan Gilbert (git)
2015-11-09 11:18 ` Juan Quintela
2015-11-05 18:11 ` [Qemu-devel] [PATCH v9 43/56] postcopy_ram.c: place_page and helpers Dr. David Alan Gilbert (git)
2015-11-05 18:11 ` [Qemu-devel] [PATCH v9 44/56] Postcopy: Use helpers to map pages during migration Dr. David Alan Gilbert (git)
2015-11-09 11:19 ` Juan Quintela
2015-11-05 18:11 ` [Qemu-devel] [PATCH v9 45/56] postcopy: Check order of received target pages Dr. David Alan Gilbert (git)
2015-11-05 18:11 ` [Qemu-devel] [PATCH v9 46/56] Don't sync dirty bitmaps in postcopy Dr. David Alan Gilbert (git)
2015-11-05 18:11 ` [Qemu-devel] [PATCH v9 47/56] Don't iterate on precopy-only devices during postcopy Dr. David Alan Gilbert (git)
2015-11-05 18:11 ` [Qemu-devel] [PATCH v9 48/56] Host page!=target page: Cleanup bitmaps Dr. David Alan Gilbert (git)
2015-11-09 11:22 ` Juan Quintela
2015-11-05 18:11 ` [Qemu-devel] [PATCH v9 49/56] Round up RAMBlock sizes to host page sizes Dr. David Alan Gilbert (git)
2015-11-05 18:11 ` [Qemu-devel] [PATCH v9 50/56] Postcopy; Handle userfault requests Dr. David Alan Gilbert (git)
2015-11-05 18:11 ` [Qemu-devel] [PATCH v9 51/56] Start up a postcopy/listener thread ready for incoming page data Dr. David Alan Gilbert (git)
2015-11-05 18:11 ` [Qemu-devel] [PATCH v9 52/56] postcopy: Wire up loadvm_postcopy_handle_ commands Dr. David Alan Gilbert (git)
2015-11-05 18:11 ` [Qemu-devel] [PATCH v9 53/56] Postcopy: Mark nohugepage before discard Dr. David Alan Gilbert (git)
2015-11-05 18:11 ` [Qemu-devel] [PATCH v9 54/56] End of migration for postcopy Dr. David Alan Gilbert (git)
2015-11-05 18:11 ` [Qemu-devel] [PATCH v9 55/56] Disable mlock around incoming postcopy Dr. David Alan Gilbert (git)
2015-11-05 18:11 ` [Qemu-devel] [PATCH v9 56/56] Inhibit ballooning during postcopy Dr. David Alan Gilbert (git)
2015-11-06 3:48 ` [Qemu-devel] [PATCH v9 00/56] Postcopy implementation Bharata B Rao
2015-11-06 9:09 ` Dr. David Alan Gilbert
2015-11-06 11:06 ` Bharata B Rao
2015-11-06 12:22 ` Dr. David Alan Gilbert
2015-11-06 13:43 ` Dr. David Alan Gilbert
2015-11-06 15:33 ` Bharata B Rao
2015-11-06 15:48 ` Dr. David Alan Gilbert
2015-11-09 3:21 ` Bharata B Rao [this message]
2015-11-09 9:08 ` Dr. David Alan Gilbert
2015-11-09 10:28 ` Bharata B Rao
2015-11-09 11:03 ` Dr. David Alan Gilbert
2015-11-09 12:39 ` Bharata B Rao
2015-11-09 12:52 ` Dr. David Alan Gilbert
2015-11-09 4:13 ` David Gibson
2015-11-09 9:05 ` Paolo Bonzini
2015-11-09 16:02 ` Juan Quintela
2015-11-09 16:17 ` Dr. David Alan Gilbert
2016-01-27 11:54 ` Vladimir Sementsov-Ogievskiy
2016-01-27 12:42 ` Dr. David Alan Gilbert
2016-01-27 14:47 ` Vladimir Sementsov-Ogievskiy
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=20151109032116.GB14232@in.ibm.com \
--to=bharata@linux.vnet.ibm.com \
--cc=aarcange@redhat.com \
--cc=amit.shah@redhat.com \
--cc=david@gibson.dropbear.id.au \
--cc=dgilbert@redhat.com \
--cc=liang.z.li@intel.com \
--cc=luis@cs.umu.se \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
--cc=yamahata@private.email.ne.jp \
/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).