|
@@ -1964,6 +1964,11 @@ static int ram_save_target_page(RAMState *rs, PageSearchStatus *pss)
|
|
|
ram_addr_t offset = ((ram_addr_t)pss->page) << TARGET_PAGE_BITS;
|
|
|
int res;
|
|
|
|
|
|
+ /* Hand over to RDMA first */
|
|
|
+ if (control_save_page(pss, offset, &res)) {
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+
|
|
|
if (!migrate_multifd()
|
|
|
|| migrate_zero_page_detection() == ZERO_PAGE_DETECTION_LEGACY) {
|
|
|
if (save_zero_page(rs, pss, offset)) {
|
|
@@ -1976,10 +1981,6 @@ static int ram_save_target_page(RAMState *rs, PageSearchStatus *pss)
|
|
|
return ram_save_multifd_page(block, offset);
|
|
|
}
|
|
|
|
|
|
- if (control_save_page(pss, offset, &res)) {
|
|
|
- return res;
|
|
|
- }
|
|
|
-
|
|
|
return ram_save_page(rs, pss);
|
|
|
}
|
|
|
|