Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
simgrid.git
3 years agocosmetics
Frederic Suter [Mon, 1 Mar 2021 23:25:28 +0000 (00:25 +0100)]
cosmetics

3 years agoadd core_count setter
Frederic Suter [Mon, 1 Mar 2021 22:49:48 +0000 (23:49 +0100)]
add core_count setter

3 years agoAuto + std::make_unique.
Arnaud Giersch [Tue, 2 Mar 2021 15:13:45 +0000 (16:13 +0100)]
Auto + std::make_unique.

3 years agoUncomment.
Arnaud Giersch [Tue, 2 Mar 2021 14:57:09 +0000 (15:57 +0100)]
Uncomment.

3 years agoReduce code duplication.
Arnaud Giersch [Tue, 2 Mar 2021 14:26:06 +0000 (15:26 +0100)]
Reduce code duplication.

3 years agoProtect against buffer overflow.
Arnaud Giersch [Tue, 2 Mar 2021 13:58:47 +0000 (14:58 +0100)]
Protect against buffer overflow.

3 years agoMake Transition::textual a std::string.
Arnaud Giersch [Tue, 2 Mar 2021 13:45:21 +0000 (14:45 +0100)]
Make Transition::textual a std::string.

3 years agoRestore Rvalue references for xbt::Exception.
Arnaud Giersch [Fri, 26 Feb 2021 20:01:53 +0000 (21:01 +0100)]
Restore Rvalue references for xbt::Exception.

This was lost in commit 1361e008419329de33e4c92a6ad96621d40a9c40
and I don't remember any reason for that.

Exceptions are always built with temporaries, an d moving them should avoid
unnecessary copies.

3 years agoUncomment debug message.
Arnaud Giersch [Tue, 2 Mar 2021 10:52:21 +0000 (11:52 +0100)]
Uncomment debug message.

3 years agoMake field private (fixme--).
Arnaud Giersch [Tue, 2 Mar 2021 10:30:59 +0000 (11:30 +0100)]
Make field private (fixme--).

3 years agoUse std::copy.
Arnaud Giersch [Tue, 2 Mar 2021 10:09:32 +0000 (11:09 +0100)]
Use std::copy.

3 years agoType bool for boolean values.
Arnaud Giersch [Tue, 2 Mar 2021 09:41:28 +0000 (10:41 +0100)]
Type bool for boolean values.

3 years agoRemove some useless nested code blocks.
Arnaud Giersch [Mon, 1 Mar 2021 22:36:32 +0000 (23:36 +0100)]
Remove some useless nested code blocks.

3 years agoUsing C++ strings.
Arnaud Giersch [Mon, 1 Mar 2021 20:37:02 +0000 (21:37 +0100)]
Using C++ strings.

3 years agoUse xbt::string for MC hostnames.
Arnaud Giersch [Mon, 1 Mar 2021 16:21:04 +0000 (17:21 +0100)]
Use xbt::string for MC hostnames.

3 years agoKill useless function.
Arnaud Giersch [Mon, 1 Mar 2021 14:37:49 +0000 (15:37 +0100)]
Kill useless function.

3 years agoUse defined type alias.
Arnaud Giersch [Mon, 1 Mar 2021 14:31:09 +0000 (15:31 +0100)]
Use defined type alias.

3 years agoFix code generation (broken call to inspector_->is_pending), and reindent.
Arnaud Giersch [Mon, 1 Mar 2021 12:07:29 +0000 (13:07 +0100)]
Fix code generation (broken call to inspector_->is_pending), and reindent.

3 years agofix ns3
Frederic Suter [Mon, 1 Mar 2021 14:19:44 +0000 (15:19 +0100)]
fix ns3

3 years agoConsider Link latency as an optional parameter
Frederic Suter [Mon, 1 Mar 2021 13:14:55 +0000 (14:14 +0100)]
Consider Link latency as an optional parameter

3 years agomore fluent version
Frederic Suter [Mon, 1 Mar 2021 09:34:58 +0000 (10:34 +0100)]
more fluent version

3 years agoRollback a little in programmatic description of disks
Frederic Suter [Mon, 1 Mar 2021 09:24:24 +0000 (10:24 +0100)]
Rollback a little in programmatic description of disks
- add Required fields (w.r.t. the DTD) to the create_disk method
- leave the setters to enable changes of mind or dynamic stuff between
create and seal (TODO: add a state and some asserts)
- Resources always have a name so add it in the ctor

3 years agoFix usage string.
Arnaud Giersch [Mon, 1 Mar 2021 10:23:03 +0000 (11:23 +0100)]
Fix usage string.

3 years agoDeprecated simcall_mc_random.
Arnaud Giersch [Mon, 1 Mar 2021 09:47:19 +0000 (10:47 +0100)]
Deprecated simcall_mc_random.

Maybe this can be dropped immediately?.

3 years agoMake global variables 'const'.
Arnaud Giersch [Fri, 26 Feb 2021 14:23:07 +0000 (15:23 +0100)]
Make global variables 'const'.

3 years agoA few less global variables.
Arnaud Giersch [Fri, 26 Feb 2021 13:55:09 +0000 (14:55 +0100)]
A few less global variables.

3 years agoDon't require MC dependencies when building w/o MC
Martin Quinson [Mon, 1 Mar 2021 00:59:12 +0000 (01:59 +0100)]
Don't require MC dependencies when building w/o MC

3 years agoFix non-MC builds
Martin Quinson [Mon, 1 Mar 2021 00:46:38 +0000 (01:46 +0100)]
Fix non-MC builds

