X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/1d18e615eaa617d3354bc22dfbe711d34be9f902..d944fb42733105c9de064b3a357c4009b8280d7e:/include/simgrid/platf.h diff --git a/include/simgrid/platf.h b/include/simgrid/platf.h index 652b8bc9ce..c0cffede9d 100644 --- a/include/simgrid/platf.h +++ b/include/simgrid/platf.h @@ -41,6 +41,46 @@ typedef enum { } e_surf_process_on_failure_t; +/* FIXME: Where should the VM state be defined? */ +typedef enum { + /* created, but not yet started */ + SURF_VM_STATE_CREATED, + + SURF_VM_STATE_RUNNING, + SURF_VM_STATE_MIGRATING, + + /* Suspend/resume does not involve disk I/O, so we assume there is no transition states. */ + SURF_VM_STATE_SUSPENDED, + + /* Save/restore involves disk I/O, so there should be transition states. */ + SURF_VM_STATE_SAVING, + SURF_VM_STATE_SAVED, + SURF_VM_STATE_RESTORING, + +} e_surf_vm_state_t; + +typedef struct ws_params { + int ncpus; + long 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; + typedef struct tmgr_trace *tmgr_trace_t; /**< Opaque structure defining an availability trace */ /** opaque structure defining a event generator for availability based on a probability distribution */ @@ -190,6 +230,7 @@ typedef struct s_sg_platf_cluster_cbarg { double loopback_bw; double loopback_lat; double limiter_link; + xbt_dict_t properties; const char* router_id; e_surf_link_sharing_policy_t sharing_policy; e_surf_link_sharing_policy_t bb_sharing_policy; @@ -198,7 +239,7 @@ typedef struct s_sg_platf_cluster_cbarg { } s_sg_platf_cluster_cbarg_t; #define SG_PLATF_CLUSTER_INITIALIZER {NULL,NULL,NULL,NULL,NULL,NULL \ - ,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL} + ,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL} typedef struct s_sg_platf_cabinet_cbarg *sg_platf_cabinet_cbarg_t; typedef struct s_sg_platf_cabinet_cbarg {