mirror of https://github.com/xemu-project/xemu.git
migration: Make dirty_sync_missed_zero_copy atomic
Signed-off-by: Juan Quintela <quintela@redhat.com> Reviewed-by: Peter Xu <peterx@redhat.com>
This commit is contained in:
parent
cf671116fa
commit
4291823694
|
@ -1150,7 +1150,7 @@ static void populate_ram_info(MigrationInfo *info, MigrationState *s)
|
||||||
info->ram->mbps = s->mbps;
|
info->ram->mbps = s->mbps;
|
||||||
info->ram->dirty_sync_count = ram_counters.dirty_sync_count;
|
info->ram->dirty_sync_count = ram_counters.dirty_sync_count;
|
||||||
info->ram->dirty_sync_missed_zero_copy =
|
info->ram->dirty_sync_missed_zero_copy =
|
||||||
ram_counters.dirty_sync_missed_zero_copy;
|
stat64_get(&ram_counters.dirty_sync_missed_zero_copy);
|
||||||
info->ram->postcopy_requests = ram_counters.postcopy_requests;
|
info->ram->postcopy_requests = ram_counters.postcopy_requests;
|
||||||
info->ram->page_size = page_size;
|
info->ram->page_size = page_size;
|
||||||
info->ram->multifd_bytes = stat64_get(&ram_counters.multifd_bytes);
|
info->ram->multifd_bytes = stat64_get(&ram_counters.multifd_bytes);
|
||||||
|
|
|
@ -576,7 +576,7 @@ static int multifd_zero_copy_flush(QIOChannel *c)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if (ret == 1) {
|
if (ret == 1) {
|
||||||
dirty_sync_missed_zero_copy();
|
stat64_add(&ram_counters.dirty_sync_missed_zero_copy, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
@ -472,11 +472,6 @@ void ram_transferred_add(uint64_t bytes)
|
||||||
stat64_add(&ram_counters.transferred, bytes);
|
stat64_add(&ram_counters.transferred, bytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
void dirty_sync_missed_zero_copy(void)
|
|
||||||
{
|
|
||||||
ram_counters.dirty_sync_missed_zero_copy++;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct MigrationOps {
|
struct MigrationOps {
|
||||||
int (*ram_save_target_page)(RAMState *rs, PageSearchStatus *pss);
|
int (*ram_save_target_page)(RAMState *rs, PageSearchStatus *pss);
|
||||||
};
|
};
|
||||||
|
|
|
@ -43,7 +43,7 @@
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int64_t dirty_pages_rate;
|
int64_t dirty_pages_rate;
|
||||||
int64_t dirty_sync_count;
|
int64_t dirty_sync_count;
|
||||||
uint64_t dirty_sync_missed_zero_copy;
|
Stat64 dirty_sync_missed_zero_copy;
|
||||||
uint64_t downtime_bytes;
|
uint64_t downtime_bytes;
|
||||||
Stat64 duplicate;
|
Stat64 duplicate;
|
||||||
Stat64 multifd_bytes;
|
Stat64 multifd_bytes;
|
||||||
|
@ -114,6 +114,4 @@ void ram_write_tracking_prepare(void);
|
||||||
int ram_write_tracking_start(void);
|
int ram_write_tracking_start(void);
|
||||||
void ram_write_tracking_stop(void);
|
void ram_write_tracking_stop(void);
|
||||||
|
|
||||||
void dirty_sync_missed_zero_copy(void);
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue