mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 00:33:55 -06:00
migration: Use atomic ops properly for page accountings
To prepare for thread-safety on page accountings, at least below counters need to be accessed only atomically, they are: ram_counters.transferred ram_counters.duplicate ram_counters.normal ram_counters.postcopy_bytes There are a lot of other counters but they won't be accessed outside migration thread, then they're still safe to be accessed without atomic ops. Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Signed-off-by: Peter Xu <peterx@redhat.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
This commit is contained in:
parent
f3321554ef
commit
23b7576d78
4 changed files with 51 additions and 23 deletions
|
@ -432,7 +432,7 @@ static int multifd_send_pages(QEMUFile *f)
|
|||
transferred = ((uint64_t) pages->num) * p->page_size + p->packet_len;
|
||||
qemu_file_acct_rate_limit(f, transferred);
|
||||
ram_counters.multifd_bytes += transferred;
|
||||
ram_counters.transferred += transferred;
|
||||
stat64_add(&ram_atomic_counters.transferred, transferred);
|
||||
qemu_mutex_unlock(&p->mutex);
|
||||
qemu_sem_post(&p->sem);
|
||||
|
||||
|
@ -624,7 +624,7 @@ int multifd_send_sync_main(QEMUFile *f)
|
|||
p->pending_job++;
|
||||
qemu_file_acct_rate_limit(f, p->packet_len);
|
||||
ram_counters.multifd_bytes += p->packet_len;
|
||||
ram_counters.transferred += p->packet_len;
|
||||
stat64_add(&ram_atomic_counters.transferred, p->packet_len);
|
||||
qemu_mutex_unlock(&p->mutex);
|
||||
qemu_sem_post(&p->sem);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue