X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e26d84ebd86c18af7d79d4afd659e53fd62ac9eb..2e501076bf39bf43b598954f040b453fedf49f4c:/src/simgrid/sg_config.c diff --git a/src/simgrid/sg_config.c b/src/simgrid/sg_config.c index 585bd3b38e..0182f32624 100644 --- a/src/simgrid/sg_config.c +++ b/src/simgrid/sg_config.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2009-2010, 2012-2014. The SimGrid Team. +/* Copyright (c) 2009-2010, 2012-2015. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -18,11 +18,13 @@ #include "instr/instr_interface.h" #include "simgrid/simix.h" #include "simgrid/sg_config.h" +#ifdef HAVE_SMPI #include "smpi/smpi_interface.h" +#endif #include "mc/mc.h" -#include "mc/mc_record.h" +#include "src/mc/mc_record.h" #include "simgrid/instr.h" -#include "mc/mc_replay.h" +#include "src/mc/mc_replay.h" XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_config, surf, "About the configuration of simgrid"); @@ -365,7 +367,7 @@ static void _sg_cfg_cb__surf_path(const char *name, int pos) } /* callback to decide if we want to use the model-checking */ -#include "xbt_modinter.h" +#include "src/xbt_modinter.h" #ifdef HAVE_MC extern int _sg_do_model_check; /* this variable lives in xbt_main until I find a right location for it */ @@ -377,17 +379,6 @@ static void _sg_cfg_cb_model_check_replay(const char *name, int pos) MC_record_path = xbt_cfg_get_string(_sg_cfg_set, name); } -static void _sg_cfg_cb_model_check(const char *name, int pos) -{ -#ifdef HAVE_MC - _sg_do_model_check = xbt_cfg_get_boolean(_sg_cfg_set, name); -#else - if (xbt_cfg_get_boolean(_sg_cfg_set, name)) { - xbt_die("You tried to activate the model-checking from the command line, but it was not compiled in. Change your settings in cmake, recompile and try again"); - } -#endif -} - static void _sg_cfg_cb_model_check_record(const char *name, int pos) { #ifdef HAVE_MC @@ -461,14 +452,16 @@ static void _sg_cfg_cb_contexts_parallel_mode(const char *name, int pos) static void _sg_cfg_cb__surf_network_coordinates(const char *name, int pos) { + static int already_set = 0; int val = xbt_cfg_get_boolean(_sg_cfg_set, name); if (val) { - if (!COORD_HOST_LEVEL) { + if (!already_set) { COORD_HOST_LEVEL = xbt_lib_add_level(host_lib,xbt_dynar_free_voidp); COORD_ASR_LEVEL = xbt_lib_add_level(as_router_lib,xbt_dynar_free_voidp); } + already_set = 1; } else - if (COORD_HOST_LEVEL) + if (already_set) xbt_die("Setting of whether to use coordinate cannot be disabled once set."); } @@ -478,18 +471,6 @@ static void _sg_cfg_cb__surf_network_crosstraffic(const char *name, sg_network_crosstraffic = xbt_cfg_get_boolean(_sg_cfg_set, name); } -#ifdef HAVE_GTNETS -static void _sg_cfg_cb__gtnets_jitter(const char *name, int pos) -{ - sg_gtnets_jitter = xbt_cfg_get_double(_sg_cfg_set, name); -} - -static void _sg_cfg_cb__gtnets_jitter_seed(const char *name, int pos) -{ - sg_gtnets_jitter_seed = xbt_cfg_get_int(_sg_cfg_set, name); -} -#endif - /* build description line with possible values */ static void describe_model(char *result, const s_surf_model_description_t model_description[], @@ -625,12 +606,6 @@ void sg_config_init(int *argc, char **argv) xbt_cfgelm_string, 0, 1, _sg_cfg_cb_model_check_replay, NULL); #ifdef HAVE_MC - /* do model-checking */ - xbt_cfg_register(&_sg_cfg_set, "model-check", - "Verify the system through model-checking instead of simulating it (EXPERIMENTAL)", - xbt_cfgelm_boolean, 1, 1, _sg_cfg_cb_model_check, NULL); - xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check", "no"); - /* do model-checking-record */ xbt_cfg_register(&_sg_cfg_set, "model-check/record", "Record the model-checking paths", @@ -650,6 +625,17 @@ void sg_config_init(int *argc, char **argv) xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_sparse_checkpoint, NULL); xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check/sparse-checkpoint", "no"); + /* do stateful model-checking */ + xbt_cfg_register(&_sg_cfg_set, "model-check/soft-dirty", + "Use sparse per-page snapshots.", + xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_soft_dirty, NULL); + xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check/soft-dirty", "no"); + + xbt_cfg_register(&_sg_cfg_set, "model-check/ksm", + "Kernel same-page merging", + xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_ksm, NULL); + xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check/ksm", "no"); + /* do liveness model-checking */ xbt_cfg_register(&_sg_cfg_set, "model-check/property", "Specify the name of the file containing the property. It must be the result of the ltl2ba program.", @@ -797,17 +783,6 @@ void sg_config_init(int *argc, char **argv) xbt_cfgelm_boolean, 1, 1, _sg_cfg_cb__surf_network_crosstraffic, NULL); xbt_cfg_setdefault_boolean(_sg_cfg_set, "network/crosstraffic", "no"); -#ifdef HAVE_GTNETS - xbt_cfg_register(&_sg_cfg_set, "gtnets/jitter", - "Double value to oscillate the link latency, uniformly in random interval [-latency*gtnets_jitter,latency*gtnets_jitter)", - xbt_cfgelm_double, 1, 1, _sg_cfg_cb__gtnets_jitter, NULL); - xbt_cfg_setdefault_double(_sg_cfg_set, "gtnets/jitter", 0.0); - - xbt_cfg_register(&_sg_cfg_set, "gtnets/jitter_seed", - "Use a positive seed to reproduce jitted results, value must be in [1,1e8], default is 10", - xbt_cfgelm_int, 0, 1, _sg_cfg_cb__gtnets_jitter_seed, NULL); - xbt_cfg_setdefault_int(_sg_cfg_set, "gtnets/jitter_seed", 10); -#endif #ifdef HAVE_NS3 xbt_cfg_register(&_sg_cfg_set, "ns3/TcpModel", "The ns3 tcp model can be : NewReno or Reno or Tahoe", @@ -862,10 +837,10 @@ void sg_config_init(int *argc, char **argv) xbt_cfgelm_double, 1, 1, NULL, NULL); xbt_cfg_setdefault_double(_sg_cfg_set, "smpi/cpu_threshold", 1e-6); - xbt_cfg_register(&_sg_cfg_set, "smpi/async_small_thres", + xbt_cfg_register(&_sg_cfg_set, "smpi/async_small_thresh", "Maximal size of messages that are to be sent asynchronously, without waiting for the receiver", xbt_cfgelm_int, 1, 1, NULL, NULL); - xbt_cfg_setdefault_int(_sg_cfg_set, "smpi/async_small_thres", 0); + xbt_cfg_setdefault_int(_sg_cfg_set, "smpi/async_small_thresh", 0); xbt_cfg_register(&_sg_cfg_set, "smpi/send_is_detached_thres", "Threshold of message size where MPI_Send stops behaving like MPI_Isend and becomes MPI_Ssend", @@ -1024,7 +999,6 @@ void surf_config_models_setup() if ((!xbt_cfg_is_default_value(_sg_cfg_set, "network/model") || !xbt_cfg_is_default_value(_sg_cfg_set, "cpu/model")) && xbt_cfg_is_default_value(_sg_cfg_set, "host/model")) { - XBT_INFO("Switching host model to compound since you changed the network and/or cpu model(s)"); host_model_name = "compound"; xbt_cfg_set_string(_sg_cfg_set, "host/model", host_model_name); }