Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Remove useless length modifier 'l' in %l[efg] for printf.
[simgrid.git] / src / msg / msg_vm.c
index a814aa7..44bd5ca 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2013. The SimGrid Team.
+/* Copyright (c) 2012-2014. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -58,7 +58,7 @@ xbt_dict_t MSG_vm_get_properties(msg_vm_t vm)
 /** \ingroup m_host_management
  * \brief Change the value of a given host property
  *
- * \param host a host
+ * \param vm a vm
  * \param name a property name
  * \param value what to change the property to
  * \param free_ctn the freeing function to use to kill the value on need
@@ -577,14 +577,12 @@ static void launch_deferred_exec_process(msg_host_t host, double computation, do
 
   int nargvs = 4;
   char **argv = xbt_new(char *, nargvs);
-  argv[0] = xbt_strdup(pr_name);
-  argv[1] = bprintf("%lf", computation);
-  argv[2] = bprintf("%lf", prio);
+  argv[0] = pr_name;
+  argv[1] = bprintf("%f", computation);
+  argv[2] = bprintf("%f", prio);
   argv[3] = NULL;
 
   MSG_process_create_with_arguments(pr_name, deferred_exec_fun, NULL, host, nargvs - 1, argv);
-
-  xbt_free(pr_name);
 }
 
 
@@ -627,15 +625,12 @@ static void start_overhead_process(msg_task_t comm_task)
 
   int nargvs = 3;
   char **argv = xbt_new(char *, nargvs);
-  argv[0] = xbt_strdup(pr_name);
-  argv[1] = xbt_strdup(mbox);
+  argv[0] = pr_name;
+  argv[1] = mbox;
   argv[2] = NULL;
 
   // XBT_INFO("micro start: mbox %s", mbox);
   MSG_process_create_with_arguments(pr_name, task_tx_overhead_fun, NULL, MSG_host_self(), nargvs - 1, argv);
-
-  xbt_free(pr_name);
-  xbt_free(mbox);
 }
 
 static void shutdown_overhead_process(msg_task_t comm_task)
@@ -834,9 +829,9 @@ static void send_migration_data(const char *vm_name, const char *src_pm_name, co
 
 
   if (stage == 2){
-    XBT_DEBUG("mig-stage%d.%d: sent %" PRIu64 " duration %f actual_speed %f (target %f) cpu %f", stage, stage2_round, size, duration, actual_speed, mig_speed, cpu_utilization);}
+    XBT_DEBUG("mig-stage%d.%d: sent %llu duration %f actual_speed %f (target %f) cpu %f", stage, stage2_round, size, duration, actual_speed, mig_speed, cpu_utilization);}
   else{
-    XBT_DEBUG("mig-stage%d: sent %" PRIu64 " duration %f actual_speed %f (target %f) cpu %f", stage, size, duration, actual_speed, mig_speed, cpu_utilization);
+    XBT_DEBUG("mig-stage%d: sent %llu duration %f actual_speed %f (target %f) cpu %f", stage, size, duration, actual_speed, mig_speed, cpu_utilization);
   }
 
   xbt_free(task_name);
@@ -877,8 +872,8 @@ static double send_stage1(msg_host_t vm, const char *src_pm_name, const char *ds
   const char *vm_name = MSG_host_get_name(vm);
   char *mbox = get_mig_mbox_src_dst(vm_name, src_pm_name, dst_pm_name);
 
-  // const long chunksize = 1024 * 1024 * 100;
-  const sg_size_t chunksize = 1024L * 1024 * 100000;
+  // const long chunksize = (sg_size_t)1024 * 1024 * 100;
+  const sg_size_t chunksize = (sg_size_t)1024 * 1024 * 100000;
   sg_size_t remaining = ramsize;
   double computed_total = 0;
 
@@ -890,7 +885,6 @@ static double send_stage1(msg_host_t vm, const char *src_pm_name, const char *ds
     remaining -= datasize;
 
     send_migration_data(vm_name, src_pm_name, dst_pm_name, datasize, mbox, 1, 0, mig_speed, xfer_cpu_overhead);
-
     double computed = lookup_computed_flop_counts(vm, 1, 0);
     computed_total += computed;
 
@@ -901,7 +895,7 @@ static double send_stage1(msg_host_t vm, const char *src_pm_name, const char *ds
     //   launch_deferred_exec_process(vm, overhead, 10000);
     // }
   }
-
+  xbt_free(mbox);
   return computed_total;
 }
 
@@ -975,7 +969,7 @@ static int migration_tx_fun(int argc, char *argv[])
     double clock_post_send = MSG_get_clock();
     double bandwidth = ramsize / (clock_post_send - clock_prev_send);
     threshold = get_threshold_value(bandwidth, max_downtime);
-    XBT_INFO("actual banwdidth %f, threshold %f", bandwidth / 1024 / 1024, threshold);
+    XBT_INFO("actual banwdidth %f (MB/s), threshold %f", bandwidth / 1024 / 1024, threshold);
   }
 
 
@@ -1069,40 +1063,38 @@ static void do_migration(msg_vm_t vm, msg_host_t src_pm, msg_host_t dst_pm)
     char *pr_name = get_mig_process_rx_name(sg_host_name(vm), sg_host_name(src_pm), sg_host_name(dst_pm));
     int nargvs = 5;
     char **argv = xbt_new(char *, nargvs);
-    argv[0] = xbt_strdup(pr_name);
+    argv[0] = pr_name;
     argv[1] = xbt_strdup(sg_host_name(vm));
     argv[2] = xbt_strdup(sg_host_name(src_pm));
     argv[3] = xbt_strdup(sg_host_name(dst_pm));
     argv[4] = NULL;
 
     MSG_process_create_with_arguments(pr_name, migration_rx_fun, NULL, dst_pm, nargvs - 1, argv);
-
-    xbt_free(pr_name);
   }
 
   {
     char *pr_name = get_mig_process_tx_name(sg_host_name(vm), sg_host_name(src_pm), sg_host_name(dst_pm));
     int nargvs = 5;
     char **argv = xbt_new(char *, nargvs);
-    argv[0] = xbt_strdup(pr_name);
+    argv[0] = pr_name;
     argv[1] = xbt_strdup(sg_host_name(vm));
     argv[2] = xbt_strdup(sg_host_name(src_pm));
     argv[3] = xbt_strdup(sg_host_name(dst_pm));
     argv[4] = NULL;
     MSG_process_create_with_arguments(pr_name, migration_tx_fun, NULL, src_pm, nargvs - 1, argv);
-
-    xbt_free(pr_name);
   }
 
   /* wait until the migration have finished */
   {
     msg_task_t task = NULL;
     msg_error_t ret = MSG_task_recv(&task, mbox_ctl);
+
     xbt_assert(ret == MSG_OK);
 
     char *expected_task_name = get_mig_task_name(sg_host_name(vm), sg_host_name(src_pm), sg_host_name(dst_pm), 4);
     xbt_assert(strcmp(task->name, expected_task_name) == 0);
     xbt_free(expected_task_name);
+    MSG_task_destroy(task);
   }
 
   xbt_free(mbox_ctl);
@@ -1244,11 +1236,11 @@ msg_host_t MSG_vm_get_pm(msg_vm_t vm)
  * For example,
  *  On PM0, there are Task1 and VM0.
  *  On VM0, there is Task2.
- * Now we bound 75% to Task1@PM0 and bound 25% to Task2@VM0.
+ * Now we bound 75% to Task1\@PM0 and bound 25% to Task2\@VM0.
  * Then, 
- *  Task1@PM0 gets 50%.
- *  Task2@VM0 gets 25%.
- * This is NOT 75% for Task1@PM0 and 25% for Task2@VM0, respectively.
+ *  Task1\@PM0 gets 50%.
+ *  Task2\@VM0 gets 25%.
+ * This is NOT 75% for Task1\@PM0 and 25% for Task2\@VM0, respectively.
  *
  * This is because a VM has the dummy CPU action in the PM layer. Putting a
  * task on the VM does not affect the bound of the dummy CPU action. The bound