[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC qemu 4/4] migration: filter out guest's free pages
From: |
Cornelia Huck |
Subject: |
Re: [Qemu-devel] [RFC qemu 4/4] migration: filter out guest's free pages in ram bulk stage |
Date: |
Thu, 3 Mar 2016 13:16:16 +0100 |
On Thu, 3 Mar 2016 18:44:28 +0800
Liang Li <address@hidden> wrote:
> Get the free pages information through virtio and filter out the free
> pages in the ram bulk stage. This can significantly reduce the total
> live migration time as well as network traffic.
>
> Signed-off-by: Liang Li <address@hidden>
> ---
> migration/ram.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++------
> 1 file changed, 46 insertions(+), 6 deletions(-)
>
> @@ -1945,6 +1971,20 @@ static int ram_save_setup(QEMUFile *f, void *opaque)
> DIRTY_MEMORY_MIGRATION);
> }
> memory_global_dirty_log_start();
> +
> + if (balloon_free_pages_support() &&
> + balloon_get_free_pages(migration_bitmap_rcu->free_pages_bmap,
> + &free_pages_count) == 0) {
> + qemu_mutex_unlock_iothread();
> + while (balloon_get_free_pages(migration_bitmap_rcu->free_pages_bmap,
> + &free_pages_count) == 0) {
> + usleep(1000);
> + }
> + qemu_mutex_lock_iothread();
> +
> + filter_out_guest_free_pages(migration_bitmap_rcu->free_pages_bmap);
A general comment: Using the ballooner to get information about pages
that can be filtered out is too limited (there may be other ways to do
this; we might be able to use cmma on s390, for example), and I don't
like hardcoding to a specific method.
What about the reverse approach: Code may register a handler that
populates the free_pages_bitmap which is called during this stage?
<I like the idea of filtering in general, but I haven't looked at the
code yet>
> + }
> +
> migration_bitmap_sync();
> qemu_mutex_unlock_ramlist();
> qemu_mutex_unlock_iothread();
- [Qemu-devel] [RFC qemu 0/4] A PV solution for live migration optimization, Liang Li, 2016/03/03
- [Qemu-devel] [RFC qemu 1/4] pc: Add code to get the lowmem form PCMachineState, Liang Li, 2016/03/03
- [Qemu-devel] [RFC qemu 3/4] migration: not set migration bitmap in setup stage, Liang Li, 2016/03/03
- [Qemu-devel] [RFC qemu 2/4] virtio-balloon: Add a new feature to balloon device, Liang Li, 2016/03/03
- [Qemu-devel] [RFC qemu 4/4] migration: filter out guest's free pages in ram bulk stage, Liang Li, 2016/03/03
- Re: [Qemu-devel] [RFC qemu 0/4] A PV solution for live migration optimization, Roman Kagan, 2016/03/03
- Re: [Qemu-devel] [RFC qemu 0/4] A PV solution for live migration optimization, Dr. David Alan Gilbert, 2016/03/03