Re: [Qemu-devel] [PATCH 37/41] migration: small changes around rate-limiting

2013-02-22 Thread Juan Quintela
Paolo Bonzini pbonz...@redhat.com wrote:
 This patch extracts a few small changes from the next patch, which
 are unrelated to adding generic rate-limiting functionality to
 QEMUFile.  Make migration_set_rate_limit a simple accessor, and
 use qemu_file_set_rate_limit consistently.  Also fix a typo where
 INT_MAX should have been SIZE_MAX.

 Signed-off-by: Paolo Bonzini pbonz...@redhat.com

Reviewed-by: Juan Quintela quint...@redhat.com



Re: [Qemu-devel] [PATCH 37/41] migration: small changes around rate-limiting

2013-02-22 Thread Orit Wasserman
On 02/15/2013 07:47 PM, Paolo Bonzini wrote:
 This patch extracts a few small changes from the next patch, which
 are unrelated to adding generic rate-limiting functionality to
 QEMUFile.  Make migration_set_rate_limit a simple accessor, and
 use qemu_file_set_rate_limit consistently.  Also fix a typo where
 INT_MAX should have been SIZE_MAX.
 
 Signed-off-by: Paolo Bonzini pbonz...@redhat.com
 ---
  migration.c |   19 +++
  1 files changed, 11 insertions(+), 8 deletions(-)
 
 diff --git a/migration.c b/migration.c
 index d636c59..308214f 100644
 --- a/migration.c
 +++ b/migration.c
 @@ -451,10 +451,15 @@ void qmp_migrate_set_speed(int64_t value, Error **errp)
  if (value  0) {
  value = 0;
  }
 +if (value  SIZE_MAX) {
 +value = SIZE_MAX;
 +}
  
  s = migrate_get_current();
  s-bandwidth_limit = value;
 -qemu_file_set_rate_limit(s-file, s-bandwidth_limit);
 +if (s-file) {
 +qemu_file_set_rate_limit(s-file, s-bandwidth_limit / 
 XFER_LIMIT_RATIO);
 +}
  }
  
  void qmp_migrate_set_downtime(double value, Error **errp)
 @@ -554,11 +559,8 @@ static int64_t migration_set_rate_limit(void *opaque, 
 int64_t new_rate)
  if (qemu_file_get_error(s-file)) {
  goto out;
  }
 -if (new_rate  SIZE_MAX) {
 -new_rate = SIZE_MAX;
 -}
  
 -s-xfer_limit = new_rate / XFER_LIMIT_RATIO;
 +s-xfer_limit = new_rate;
  
  out:
  return s-xfer_limit;
 @@ -600,7 +602,7 @@ static void *migration_thread(void *opaque)
  qemu_system_wakeup_request(QEMU_WAKEUP_REASON_OTHER);
  old_vm_running = runstate_is_running();
  vm_stop_force_state(RUN_STATE_FINISH_MIGRATE);
 -s-xfer_limit = INT_MAX;
 +qemu_file_set_rate_limit(s-file, INT_MAX);
  qemu_savevm_state_complete(s-file);
  qemu_mutex_unlock_iothread();
  if (!qemu_file_get_error(s-file)) {
 @@ -663,11 +665,12 @@ void migrate_fd_connect(MigrationState *s)
  {
  s-state = MIG_STATE_ACTIVE;
  s-bytes_xfer = 0;
 -s-xfer_limit = s-bandwidth_limit / XFER_LIMIT_RATIO;
 -
  s-cleanup_bh = qemu_bh_new(migrate_fd_cleanup, s);
  s-file = qemu_fopen_ops(s, migration_file_ops);
  
 +qemu_file_set_rate_limit(s-file,
 + s-bandwidth_limit / XFER_LIMIT_RATIO);
 +
  qemu_thread_create(s-thread, migration_thread, s,
 QEMU_THREAD_JOINABLE);
  notifier_list_notify(migration_state_notifiers, s);
 
Reviewed-by: Orit Wasserman owass...@redhat.com



[Qemu-devel] [PATCH 37/41] migration: small changes around rate-limiting

2013-02-15 Thread Paolo Bonzini
This patch extracts a few small changes from the next patch, which
are unrelated to adding generic rate-limiting functionality to
QEMUFile.  Make migration_set_rate_limit a simple accessor, and
use qemu_file_set_rate_limit consistently.  Also fix a typo where
INT_MAX should have been SIZE_MAX.

Signed-off-by: Paolo Bonzini pbonz...@redhat.com
---
 migration.c |   19 +++
 1 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/migration.c b/migration.c
index d636c59..308214f 100644
--- a/migration.c
+++ b/migration.c
@@ -451,10 +451,15 @@ void qmp_migrate_set_speed(int64_t value, Error **errp)
 if (value  0) {
 value = 0;
 }
+if (value  SIZE_MAX) {
+value = SIZE_MAX;
+}
 
 s = migrate_get_current();
 s-bandwidth_limit = value;
-qemu_file_set_rate_limit(s-file, s-bandwidth_limit);
+if (s-file) {
+qemu_file_set_rate_limit(s-file, s-bandwidth_limit / 
XFER_LIMIT_RATIO);
+}
 }
 
 void qmp_migrate_set_downtime(double value, Error **errp)
@@ -554,11 +559,8 @@ static int64_t migration_set_rate_limit(void *opaque, 
int64_t new_rate)
 if (qemu_file_get_error(s-file)) {
 goto out;
 }
-if (new_rate  SIZE_MAX) {
-new_rate = SIZE_MAX;
-}
 
-s-xfer_limit = new_rate / XFER_LIMIT_RATIO;
+s-xfer_limit = new_rate;
 
 out:
 return s-xfer_limit;
@@ -600,7 +602,7 @@ static void *migration_thread(void *opaque)
 qemu_system_wakeup_request(QEMU_WAKEUP_REASON_OTHER);
 old_vm_running = runstate_is_running();
 vm_stop_force_state(RUN_STATE_FINISH_MIGRATE);
-s-xfer_limit = INT_MAX;
+qemu_file_set_rate_limit(s-file, INT_MAX);
 qemu_savevm_state_complete(s-file);
 qemu_mutex_unlock_iothread();
 if (!qemu_file_get_error(s-file)) {
@@ -663,11 +665,12 @@ void migrate_fd_connect(MigrationState *s)
 {
 s-state = MIG_STATE_ACTIVE;
 s-bytes_xfer = 0;
-s-xfer_limit = s-bandwidth_limit / XFER_LIMIT_RATIO;
-
 s-cleanup_bh = qemu_bh_new(migrate_fd_cleanup, s);
 s-file = qemu_fopen_ops(s, migration_file_ops);
 
+qemu_file_set_rate_limit(s-file,
+ s-bandwidth_limit / XFER_LIMIT_RATIO);
+
 qemu_thread_create(s-thread, migration_thread, s,
QEMU_THREAD_JOINABLE);
 notifier_list_notify(migration_state_notifiers, s);
-- 
1.7.1