COLO: Load dirty pages into SVM's RAM cache firstly
commit13af18f2228892d19d40ff96672677d168da7e9e
authorZhang Chen <zhangckid@gmail.com>
Mon, 3 Sep 2018 04:38:48 +0000 (3 12:38 +0800)
committerJason Wang <jasowang@redhat.com>
Fri, 19 Oct 2018 03:15:03 +0000 (19 11:15 +0800)
tree3b2f851c82349606015b85fe2d688cc8643035cc
parentaad555c2294b5de22524b7dbacc728d51cc63bcc
COLO: Load dirty pages into SVM's RAM cache firstly

We should not load PVM's state directly into SVM, because there maybe some
errors happen when SVM is receving data, which will break SVM.

We need to ensure receving all data before load the state into SVM. We use
an extra memory to cache these data (PVM's ram). The ram cache in secondary side
is initially the same as SVM/PVM's memory. And in the process of checkpoint,
we cache the dirty pages of PVM into this ram cache firstly, so this ram cache
always the same as PVM's memory at every checkpoint, then we flush this cached ram
to SVM after we receive all PVM's state.

Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com>
Signed-off-by: Li Zhijian <lizhijian@cn.fujitsu.com>
Signed-off-by: Zhang Chen <zhangckid@gmail.com>
Signed-off-by: Zhang Chen <chen.zhang@intel.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
include/exec/ram_addr.h
migration/migration.c
migration/ram.c
migration/ram.h
migration/savevm.c