Re: [RFC Design Doc]Speed up live migration by skipping free pages

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



* Wei Yang (richard.weiyang@xxxxxxxxxx) wrote:
> On Wed, Mar 23, 2016 at 06:48:22AM +0000, Li, Liang Z wrote:
> [...]
> >> > 8. Pseudo code
> >> > Dirty page logging should be enabled before getting the free page
> >> > information from guest, this is important because during the process
> >> > of getting free pages, some free pages may be used and written by the
> >> > guest, dirty page logging can trace these pages. The pseudo code is
> >> > like below:
> >> >
> >> >     -----------------------------------------------
> >> >     MigrationState *s = migrate_get_current();
> >> >     ...
> >> >
> >> >     memory_global_dirty_log_start();
> >> >
> >> >     if (get_guest_mem_info(&info)) {
> >> >         while (!get_free_page_bmap(free_page_bitmap,  drop_page_cache)
> >> &&
> >> >                s->state != MIGRATION_STATUS_CANCELLING) {
> >> >             usleep(1000) // sleep for 1 ms
> >> >         }
> >> >
> >> >         tighten_free_page_bmap =
> >> tighten_guest_free_pages(free_page_bitmap);
> >> >         filter_out_guest_free_pages(tighten_free_page_bmap);
> >> >     }
> >> 
> >> Given the typical speed of networks; it wouldn't do too much harm to start
> >> sending assuming all pages are dirty and then when the guest finally gets
> >> around to finishing the bitmap then update, so it's asynchronous - and then if
> >> the guest never responds we don't really care.
> >
> >Indeed, thanks!
> >
> 
> This is interesting. By doing so, the threshold I mentioned in another mail is
> not necessary, since we can do it in parallel.

Actually I just realised it's a little more complex; we can't sync the dirty
bitmap again from the guest until after we've received the guests 'free' bitmap;
that's because we wouldn't know if a 'dirty' page reflected that a page declared
as 'free' had now been reused - so there is still an ordering there.

Dave

> 
> >Liang
> >> 
> >> Dave
> >> 
> >> >
> >> >     migration_bitmap_sync();
> >> >     ...
> >> >
> >> >     -----------------------------------------------
> >> >
> >> >
> >> > --
> >> > 1.9.1
> >> >
> >> --
> >> Dr. David Alan Gilbert / dgilbert@xxxxxxxxxx / Manchester, UK
> >N�����r��y���b�X��ǧv�^�)޺{.n�+����h����ܨ}���Ơz�&j:+v�������zZ+��+zf���h���~����i���z��w���?����&�)ߢf
> -- 
> Richard Yang\nHelp you, Help me
--
Dr. David Alan Gilbert / dgilbert@xxxxxxxxxx / Manchester, UK
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux