From f7ec298174c4a06224656796dc5cd1594a863070 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Paul=20B=C3=A9daride?= Date: Thu, 28 Nov 2013 11:31:30 +0100 Subject: [PATCH] Fix issue with surf.h included in simix.h --- include/simgrid/datatypes.h | 33 +++++++++++++++++++++++++++++++++ include/simgrid/simix.h | 3 +-- src/include/surf/surf.h | 23 +---------------------- src/surf/network_smpi.cpp | 14 +++++++++++++- src/surf/network_smpi.hpp | 4 +++- 5 files changed, 51 insertions(+), 26 deletions(-) create mode 100644 include/simgrid/datatypes.h diff --git a/include/simgrid/datatypes.h b/include/simgrid/datatypes.h new file mode 100644 index 0000000000..fb3974ead2 --- /dev/null +++ b/include/simgrid/datatypes.h @@ -0,0 +1,33 @@ +/* + * datatypes.h + * + * Created on: Nov 28, 2013 + * Author: bedaride + */ + +#ifndef SIMGRID_DATATYPES_H_ +#define SIMGRID_DATATYPES_H_ + +typedef struct ws_params { + int ncpus; + sg_size_t ramsize; + int overcommit; + + /* The size of other states than memory pages, which is out-of-scope of dirty + * page tracking. */ + long devsize; + int skip_stage1; + int skip_stage2; + double max_downtime; + + double dp_rate; + double dp_cap; /* bytes per 1 flop execution */ + + double xfer_cpu_overhead; + double dpt_cpu_overhead; + + /* set migration speed */ + double mig_speed; +} s_ws_params_t, *ws_params_t; + +#endif /* SIMGRID_DATATYPES_H_ */ diff --git a/include/simgrid/simix.h b/include/simgrid/simix.h index 911605bc39..62df978543 100644 --- a/include/simgrid/simix.h +++ b/include/simgrid/simix.h @@ -14,7 +14,7 @@ #include "xbt/parmap.h" #include "xbt/swag.h" #include "simgrid/platf.h" -#include "surf/surf.h" +#include "simgrid/datatypes.h" SG_BEGIN_DECL() @@ -52,7 +52,6 @@ typedef enum { } e_smx_state_t; /** @} */ - typedef struct s_smx_timer* smx_timer_t; /* ******************************** Synchro ************************************ */ diff --git a/src/include/surf/surf.h b/src/include/surf/surf.h index 07bda08049..dfcc808b3c 100644 --- a/src/include/surf/surf.h +++ b/src/include/surf/surf.h @@ -18,6 +18,7 @@ #include "xbt/lib.h" #include "surf/surf_routing.h" #include "simgrid/platf_interface.h" +#include "simgrid/datatypes.h" SG_BEGIN_DECL() /* Actions and models are highly connected structures... */ @@ -183,28 +184,6 @@ typedef enum { } e_surf_vm_state_t; -typedef struct ws_params { - int ncpus; - sg_size_t ramsize; - int overcommit; - - /* The size of other states than memory pages, which is out-of-scope of dirty - * page tracking. */ - long devsize; - int skip_stage1; - int skip_stage2; - double max_downtime; - - double dp_rate; - double dp_cap; /* bytes per 1 flop execution */ - - double xfer_cpu_overhead; - double dpt_cpu_overhead; - - /* set migration speed */ - double mig_speed; -} s_ws_params_t, *ws_params_t; - /***************************/ /* Generic model object */ /***************************/ diff --git a/src/surf/network_smpi.cpp b/src/surf/network_smpi.cpp index f0be52e899..64dc992515 100644 --- a/src/surf/network_smpi.cpp +++ b/src/surf/network_smpi.cpp @@ -80,6 +80,17 @@ void surf_network_model_init_SMPI(void) xbt_cfg_setdefault_double(_sg_cfg_set, "network/weight_S", 8775); } +NetworkSmpiModel::NetworkSmpiModel() + : NetworkCm02Model() { + m_haveGap=true; +} + +NetworkSmpiModel::~NetworkSmpiModel(){ + if (gap_lookup) { + xbt_dict_free(&gap_lookup); + } +} + void NetworkSmpiModel::gapAppend(double size, const NetworkCm02LinkLmmPtr link, NetworkCm02ActionLmmPtr action) { const char *src = link->m_name; @@ -173,12 +184,13 @@ double NetworkSmpiModel::latencyFactor(double size) xbt_dynar_foreach(smpi_lat_factor, iter, fact) { if (size <= fact.factor) { XBT_DEBUG("%f <= %ld return %f", size, fact.factor, current); + xbt_dynar_free(&smpi_lat_factor); return current; }else current=fact.value; } XBT_DEBUG("%f > %ld return %f", size, fact.factor, current); - + xbt_dynar_free(&smpi_lat_factor); return current; } diff --git a/src/surf/network_smpi.hpp b/src/surf/network_smpi.hpp index f5d38fa3ff..54b2b9bd95 100644 --- a/src/surf/network_smpi.hpp +++ b/src/surf/network_smpi.hpp @@ -17,7 +17,9 @@ typedef NetworkSmpiModel *NetworkSmpiModelPtr; class NetworkSmpiModel : public NetworkCm02Model { public: - NetworkSmpiModel() : NetworkCm02Model() {m_haveGap=true;}; + NetworkSmpiModel(); + ~NetworkSmpiModel(); + void gapAppend(double size, const NetworkCm02LinkLmmPtr link, NetworkCm02ActionLmmPtr action); void gapRemove(ActionLmmPtr action); double latencyFactor(double size); -- 2.20.1