xemu/migration
Alexey Perevalov 01a87f0bd3 migration: add postcopy blocktime ctx into MigrationIncomingState
This patch adds request to kernel space for UFFD_FEATURE_THREAD_ID, in
case this feature is provided by kernel.

PostcopyBlocktimeContext is encapsulated inside postcopy-ram.c,
due to it being a postcopy-only feature.
Also it defines PostcopyBlocktimeContext's instance live time.
Information from PostcopyBlocktimeContext instance will be provided
much after postcopy migration end, instance of PostcopyBlocktimeContext
will live till QEMU exit, but part of it (vcpu_addr,
page_fault_vcpu_time) used only during calculation, will be released
when postcopy ended or failed.

To enable postcopy blocktime calculation on destination, need to
request proper compatibility (Patch for documentation will be at the
tail of the patch set).

As an example following command enable that capability, assume QEMU was
started with
-chardev socket,id=charmonitor,path=/var/lib/migrate-vm-monitor.sock
option to control it

[root@host]#printf "{\"execute\" : \"qmp_capabilities\"}\r\n \
{\"execute\": \"migrate-set-capabilities\" , \"arguments\":   {
\"capabilities\": [ { \"capability\": \"postcopy-blocktime\", \"state\":
true } ] } }" | nc -U /var/lib/migrate-vm-monitor.sock

Or just with HMP
(qemu) migrate_set_capability postcopy-blocktime on

Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Alexey Perevalov <a.perevalov@samsung.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
2018-01-15 12:48:00 +01:00
..
block.c Remove empty statements 2017-12-18 17:07:02 +03:00
block.h migration: disable auto-converge during bulk block migration 2017-09-27 11:27:14 +01:00
channel.c migration: Add comments to channel functions 2017-09-22 14:11:18 +02:00
channel.h migration: Remove MigrationState from migration_channel_incomming() 2017-06-13 11:00:44 +02:00
colo-comm.c migration: pre_save return int 2017-09-27 11:35:59 +01:00
colo-failover.c qapi: Mechanically convert FOO_lookup[...] to FOO_str(...) 2017-09-04 13:09:13 +02:00
colo.c qapi: Mechanically convert FOO_lookup[...] to FOO_str(...) 2017-09-04 13:09:13 +02:00
exec.c migration: Teach it about G_SOURCE_REMOVE 2017-09-22 14:11:18 +02:00
exec.h migration: Export exec.c functions in its own file 2017-06-01 18:49:22 +02:00
fd.c migration: Teach it about G_SOURCE_REMOVE 2017-09-22 14:11:18 +02:00
fd.h migration: Export fd.c functions in its own file 2017-06-01 18:49:22 +02:00
global_state.c migration: pre_save return int 2017-09-27 11:35:59 +01:00
Makefile.objs buildsys: Move rdma libs to per object 2017-09-22 10:20:34 +08:00
migration.c migration: introduce postcopy-blocktime capability 2018-01-15 12:47:59 +01:00
migration.h migration: add postcopy blocktime ctx into MigrationIncomingState 2018-01-15 12:48:00 +01:00
page_cache.c migration: Make sure that we pass the right cache size 2017-10-29 14:06:15 +01:00
page_cache.h migration: Make cache_init() take an error parameter 2017-10-23 18:03:25 +02:00
postcopy-ram.c migration: add postcopy blocktime ctx into MigrationIncomingState 2018-01-15 12:48:00 +01:00
postcopy-ram.h migration: postcopy_place_page factoring out 2017-10-23 18:03:39 +02:00
qemu-file-channel.c migration: Split qemu-file.h 2017-06-01 18:49:22 +02:00
qemu-file-channel.h migration: Export qemu-file-channel.c functions in its own file 2017-05-18 19:20:50 +02:00
qemu-file.c migration: Remove unneeded includes 2017-06-14 11:10:19 +02:00
qemu-file.h migration: ram_control_* are implemented in qemu_file 2017-06-13 11:00:45 +02:00
qjson.c migration: Move qjson.h to migration/ 2017-05-18 19:20:59 +02:00
qjson.h migration: Move qjson.h to migration/ 2017-05-18 19:20:59 +02:00
ram.c migration/ram.c: do not set 'postcopy_running' in POSTCOPY_INCOMING_END 2017-11-22 08:50:37 +01:00
ram.h migration: No need to return the size of the cache 2017-10-29 14:06:15 +01:00
rdma.c migration/rdma: Send error during cancelling 2017-07-18 17:36:18 +02:00
rdma.h migration: Export rdma.c functions in its own file 2017-06-01 18:49:23 +02:00
savevm.c migration, xen: Fix block image lock issue on live migration 2017-11-21 19:42:26 +01:00
savevm.h migration: Create load_setup()/cleanup() methods 2017-07-10 17:52:21 +01:00
socket.c migration: free addr in the same function that we created it 2018-01-15 12:47:55 +01:00
socket.h migration: Export socket.c functions in its own file 2017-06-01 18:49:23 +02:00
tls.c migration: Improve migration thread error handling 2017-10-23 18:03:43 +02:00
tls.h migration: Export tls.c functions in its own file 2017-06-01 18:49:23 +02:00
trace-events migration: check pre_save return in vmstate_save_state 2017-09-27 11:36:31 +01:00
vmstate-types.c migration: Route more error paths 2017-09-27 11:44:18 +01:00
vmstate.c migration: wire vmstate_save_state errors up to vmstate_subsection_save 2017-09-27 11:38:21 +01:00
xbzrle.c migration: Create migration/xbzrle.h 2017-05-18 18:04:54 +02:00
xbzrle.h migration: Create migration/xbzrle.h 2017-05-18 18:04:54 +02:00