Message ID | 31388846c75d7136ebcdbd9150b399bcecf30322.1340371865.git.quintela@redhat.com |
---|---|
State | New |
Headers | show |
On 06/22/2012 04:46 PM, Juan Quintela wrote: > ram_save_remaining() is an expensive operation when there is a lot of memory. > So we only call the function when we need it. > > Signed-off-by: Juan Quintela <quintela@redhat.com> > --- > arch_init.c | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) > > diff --git a/arch_init.c b/arch_init.c > index a9e8b74..424efe7 100644 > --- a/arch_init.c > +++ b/arch_init.c > @@ -299,7 +299,6 @@ int ram_save_live(QEMUFile *f, int stage, void *opaque) > ram_addr_t addr; > uint64_t bytes_transferred_last; > double bwidth = 0; > - uint64_t expected_time = 0; > int ret; > > if (stage < 0) { > @@ -376,9 +375,12 @@ int ram_save_live(QEMUFile *f, int stage, void *opaque) > > qemu_put_be64(f, RAM_SAVE_FLAG_EOS); > > - expected_time = ram_save_remaining() * TARGET_PAGE_SIZE / bwidth; > - > - return (stage == 2) && (expected_time <= migrate_max_downtime()); > + if (stage == 2) { > + uint64_t expected_time; > + expected_time = ram_save_remaining() * TARGET_PAGE_SIZE / bwidth; > + return expected_time <= migrate_max_downtime(); > + } > + return 0; > } > > static inline void *host_from_stream_offset(QEMUFile *f, Reviewed-by: Orit Wasserman <owasserm@redhat.com>
diff --git a/arch_init.c b/arch_init.c index a9e8b74..424efe7 100644 --- a/arch_init.c +++ b/arch_init.c @@ -299,7 +299,6 @@ int ram_save_live(QEMUFile *f, int stage, void *opaque) ram_addr_t addr; uint64_t bytes_transferred_last; double bwidth = 0; - uint64_t expected_time = 0; int ret; if (stage < 0) { @@ -376,9 +375,12 @@ int ram_save_live(QEMUFile *f, int stage, void *opaque) qemu_put_be64(f, RAM_SAVE_FLAG_EOS); - expected_time = ram_save_remaining() * TARGET_PAGE_SIZE / bwidth; - - return (stage == 2) && (expected_time <= migrate_max_downtime()); + if (stage == 2) { + uint64_t expected_time; + expected_time = ram_save_remaining() * TARGET_PAGE_SIZE / bwidth; + return expected_time <= migrate_max_downtime(); + } + return 0; } static inline void *host_from_stream_offset(QEMUFile *f,
ram_save_remaining() is an expensive operation when there is a lot of memory. So we only call the function when we need it. Signed-off-by: Juan Quintela <quintela@redhat.com> --- arch_init.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-)