3 years agoFix make distcheck :-(
Martin Quinson [Mon, 1 Mar 2021 00:31:41 +0000 (01:31 +0100)]
Fix make distcheck :-(

3 years agoMissing file
Martin Quinson [Mon, 1 Mar 2021 00:30:18 +0000 (01:30 +0100)]
Missing file

3 years agoremove a workaround for a bug removed in previous commit
Martin Quinson [Mon, 1 Mar 2021 00:24:41 +0000 (01:24 +0100)]
remove a workaround for a bug removed in previous commit

Inspector::to_string() was sometimes called for simcalls w/o inspectors.

3 years agoSet the textual representation of a transition before executing it
Martin Quinson [Sun, 28 Feb 2021 23:38:00 +0000 (00:38 +0100)]
Set the textual representation of a transition before executing it

This way it will correctly be set if the App aborts or fails during that execution.

Also, don't use the execution path that is reserved to simcalls with
observers `mc_model_checker->simcall_to_string()` in any case.
Prefer the path that works with old simcalls too `Api::request_to_string()`

3 years agoSplit inspector::is_pending() in two logical parts
Martin Quinson [Sun, 28 Feb 2021 23:24:04 +0000 (00:24 +0100)]
Split inspector::is_pending() in two logical parts

- get_max_consider() returns how many times this simcall should be considered.
- prepare() does what needs to be done for the simcall to be fired in user space

This removes the RPC from MC to App to get this information:

 - The value of get_max_consider() is copied in the simcall structure
   when the AppSide prepares to wait for new instructions from the MC.
 - prepare() was already called by handle_simcall() on AppSide, to
   obey trace replays.

Less RPC is faster and less eror prone.

3 years agoNot sure why to_string is sometimes called when there is no inspector, but survive...
Martin Quinson [Sun, 28 Feb 2021 23:19:41 +0000 (00:19 +0100)]
Not sure why to_string is sometimes called when there is no inspector, but survive this bug

3 years agoRename ActorState::consider() and State::add_interleaved_set() as {ActorState,State...
Martin Quinson [Sun, 28 Feb 2021 20:32:27 +0000 (21:32 +0100)]
Rename ActorState::consider() and State::add_interleaved_set() as {ActorState,State}::mark_todo()

3 years agoFix build on clang
Martin Quinson [Sun, 28 Feb 2021 22:04:56 +0000 (23:04 +0100)]
Fix build on clang

3 years agoobjectification of MC simcall achieved -- many tests still failing
Martin Quinson [Sun, 28 Feb 2021 09:40:40 +0000 (10:40 +0100)]
objectification of MC simcall achieved -- many tests still failing

* MC_RANDOM is now a regular simcall, made observable by its SimcallInspector

  - remove it from simcall.in and remove all relevant elements

  - Other simcalls that are visible from MC (ie, that are generated by
    simcall.py and are handled in MC with big switch cases) are not
    modified at all, even if the patch reindent them since this execution
    path is now in a new conditionnal.

* SimcallInspectors are used everywhere where a specific handling was made for MC_RANDOM

  - In MC_state_choose_request_for_process, we get the next value to
    be picked by MC_random (or the next comm to be picked by waitany)
    depending on the amount of times we consider this simcall (ie, on the
    amount of decision forks we did on that transition while exploring the
    state space.
      This operation was not named before, it's now called is_pending()
    because it returns whether we should do another decision fork from
    that transition. Maybe is_branching() would be a better name.
      Or consider() since its parameter is times_considered, and there
    is one call location where its return value is ignored (when we
    replay all transitions on the path leading to the state we want to
    restore). But there is already a mc::ActorState::consider() where
    the Checker express interest in a given simcall.

  - The two other generic methods of SimcallInspectors are to_string()
    to get a textual representation of the transtion (eg to display the
    backtrace leading to the property violation), and dot_label() to
    get a label that can be used in dot(1). This is useful to get a
    visual representation of the state space.

  - There is a visible() method too, but I guess it's useless: Only
    visible simcall will be given an inspector. Or it will be more
    complex, because differing model checking algorithms will be
    interested in differing sets of simcalls (so visible() should be
    Checker-dependend). Leave it as is for now.

  - RandomSimcall is also implementing a get_value() method that
    allows its implementation. At the end of the day, the connexion
    between the actor side (out of the kernel) and the model-checker side
    is made with this code:

    auto observer = new simgrid::mc::RandomSimcall(SIMIX_process_self(), min, max);
    return simgrid::kernel::actor::simcall([observer] { return observer->get_value(); }, observer);

    The RandomSimcall object is really making the link between the two worlds.

  - When we will convert the other simcalls, something will be needed
    to handle transition dependency. Since MC_RANDOM is never dependent
    with anything, this is left unhandled in SimcallInspector for now.
    One problem at a time.

* SimcallInspectors live in the AppSide while these information are
  needed in the ModelChecker side. So the network protocol was
  extended to allow the Modelchecker to get this information thru RPC.

  This is not satisfactory because it probably slows things down, even
  if it's hard to say for sure because many tests just deadlock with it.
  When the AppSide is dead, you'd better not ask for a RPC to collect
  information about the simcalls that lead to the issue.

  I extended the State::Transition object (that is used to both replay
  a trace leading to a state I want to restore and to display the
  backtrace that lead to a violation) to include the textual
  representation of the transitions, to not do a RPC to the dead
  application on violation.

  But when the application abort(), I seem to have a stack corruption
  on the app side or something. And debugging the verified application
  is made very difficult by the Dwarf inspector that prevents the
  verification from starting if the subprocess is not compiled in one
  segment only (valgrind violates this rule). Plus valgrind has a
  subprocess itself, probably defeating the checkpoint/restore
  mechanism. Maybe I should try the Sanitizers.

* A better approach (if we fail to fix the curreny design) could be to
  pre-compute on AppSide all information that can be extracted from
  the inspectors, and copy it over to the CheckerSide once per
  scheduling round. That would speed things up, and ensure that there
  is no RPC after the death of the application. That should be done in
  place of MC_process_refresh_simix_actor_dynar() that copies some
  (less useful) information over.

3 years agoMerge branch 'master' of framagit.org:simgrid/simgrid
Martin Quinson [Sun, 28 Feb 2021 09:35:55 +0000 (10:35 +0100)]
Merge branch 'master' of framagit.org:simgrid/simgrid

3 years agoExtend xbt_stringify_args up to 25 arguments
Martin Quinson [Sat, 27 Feb 2021 22:18:48 +0000 (23:18 +0100)]
Extend xbt_stringify_args up to 25 arguments

3 years agoWelcome to modernity
Martin Quinson [Sat, 27 Feb 2021 22:17:23 +0000 (23:17 +0100)]
Welcome to modernity

3 years agoextend example with another disk
Frederic Suter [Fri, 26 Feb 2021 15:00:18 +0000 (16:00 +0100)]
extend example with another disk

3 years agoallow for programmatic creation of a disk
Frederic Suter [Fri, 26 Feb 2021 14:59:58 +0000 (15:59 +0100)]
allow for programmatic creation of a disk

3 years agotypo
Martin Quinson [Fri, 26 Feb 2021 09:46:34 +0000 (10:46 +0100)]
typo

3 years agoNeed at least ns-3.28.
Arnaud Giersch [Fri, 26 Feb 2021 09:16:01 +0000 (10:16 +0100)]
Need at least ns-3.28.

3 years agoDeclare function 'static' (and fix picky builders).
Arnaud Giersch [Fri, 26 Feb 2021 08:09:59 +0000 (09:09 +0100)]
Declare function 'static' (and fix picky builders).

3 years agoUpdate ASan suppressions for clang.
Arnaud Giersch [Thu, 25 Feb 2021 20:07:58 +0000 (21:07 +0100)]
Update ASan suppressions for clang.

3 years agoFix make distcheck
Martin Quinson [Thu, 25 Feb 2021 23:26:45 +0000 (00:26 +0100)]
Fix make distcheck

3 years agons3: Fix build when compile warnings are enabled
Martin Quinson [Thu, 25 Feb 2021 22:57:21 +0000 (23:57 +0100)]
ns3: Fix build when compile warnings are enabled

3 years agoMerge branch 'master' of framagit.org:simgrid/simgrid
Martin Quinson [Thu, 25 Feb 2021 22:51:49 +0000 (23:51 +0100)]
Merge branch 'master' of framagit.org:simgrid/simgrid

3 years agoMerge branch 'master' into 'master'
Martin Quinson [Thu, 25 Feb 2021 22:40:12 +0000 (22:40 +0000)]
Merge branch 'master' into 'master'

Add option to delay wifi zone start time

See merge request simgrid/simgrid!47

3 years agomissing override
Frederic Suter [Thu, 25 Feb 2021 16:17:19 +0000 (17:17 +0100)]
missing override

3 years agoMake progress towards a programmatic creation of disks
Frederic Suter [Thu, 25 Feb 2021 09:38:07 +0000 (10:38 +0100)]
Make progress towards a programmatic creation of disks

3 years agosee what can be done with method chaining in disk creation
Frederic Suter [Thu, 25 Feb 2021 09:38:07 +0000 (10:38 +0100)]
see what can be done with method chaining in disk creation

3 years agoChange way Resources are created: Empty ctor and setters
Frederic Suter [Thu, 25 Feb 2021 08:25:11 +0000 (09:25 +0100)]
Change way Resources are created: Empty ctor and setters

3 years agoRemove some cruft
Martin Quinson [Wed, 24 Feb 2021 20:01:37 +0000 (21:01 +0100)]
Remove some cruft

3 years agoAS->Zone
Frederic Suter [Wed, 24 Feb 2021 17:13:41 +0000 (18:13 +0100)]
AS->Zone

3 years agoa bit more method chaining in the internals
Frederic Suter [Wed, 24 Feb 2021 16:47:32 +0000 (17:47 +0100)]
a bit more method chaining in the internals

3 years agoReduce scope for variable.
Arnaud Giersch [Wed, 24 Feb 2021 10:49:59 +0000 (11:49 +0100)]
Reduce scope for variable.

3 years agoadd wifi zone option to delay nodes start time
agougeon [Wed, 24 Feb 2021 08:08:14 +0000 (09:08 +0100)]
add wifi zone option to delay nodes start time

3 years agoMerge branch 'master' of framagit.org:simgrid/simgrid
agougeon [Wed, 24 Feb 2021 07:53:00 +0000 (08:53 +0100)]
Merge branch 'master' of framagit.org:simgrid/simgrid

3 years ago[sonar] Variable 'j' is not part of the loop control.
Arnaud Giersch [Wed, 24 Feb 2021 07:23:44 +0000 (08:23 +0100)]
[sonar] Variable 'j' is not part of the loop control.

3 years ago[sonar] Merge 'if' statements.
Arnaud Giersch [Wed, 24 Feb 2021 07:13:21 +0000 (08:13 +0100)]
[sonar] Merge 'if' statements.

3 years agoOn failure, try again with longer sleep duration.
Arnaud Giersch [Tue, 23 Feb 2021 22:45:00 +0000 (23:45 +0100)]
On failure, try again with longer sleep duration.

3 years agoUse access modifier to disallow direct deletion. Remove superfluous boolean.
Arnaud Giersch [Tue, 23 Feb 2021 18:50:23 +0000 (19:50 +0100)]
Use access modifier to disallow direct deletion. Remove superfluous boolean.

3 years agoDefine getter/setter for Exception::value.
Arnaud Giersch [Tue, 23 Feb 2021 13:43:18 +0000 (14:43 +0100)]
Define getter/setter for Exception::value.

3 years agoDrop unused 'value' argument from THROW/THROWF.
Arnaud Giersch [Tue, 23 Feb 2021 13:39:11 +0000 (14:39 +0100)]
Drop unused 'value' argument from THROW/THROWF.

3 years ago[smpi] Make Group::range{incl,excl} simpler.
Arnaud Giersch [Tue, 23 Feb 2021 11:35:56 +0000 (12:35 +0100)]
[smpi] Make Group::range{incl,excl} simpler.

3 years ago[smpi] Use a std::unique_ptr for f2c_lookup_.
Arnaud Giersch [Sat, 20 Feb 2021 11:01:56 +0000 (12:01 +0100)]
[smpi] Use a std::unique_ptr for f2c_lookup_.

3 years ago[smpi] Prefer range-based for loop.
Arnaud Giersch [Sat, 20 Feb 2021 10:27:14 +0000 (11:27 +0100)]
[smpi] Prefer range-based for loop.

3 years ago[smpi] Unused #define.
Arnaud Giersch [Sat, 20 Feb 2021 10:02:23 +0000 (11:02 +0100)]
[smpi] Unused #define.

3 years agoDefine members and constructors in subclasses, where they belong.
Arnaud Giersch [Mon, 22 Feb 2021 15:38:06 +0000 (16:38 +0100)]
Define members and constructors in subclasses, where they belong.

3 years agoUpdate .gitignore.
Arnaud Giersch [Mon, 22 Feb 2021 13:53:22 +0000 (14:53 +0100)]
Update .gitignore.

3 years agoremove last basic simdag test. redundant with one of the ptask_L07 tests
Frederic Suter [Mon, 22 Feb 2021 08:45:51 +0000 (09:45 +0100)]
remove last basic simdag test. redundant with one of the ptask_L07 tests

3 years agoremove tests that are redundant with examples/cpp/*-dependent
Frederic Suter [Mon, 22 Feb 2021 08:19:53 +0000 (09:19 +0100)]
remove tests that are redundant with examples/cpp/*-dependent

3 years agoRename teshsuite/models/{ptask_L07/* => ptask_L07_usage/*}.
Arnaud Giersch [Mon, 22 Feb 2021 12:56:20 +0000 (13:56 +0100)]
Rename teshsuite/models/{ptask_L07/* => ptask_L07_usage/*}.

Rationale: avoid confusion with src/surf/ptask_L07.cpp in coverage measures.

3 years agoDelete binary file.
Arnaud Giersch [Mon, 22 Feb 2021 12:48:57 +0000 (13:48 +0100)]
Delete binary file.

3 years agoRename include/xbt/{future.hpp => promise.hpp}.
Arnaud Giersch [Mon, 22 Feb 2021 10:33:39 +0000 (11:33 +0100)]
Rename include/xbt/{future.hpp => promise.hpp}.

Rationale: avoid confusion with include/simgrid/kernel/future.hpp in coverage measures.

3 years agoRename: include/simgrid/smpi/{replay.hpp => smpi_replay.hpp}.
Arnaud Giersch [Mon, 22 Feb 2021 10:16:30 +0000 (11:16 +0100)]
Rename: include/simgrid/smpi/{replay.hpp => smpi_replay.hpp}.

Rationale: avoid confusion with include/xbt/replay.hpp in coverage measures.

3 years agoCosmetics: fix filename in comment.
Arnaud Giersch [Mon, 22 Feb 2021 10:14:31 +0000 (11:14 +0100)]
Cosmetics: fix filename in comment.

3 years agoReturn 0 on failure.
Arnaud Giersch [Mon, 22 Feb 2021 09:04:45 +0000 (10:04 +0100)]
Return 0 on failure.

3 years agoConvert another test
Frederic Suter [Sat, 20 Feb 2021 18:02:53 +0000 (19:02 +0100)]
Convert another test

3 years agoDrop simgrid::xbt::demangle and use boost::core::demangle instead.
Arnaud Giersch [Sat, 20 Feb 2021 10:41:41 +0000 (11:41 +0100)]
Drop simgrid::xbt::demangle and use boost::core::demangle instead.

3 years agoDefault constructor is used by default.
Arnaud Giersch [Fri, 19 Feb 2021 22:59:51 +0000 (23:59 +0100)]
Default constructor is used by default.

3 years agotypo
Martin Quinson [Sat, 20 Feb 2021 09:24:51 +0000 (10:24 +0100)]
typo

3 years agoDefine and use Exception::rethrow_nested to rethrow a nested exception of the same...
Arnaud Giersch [Fri, 19 Feb 2021 13:10:14 +0000 (14:10 +0100)]
Define and use Exception::rethrow_nested to rethrow a nested exception of the same type.

3 years agoFactorize declarations for exceptions.
Arnaud Giersch [Fri, 19 Feb 2021 21:28:45 +0000 (22:28 +0100)]
Factorize declarations for exceptions.

3 years agoFunctions are not overridden anymore.
Arnaud Giersch [Fri, 19 Feb 2021 14:02:39 +0000 (15:02 +0100)]
Functions are not overridden anymore.

This was changed in commit cbc68013e8f1008e88a8cefb1e60b7813cf8a409
(Change a bit F2C handling).

3 years agoTypo.
Arnaud Giersch [Fri, 19 Feb 2021 13:51:24 +0000 (14:51 +0100)]
Typo.

3 years agoEnforce usage of std::shared_ptr for TIData.
Arnaud Giersch [Fri, 19 Feb 2021 11:51:58 +0000 (12:51 +0100)]
Enforce usage of std::shared_ptr for TIData.

This should finalize commit 4830e201d53af82a0d2722defd50a17363073785
([INSTR] Move vector* to shared_ptr<vector>.)

3 years agoconvert one more test of ptask_L07 model
Frederic Suter [Fri, 19 Feb 2021 19:59:32 +0000 (20:59 +0100)]
convert one more test of ptask_L07 model

3 years agodocument a recently added option
Martin Quinson [Fri, 19 Feb 2021 18:46:49 +0000 (19:46 +0100)]
document a recently added option

3 years agoFix a bunch of errors in the documentation
Martin Quinson [Thu, 18 Feb 2021 18:24:15 +0000 (19:24 +0100)]
Fix a bunch of errors in the documentation

3 years agoStrings are overkill for parmap_test.
Arnaud Giersch [Fri, 19 Feb 2021 10:52:52 +0000 (11:52 +0100)]
Strings are overkill for parmap_test.

3 years agoValgrind suppressions for test-help-version and test-help-logs.
Arnaud Giersch [Fri, 19 Feb 2021 08:48:47 +0000 (09:48 +0100)]
Valgrind suppressions for test-help-version and test-help-logs.

3 years agoUseless complication.
Arnaud Giersch [Fri, 19 Feb 2021 08:31:07 +0000 (09:31 +0100)]
Useless complication.

3 years agoRedundant cast.
Arnaud Giersch [Thu, 18 Feb 2021 22:32:30 +0000 (23:32 +0100)]
Redundant cast.

3 years agoTypedef.
Arnaud Giersch [Thu, 18 Feb 2021 22:02:38 +0000 (23:02 +0100)]
Typedef.

3 years agoConst reference.
Arnaud Giersch [Thu, 18 Feb 2021 22:02:25 +0000 (23:02 +0100)]
Const reference.

3 years agoUse already defined namespace alias 'sg4'.
Arnaud Giersch [Thu, 18 Feb 2021 20:53:58 +0000 (21:53 +0100)]
Use already defined namespace alias 'sg4'.

3 years agoUse :: to call get_clock() which is a static member of s4u::Engine.
Arnaud Giersch [Thu, 18 Feb 2021 20:52:00 +0000 (21:52 +0100)]
Use :: to call get_clock() which is a static member of s4u::Engine.