migration/cgs: add cgs_mig_savevm_state_cleanup
cgs_mig_savevm_state_cleanup is invoked after migration is done or cancelled to invoke the vendor specific cleanup to do some house keeping work. Signed-off-by: Wei Wang <wei.w.wang@intel.com>
This commit is contained in:
committed by
Nikolay Borisov
parent
1bf0585f28
commit
d1d88a351a
@@ -162,3 +162,12 @@ int cgs_mig_savevm_state_ram_cancel(QEMUFile *f, hwaddr gfn_end)
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void cgs_mig_savevm_state_cleanup(void)
|
||||
{
|
||||
if (!cgs_mig.savevm_state_cleanup) {
|
||||
return;
|
||||
}
|
||||
|
||||
cgs_mig.savevm_state_cleanup();
|
||||
}
|
||||
|
@@ -27,6 +27,7 @@ typedef struct CgsMig {
|
||||
int (*savevm_state_downtime)(void);
|
||||
int (*savevm_state_end)(QEMUFile *f);
|
||||
int (*savevm_state_ram_cancel)(hwaddr gfn_end);
|
||||
void (*savevm_state_cleanup)(void);
|
||||
} CgsMig;
|
||||
|
||||
bool cgs_mig_is_ready(void);
|
||||
@@ -38,5 +39,6 @@ long cgs_mig_savevm_state_ram(QEMUFile *f, RAMBlock *block, ram_addr_t offset,
|
||||
int cgs_mig_savevm_state_downtime(QEMUFile *f);
|
||||
int cgs_mig_savevm_state_end(QEMUFile *f);
|
||||
int cgs_mig_savevm_state_ram_cancel(QEMUFile *f, hwaddr gfn_end);
|
||||
void cgs_mig_savevm_state_cleanup(void);
|
||||
|
||||
#endif
|
||||
|
@@ -1529,6 +1529,7 @@ void qemu_savevm_state_cleanup(void)
|
||||
}
|
||||
|
||||
trace_savevm_state_cleanup();
|
||||
cgs_mig_savevm_state_cleanup();
|
||||
QTAILQ_FOREACH(se, &savevm_state.handlers, entry) {
|
||||
if (se->ops && se->ops->save_cleanup) {
|
||||
se->ops->save_cleanup(se->opaque);
|
||||
|
Reference in New Issue
Block a user