Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix some overflows in msg_vm on 32bits archs.
authorArnaud Giersch <arnaud.giersch@iut-bm.univ-fcomte.fr>
Tue, 18 Feb 2014 16:13:03 +0000 (17:13 +0100)
committerArnaud Giersch <arnaud.giersch@iut-bm.univ-fcomte.fr>
Tue, 18 Feb 2014 16:23:58 +0000 (17:23 +0100)
include/simgrid/datatypes.h
src/msg/msg_vm.c

index 94e1d6e..006da0a 100644 (file)
@@ -14,7 +14,7 @@ typedef struct ws_params {
 
   /* The size of other states than memory pages, which is out-of-scope of dirty
    * page tracking. */
 
   /* The size of other states than memory pages, which is out-of-scope of dirty
    * page tracking. */
-  long devsize;
+  sg_size_t devsize;
   int skip_stage1;
   int skip_stage2;
   double max_downtime;
   int skip_stage1;
   int skip_stage2;
   double max_downtime;
index cfdd947..a4d0401 100644 (file)
@@ -184,14 +184,14 @@ msg_vm_t MSG_vm_create(msg_host_t ind_pm, const char *name,
   msg_vm_t vm = MSG_vm_create_core(ind_pm, name);
   s_ws_params_t params;
   memset(&params, 0, sizeof(params));
   msg_vm_t vm = MSG_vm_create_core(ind_pm, name);
   s_ws_params_t params;
   memset(&params, 0, sizeof(params));
-  params.ramsize = 1L * 1024 * 1024 * ramsize;
+  params.ramsize = (sg_size_t)ramsize * 1024 * 1024;
   //params.overcommit = 0;
   params.devsize = 0;
   params.skip_stage2 = 0;
   params.max_downtime = 0.03;
   //params.overcommit = 0;
   params.devsize = 0;
   params.skip_stage2 = 0;
   params.max_downtime = 0.03;
-  params.dp_rate = (update_speed * 1L * 1024 * 1024 ) / host_speed;
+  params.dp_rate = (update_speed * 1024 * 1024) / host_speed;
   params.dp_cap = params.ramsize / 0.9; // working set memory is 90%
   params.dp_cap = params.ramsize / 0.9; // working set memory is 90%
-  params.mig_speed = 1L * 1024 * 1024 * mig_netspeed; // mig_speed
+  params.mig_speed = (double)mig_netspeed * 1024 * 1024; // mig_speed
 
   //XBT_INFO("dp rate %f migspeed : %f intensity mem : %d, updatespeed %f, hostspeed %f",params.dp_rate, params.mig_speed, dp_intensity, update_speed, host_speed);
   simcall_host_set_params(vm, &params);
 
   //XBT_INFO("dp rate %f migspeed : %f intensity mem : %d, updatespeed %f, hostspeed %f",params.dp_rate, params.mig_speed, dp_intensity, update_speed, host_speed);
   simcall_host_set_params(vm, &params);
@@ -926,7 +926,7 @@ static int migration_tx_fun(int argc, char *argv[])
   s_ws_params_t params;
   simcall_host_get_params(vm, &params);
   const sg_size_t ramsize   = params.ramsize;
   s_ws_params_t params;
   simcall_host_get_params(vm, &params);
   const sg_size_t ramsize   = params.ramsize;
-  const long devsize        = params.devsize;
+  const sg_size_t devsize   = params.devsize;
   const int skip_stage1     = params.skip_stage1;
   const int skip_stage2     = params.skip_stage2;
   const double dp_rate      = params.dp_rate;
   const int skip_stage1     = params.skip_stage1;
   const int skip_stage2     = params.skip_stage2;
   const double dp_rate      = params.dp_rate;