Features/Migration: Difference between revisions

From QEMU
(Created page with '== Summary == Migration improvementes for 0.15. == Owner == * '''Name:''' Juan Quintela * '''Email:''' quintela@redhat.com == Detailed Summary == Migration and live migratio…')
 
No edit summary
Line 18: Line 18:
== TODO ==
== TODO ==


- split migration in its own thread/subroutine
* split migration in its own thread/subroutine


   This allows several improments:
   This allows several improments:
   * monitor can be used on migration target
    
  * vcpus/iothreads can work while live migration part is working
** monitor can be used on migration target
  * we can remove several layers of buffering (due to the mainloop design, we are forced to have several layers of buffering).
** vcpus/iothreads can work while live migration part is working
** we can remove several layers of buffering (due to the mainloop design, we are forced to have several layers of buffering).


- split foo_live_migration_calls() onto its parts:
* split foo_live_migration_calls() onto its parts:
  * foo_setup() (was stage 1)
** foo_setup()     (was stage 1)
  * foo_save_live() (was stage 2)
** foo_save_live() (was stage 2)
  * foo_save_rest() (was stage 3, better name needed)
** foo_save_rest() (was stage 3, better name needed)
  * foo_cancel()    (was stage -1)
** foo_cancel()    (was stage -1)





Revision as of 18:00, 15 February 2011

Summary

Migration improvementes for 0.15.

Owner

  • Name: Juan Quintela
  • Email: quintela@redhat.com

Detailed Summary

Migration and live migration have several parts that are suboptimal. This describes way to improve it.

Status

This is the roadmap, features are integrated upstream as they are done.

TODO

  • split migration in its own thread/subroutine
 This allows several improments:
 
    • monitor can be used on migration target
    • vcpus/iothreads can work while live migration part is working
    • we can remove several layers of buffering (due to the mainloop design, we are forced to have several layers of buffering).
  • split foo_live_migration_calls() onto its parts:
    • foo_setup() (was stage 1)
    • foo_save_live() (was stage 2)
    • foo_save_rest() (was stage 3, better name needed)
    • foo_cancel() (was stage -1)


Code

The code still not merged is currently kept in several branches of this git repository: