mirror of
https://github.com/qemu/qemu.git
synced 2025-08-15 22:31:15 +00:00
qemu_file: Use a stat64 for qemu_file_transferred
This way we can read it from any thread. I checked that it gives the same value as the current one. We never use two qemu_files at the same time. Reviewed-by: Fabiano Rosas <farosas@suse.de> Signed-off-by: Juan Quintela <quintela@redhat.com> Message-ID: <20231025091117.6342-3-quintela@redhat.com>
This commit is contained in:
parent
cc8bf57d56
commit
2d897237e0
@ -81,6 +81,10 @@ typedef struct {
|
|||||||
* Number of bytes sent during precopy stage.
|
* Number of bytes sent during precopy stage.
|
||||||
*/
|
*/
|
||||||
Stat64 precopy_bytes;
|
Stat64 precopy_bytes;
|
||||||
|
/*
|
||||||
|
* Number of bytes transferred with QEMUFile.
|
||||||
|
*/
|
||||||
|
Stat64 qemu_file_transferred;
|
||||||
/*
|
/*
|
||||||
* Amount of transferred data at the start of current cycle.
|
* Amount of transferred data at the start of current cycle.
|
||||||
*/
|
*/
|
||||||
|
@ -283,6 +283,7 @@ void qemu_fflush(QEMUFile *f)
|
|||||||
} else {
|
} else {
|
||||||
uint64_t size = iov_size(f->iov, f->iovcnt);
|
uint64_t size = iov_size(f->iov, f->iovcnt);
|
||||||
f->total_transferred += size;
|
f->total_transferred += size;
|
||||||
|
stat64_add(&mig_stats.qemu_file_transferred, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
qemu_iovec_release_ram(f);
|
qemu_iovec_release_ram(f);
|
||||||
@ -623,7 +624,7 @@ int coroutine_mixed_fn qemu_get_byte(QEMUFile *f)
|
|||||||
|
|
||||||
uint64_t qemu_file_transferred_noflush(QEMUFile *f)
|
uint64_t qemu_file_transferred_noflush(QEMUFile *f)
|
||||||
{
|
{
|
||||||
uint64_t ret = f->total_transferred;
|
uint64_t ret = stat64_get(&mig_stats.qemu_file_transferred);
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
g_assert(qemu_file_is_writable(f));
|
g_assert(qemu_file_is_writable(f));
|
||||||
@ -639,7 +640,7 @@ uint64_t qemu_file_transferred(QEMUFile *f)
|
|||||||
{
|
{
|
||||||
g_assert(qemu_file_is_writable(f));
|
g_assert(qemu_file_is_writable(f));
|
||||||
qemu_fflush(f);
|
qemu_fflush(f);
|
||||||
return f->total_transferred;
|
return stat64_get(&mig_stats.qemu_file_transferred);
|
||||||
}
|
}
|
||||||
|
|
||||||
void qemu_put_be16(QEMUFile *f, unsigned int v)
|
void qemu_put_be16(QEMUFile *f, unsigned int v)
|
||||||
|
Loading…
Reference in New Issue
Block a user