On (Thu) 12 Feb 2015 [23:03:07], Juan Quintela wrote: > Add a parameter to pass the number of bytes written, and make it return > the number of pages written instead. > > Signed-off-by: Juan Quintela <quint...@redhat.com> > --- > arch_init.c | 44 ++++++++++++++++++++++---------------------- > 1 file changed, 22 insertions(+), 22 deletions(-) > > diff --git a/arch_init.c b/arch_init.c > index 0066cf5..1133b26 100644 > --- a/arch_init.c > +++ b/arch_init.c > @@ -650,14 +650,19 @@ static int ram_save_page(QEMUFile *f, RAMBlock* block, > ram_addr_t offset, > return bytes_sent; > } > > -/* > - * ram_find_and_save_block: Finds a page to send and sends it to f > +/** > + * ram_find_and_save_block: Finds a dirty page and sends it to f > * > - * Returns: The number of bytes written. > + * Returns: The number of pages written > * 0 means no dirty pages > + * > + * @f: QEMUFile where to send the data > + * @last_stage: if we are at the completion stage > + * @bytes_transferred: increase it with the number of transferred bytes > */ > > -static int ram_find_and_save_block(QEMUFile *f, bool last_stage) > +static int ram_find_and_save_block(QEMUFile *f, bool last_stage, > + uint64_t *bytes_transferred) > { > RAMBlock *block = last_seen_block; > ram_addr_t offset = last_offset; > @@ -696,7 +701,9 @@ static int ram_find_and_save_block(QEMUFile *f, bool > last_stage) > last_seen_block = block; > last_offset = offset; > > - return bytes_sent; > + *bytes_transferred += bytes_sent; > + > + return (bytes_sent != 0);
Shouldn't page be counted here? > } > > static uint64_t bytes_transferred; > @@ -869,7 +876,7 @@ static int ram_save_iterate(QEMUFile *f, void *opaque) > int ret; > int i; > int64_t t0; > - int total_sent = 0; > + int pages_sent = 0; > > qemu_mutex_lock_ramlist(); > > @@ -882,14 +889,14 @@ static int ram_save_iterate(QEMUFile *f, void *opaque) > t0 = qemu_clock_get_ns(QEMU_CLOCK_REALTIME); > i = 0; > while ((ret = qemu_file_rate_limit(f)) == 0) { > - int bytes_sent; > + int pages; Let's make these unsigned right from the start; we're counting positive numbers. Amit