Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
simgrid.git
2 years agoConst methods.
Arnaud Giersch [Wed, 2 Mar 2022 22:03:38 +0000 (23:03 +0100)]
Const methods.

2 years agoDisable the copy constructor and the copy-assignment operator for MailboxImpl.
Arnaud Giersch [Wed, 2 Mar 2022 21:38:11 +0000 (22:38 +0100)]
Disable the copy constructor and the copy-assignment operator for MailboxImpl.

Please Sonar rule cpp:S3624

2 years agoUse payload with static storage duration to avoid memory leak.
Arnaud Giersch [Wed, 2 Mar 2022 21:26:51 +0000 (22:26 +0100)]
Use payload with static storage duration to avoid memory leak.

Since comm is detached, the sender has no way to know when it's received,
and correctly release or delete the payload in any case.

2 years agoCreate absolute path names in .gcno files.
Arnaud Giersch [Wed, 2 Mar 2022 15:06:50 +0000 (16:06 +0100)]
Create absolute path names in .gcno files.

2 years agoUse a single definition for coverage build flags.
Arnaud Giersch [Wed, 2 Mar 2022 15:05:04 +0000 (16:05 +0100)]
Use a single definition for coverage build flags.

2 years agoFix cmake warning.
Arnaud Giersch [Wed, 2 Mar 2022 15:03:53 +0000 (16:03 +0100)]
Fix cmake warning.

2 years agoMerge branch 'dev' into 'master'
Martin Quinson [Tue, 1 Mar 2022 18:35:53 +0000 (18:35 +0000)]
Merge branch 'dev' into 'master'

Minimal changes to support hosts on/off

See merge request simgrid/simgrid!77

2 years agoRevert Python stuff but the py_context instantiation change
Fabien Chaix [Tue, 1 Mar 2022 17:04:20 +0000 (19:04 +0200)]
Revert Python stuff but the py_context instantiation change

2 years agoblind guess for coverage fix.. [ci-skip]
Augustin Degomme [Tue, 1 Mar 2022 16:26:15 +0000 (16:26 +0000)]
blind guess for coverage fix.. [ci-skip]

2 years agoFix the python patches
Fabien Chaix [Tue, 1 Mar 2022 16:07:54 +0000 (18:07 +0200)]
Fix the python patches

2 years agoCall __gcov_reset after __gcov_dump.
Arnaud Giersch [Tue, 1 Mar 2022 15:42:06 +0000 (16:42 +0100)]
Call __gcov_reset after __gcov_dump.

__gcov_flush did it before its removal:
https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=811b7636cb8c10f1a550a76242b5666c7ae36da2

[ci-skip]

2 years agoComplete warning message [ci-skip].
Arnaud Giersch [Tue, 1 Mar 2022 14:56:15 +0000 (15:56 +0100)]
Complete warning message [ci-skip].

2 years ago[mc_dwarf] Another assert turns into warning.
Arnaud Giersch [Tue, 1 Mar 2022 13:57:21 +0000 (14:57 +0100)]
[mc_dwarf] Another assert turns into warning.

2 years agoMove py_context to get Python exception match to work also on old platforms
Fabien Chaix [Tue, 1 Mar 2022 13:51:18 +0000 (15:51 +0200)]
Move py_context to get Python exception match to work also on old platforms

2 years agoMake python catch verbose
Fabien Chaix [Tue, 1 Mar 2022 12:56:34 +0000 (14:56 +0200)]
Make python catch verbose

2 years agoKill unused function.
Arnaud Giersch [Tue, 1 Mar 2022 08:50:33 +0000 (09:50 +0100)]
Kill unused function.

2 years agoconst++
Arnaud Giersch [Tue, 1 Mar 2022 08:49:08 +0000 (09:49 +0100)]
const++

2 years ago__gcov_flush was removed in gcc11 (untested) [ci-skip]
Augustin Degomme [Tue, 1 Mar 2022 07:20:21 +0000 (07:20 +0000)]
__gcov_flush was removed in gcc11 (untested) [ci-skip]

2 years agorework how host-to-host comms are managed
SUTER Frederic [Tue, 1 Mar 2022 03:53:48 +0000 (04:53 +0100)]
rework how host-to-host comms are managed

2 years agoget/set for CommImpl::type
SUTER Frederic [Sun, 27 Feb 2022 22:15:07 +0000 (23:15 +0100)]
get/set for CommImpl::type

2 years agoclean up before modifications
SUTER Frederic [Thu, 24 Feb 2022 00:56:40 +0000 (01:56 +0100)]
clean up before modifications

2 years agoAnswer to Martin's feedback
Fabien Chaix [Mon, 28 Feb 2022 22:38:54 +0000 (00:38 +0200)]
Answer to Martin's feedback

2 years agoapply Simgrid coding rules
Fabien Chaix [Mon, 28 Feb 2022 22:08:34 +0000 (00:08 +0200)]
apply Simgrid coding rules

2 years agoMinimal change to support host on-off and permanent mailboxes
Fabien Chaix [Mon, 28 Feb 2022 21:36:34 +0000 (23:36 +0200)]
Minimal change to support host on-off and permanent mailboxes

2 years agoExtract assignment from expression.
Arnaud Giersch [Mon, 28 Feb 2022 16:11:39 +0000 (17:11 +0100)]
Extract assignment from expression.

2 years agoFix mem leak on unhandled exception (e.g. ForceFulKill).
Arnaud Giersch [Mon, 28 Feb 2022 16:05:54 +0000 (17:05 +0100)]
Fix mem leak on unhandled exception (e.g. ForceFulKill).

2 years agoPass std::function by const reference (sonar).
Arnaud Giersch [Mon, 28 Feb 2022 14:57:32 +0000 (15:57 +0100)]
Pass std::function by const reference (sonar).

2 years agoMinor sonar smells, and other cosmetics.
Arnaud Giersch [Mon, 28 Feb 2022 14:38:28 +0000 (15:38 +0100)]
Minor sonar smells, and other cosmetics.

2 years agoPut message handling in its own method (avoid nested code blocks).
Arnaud Giersch [Mon, 28 Feb 2022 14:35:27 +0000 (15:35 +0100)]
Put message handling in its own method (avoid nested code blocks).

2 years agoValidate cfg_host_count earlier (please scan-build).
Arnaud Giersch [Mon, 28 Feb 2022 14:20:06 +0000 (15:20 +0100)]
Validate cfg_host_count earlier (please scan-build).

2 years agoScheduling slightly changed.
Arnaud Giersch [Mon, 28 Feb 2022 13:53:46 +0000 (14:53 +0100)]
Scheduling slightly changed.

2 years agoOne less global variable: session_singleton.
Arnaud Giersch [Mon, 28 Feb 2022 13:00:22 +0000 (14:00 +0100)]
One less global variable: session_singleton.

2 years agoKill dead code.
Arnaud Giersch [Mon, 28 Feb 2022 11:21:39 +0000 (12:21 +0100)]
Kill dead code.

2 years agoUseless lower-case alias.
Arnaud Giersch [Mon, 28 Feb 2022 11:14:24 +0000 (12:14 +0100)]
Useless lower-case alias.

2 years agoEventually, OOP is really good.
Arnaud Giersch [Mon, 28 Feb 2022 10:10:32 +0000 (11:10 +0100)]
Eventually, OOP is really good.

Improved version of commit f4925bd65c467da9862149984960de961af0d6cc:
take a copy and clear field waiting_synchro_ before cancelling the activity
to avoid use-after-free.

Without that, waiting_synchro_ may be free'd too early, e.g. in SleepImpl::finish()
at instruction "simcall->issuer_->waiting_synchro_ = nullptr;"

2 years agoRevalidate the tesh file after pushing the TODO of masterworker to 2
Martin Quinson [Mon, 28 Feb 2022 13:22:24 +0000 (14:22 +0100)]
Revalidate the tesh file after pushing the TODO of masterworker to 2

2 years agoAdd missing file
Martin Quinson [Mon, 28 Feb 2022 11:36:02 +0000 (12:36 +0100)]
Add missing file

2 years agoDon't use tesh to run monkey tests
Martin Quinson [Mon, 28 Feb 2022 11:12:16 +0000 (12:12 +0100)]
Don't use tesh to run monkey tests

It should make it easier to get it working on platforms where python is on some obscure path.

Also, test one arbitrary monkey run with enforcing the output, just to
make sure that the monkey is actually testing something.

2 years agoEnsure that the monkey tesh passes while not hindering the debugging pleasure
Martin Quinson [Mon, 28 Feb 2022 09:34:45 +0000 (10:34 +0100)]
Ensure that the monkey tesh passes while not hindering the debugging pleasure

It fails because it displays the full paths, that are only valid on my
machine. I could cut the paths from the output, but then it'd be
somewhat more complex to rerun the test when it fails (now, you just
copy/paste the exact output).

So I ask tesh to display but ignore the output.

2 years agoOur first monkey test case is now working
Martin Quinson [Mon, 28 Feb 2022 09:17:16 +0000 (10:17 +0100)]
Our first monkey test case is now working

2 years agoEnhance the documentation of Actor::daemonize()
Martin Quinson [Mon, 28 Feb 2022 08:54:11 +0000 (09:54 +0100)]
Enhance the documentation of Actor::daemonize()

Maybe the next user won't not fall in the same trap as I did

2 years agogive 2 workers to the monkey-masterworkers, so that the master don't gets killed...
Martin Quinson [Mon, 28 Feb 2022 08:46:25 +0000 (09:46 +0100)]
give 2 workers to the monkey-masterworkers, so that the master don't gets killed when the worker stops

2 years agoMore information on actor death in monkey's test case
Martin Quinson [Mon, 28 Feb 2022 08:14:52 +0000 (09:14 +0100)]
More information on actor death in monkey's test case

2 years agokill some bits of mc::api::
Martin Quinson [Sun, 27 Feb 2022 22:43:53 +0000 (23:43 +0100)]
kill some bits of mc::api::

2 years agoReintroduce smartptr lost with recent changes.
Arnaud Giersch [Sun, 27 Feb 2022 23:09:24 +0000 (00:09 +0100)]
Reintroduce smartptr lost with recent changes.

Without that, ASan/TSan show errors.

2 years agofix java builds
Martin Quinson [Sun, 27 Feb 2022 22:34:17 +0000 (23:34 +0100)]
fix java builds

2 years agoNo future.
Martin Quinson [Sun, 27 Feb 2022 22:24:31 +0000 (23:24 +0100)]
No future.

2 years agoRename sg::k::actor::simcall ::actor::simcall_answered
Martin Quinson [Sun, 27 Feb 2022 22:04:00 +0000 (23:04 +0100)]
Rename sg::k::actor::simcall ::actor::simcall_answered

2 years agoFurther cleanups in simix remains
Martin Quinson [Sun, 27 Feb 2022 21:51:37 +0000 (22:51 +0100)]
Further cleanups in simix remains

2 years agoMC: after all, checker does not need the list of dead actors
Martin Quinson [Sun, 27 Feb 2022 21:25:07 +0000 (22:25 +0100)]
MC: after all, checker does not need the list of dead actors

Also kill some other unused code in MC

2 years agoreduce the visibility of popping_private
Martin Quinson [Sun, 27 Feb 2022 20:59:11 +0000 (21:59 +0100)]
reduce the visibility of popping_private

2 years agoAnd now kill simcalls.py: simix v2 is not completely removed
Martin Quinson [Sun, 27 Feb 2022 18:02:28 +0000 (19:02 +0100)]
And now kill simcalls.py: simix v2 is not completely removed

2 years agoKill popping_{enum,generated}
Martin Quinson [Sun, 27 Feb 2022 18:01:06 +0000 (19:01 +0100)]
Kill popping_{enum,generated}

2 years agosimix simplification: no need to marshal generic parameters when all what you have...
Martin Quinson [Sun, 27 Feb 2022 17:33:06 +0000 (18:33 +0100)]
simix simplification: no need to marshal generic parameters when all what you have is a pointer std::function<void()>

2 years agosimix simplification: no need for a template here
Martin Quinson [Sun, 27 Feb 2022 17:03:44 +0000 (18:03 +0100)]
simix simplification: no need for a template here

2 years agoKill popping_bodies.cpp
Martin Quinson [Sun, 27 Feb 2022 16:46:37 +0000 (17:46 +0100)]
Kill popping_bodies.cpp

2 years agomonkey-workers: reduce the amount of simcalls during reboots
Martin Quinson [Sun, 27 Feb 2022 15:49:10 +0000 (16:49 +0100)]
monkey-workers: reduce the amount of simcalls during reboots

2 years agoRevert "OOP is good, too"
Martin Quinson [Sun, 27 Feb 2022 14:42:04 +0000 (15:42 +0100)]
Revert "OOP is good, too"

This reverts commit f4925bd65c467da9862149984960de961af0d6cc, that
breaks a java test (java_cloud_masterworker) in a way that is
particularly hard to debug. The JVM is not exactly valgrind-friendly.

Just do some small cosmetics in this area instead.

2 years agoIntroduce the SimGrid Chaos Monkey
Martin Quinson [Sun, 27 Feb 2022 10:04:54 +0000 (11:04 +0100)]
Introduce the SimGrid Chaos Monkey

See the tools/simgrid-monkey script and its comments for more info.

2 years agoallow to chain some setters on actors
Martin Quinson [Sun, 27 Feb 2022 09:23:47 +0000 (10:23 +0100)]
allow to chain some setters on actors

2 years agocosmetics (sg4 namespace, comments, log channel)
Martin Quinson [Sun, 27 Feb 2022 09:21:45 +0000 (10:21 +0100)]
cosmetics (sg4 namespace, comments, log channel)

2 years agoKill popping_accessors.hpp
Martin Quinson [Sat, 26 Feb 2022 12:30:14 +0000 (13:30 +0100)]
Kill popping_accessors.hpp

2 years agoTry to make timeouted semaphores robust to actors death
Martin Quinson [Fri, 25 Feb 2022 22:41:30 +0000 (23:41 +0100)]
Try to make timeouted semaphores robust to actors death

Unfortunately, I cannot test it right now (the test is not written,
plus asynchronous semaphores are not exported in s4u to ease the
writting of tests), but it's failing for a user that kills a lot of
actors at random instants.

2 years agoOOP is good, too
Martin Quinson [Fri, 25 Feb 2022 22:35:54 +0000 (23:35 +0100)]
OOP is good, too

2 years agoRework a long and aging comment (but keep the xkcd reference)
Martin Quinson [Fri, 25 Feb 2022 18:39:02 +0000 (19:39 +0100)]
Rework a long and aging comment (but keep the xkcd reference)

2 years agocosmetics: rename a variable and please sonar a tiny bit
Martin Quinson [Fri, 25 Feb 2022 14:02:09 +0000 (15:02 +0100)]
cosmetics: rename a variable and please sonar a tiny bit

2 years agofix a memory corruption
Martin Quinson [Fri, 25 Feb 2022 09:46:58 +0000 (10:46 +0100)]
fix a memory corruption

Manual refcounting is the devil. Even when it's in LMM.

2 years agoleak--
Augustin Degomme [Fri, 25 Feb 2022 08:30:56 +0000 (08:30 +0000)]
leak--

2 years agoImplement SemaphoreImpl::acquire_async (timeouts are allowed)
Martin Quinson [Fri, 25 Feb 2022 00:56:04 +0000 (01:56 +0100)]
Implement SemaphoreImpl::acquire_async (timeouts are allowed)

2 years agokill some remains of the pre-C++ era
Martin Quinson [Thu, 24 Feb 2022 22:19:37 +0000 (23:19 +0100)]
kill some remains of the pre-C++ era

Back then, humans were supposed to manage the refcount manually.

2 years agoRename MutexObserver to SynchroObserver (semaphore incoming)
Martin Quinson [Thu, 24 Feb 2022 17:05:04 +0000 (18:05 +0100)]
Rename MutexObserver to SynchroObserver (semaphore incoming)

2 years agoTry to tell sonar that the mutex_ cannot be null in is_enabled()
Martin Quinson [Thu, 24 Feb 2022 13:41:37 +0000 (14:41 +0100)]
Try to tell sonar that the mutex_ cannot be null in is_enabled()

2 years agoFix gcc MC builds
Martin Quinson [Thu, 24 Feb 2022 13:18:50 +0000 (14:18 +0100)]
Fix gcc MC builds

2 years agoTest the dependencies of Mutex transitions
Martin Quinson [Thu, 24 Feb 2022 12:46:20 +0000 (13:46 +0100)]
Test the dependencies of Mutex transitions

- give each mutex an ID so that we can get reproducible debug messages.
  This is arguably a waste of resource in non-MC setups. Patch welcome.
- give one mutex per pair of actors in the test, to make the test more
  interesting for the reduction
- rework a bit the verbose output of the safety explorer

2 years agoAdd a MC version of the s4u-synchro-mutex test
Martin Quinson [Thu, 24 Feb 2022 11:43:22 +0000 (12:43 +0100)]
Add a MC version of the s4u-synchro-mutex test

2 years agoMC: no need for a depends() method in Observers
Martin Quinson [Thu, 24 Feb 2022 10:22:29 +0000 (11:22 +0100)]
MC: no need for a depends() method in Observers

These things are on the checker side now

2 years agoPlease scan-build and hopefully sonar too [ci-skip]
Arnaud Giersch [Thu, 24 Feb 2022 11:31:38 +0000 (12:31 +0100)]
Please scan-build and hopefully sonar too [ci-skip]

2 years agoEnsure that MC session and checker are deleted.
Arnaud Giersch [Thu, 24 Feb 2022 10:42:33 +0000 (11:42 +0100)]
Ensure that MC session and checker are deleted.

2 years agoUse simpler std::vector.
Arnaud Giersch [Wed, 23 Feb 2022 22:17:24 +0000 (23:17 +0100)]
Use simpler std::vector.

2 years agoFree xbt_automaton on Api::s_close.
Arnaud Giersch [Wed, 23 Feb 2022 22:07:55 +0000 (23:07 +0100)]
Free xbt_automaton on Api::s_close.

2 years agoReview xbt_automaton_*_free.
Arnaud Giersch [Wed, 23 Feb 2022 22:07:10 +0000 (23:07 +0100)]
Review xbt_automaton_*_free.

2 years agoUse more explicit identifiers.
Arnaud Giersch [Wed, 23 Feb 2022 21:34:09 +0000 (22:34 +0100)]
Use more explicit identifiers.

2 years agoFix segfault when exploration trace is empty.
Arnaud Giersch [Wed, 23 Feb 2022 21:29:21 +0000 (22:29 +0100)]
Fix segfault when exploration trace is empty.

Example:
$ ./bin/simgrid-mc -- ./teshsuite/mc/random-bug/random-bug

2 years agoMC: Support Mutexes in DPOR
Martin Quinson [Wed, 23 Feb 2022 23:41:10 +0000 (00:41 +0100)]
MC: Support Mutexes in DPOR

Fixes https://github.com/simgrid/simgrid/issues/151

2 years agoMutex do not need a locked_ field. owner_ != null is enough
Martin Quinson [Wed, 23 Feb 2022 21:29:20 +0000 (22:29 +0100)]
Mutex do not need a locked_ field. owner_ != null is enough

2 years agotry to get rid of a warning (without causing a dead store in infer?)
Augustin Degomme [Wed, 23 Feb 2022 22:36:04 +0000 (23:36 +0100)]
try to get rid of a warning (without causing a dead store in infer?)

2 years agoavoid going back to complex selector and switch to a simple algorithm here to avoid...
Augustin Degomme [Wed, 23 Feb 2022 22:35:12 +0000 (23:35 +0100)]
avoid going back to complex selector and switch to a simple algorithm here to avoid potential infinite loops.

2 years agomore tab2spaces
Augustin Degomme [Wed, 23 Feb 2022 21:23:22 +0000 (22:23 +0100)]
more tab2spaces

2 years agotab to spaces
Augustin Degomme [Wed, 23 Feb 2022 21:21:19 +0000 (22:21 +0100)]
tab to spaces

2 years agoappease clang
Augustin Degomme [Wed, 23 Feb 2022 21:18:02 +0000 (22:18 +0100)]
appease clang

2 years agochangelog update
Augustin Degomme [Wed, 23 Feb 2022 21:17:55 +0000 (22:17 +0100)]
changelog update

2 years agothese are all pretty much allright, actually ...
Augustin Degomme [Wed, 23 Feb 2022 20:12:48 +0000 (21:12 +0100)]
these are all pretty much allright, actually ...
just a doubt on chain bcast, but pipeline is close enough I think.

2 years agoadd openmpi scatter linear_nb algorithm
Augustin Degomme [Wed, 23 Feb 2022 19:44:06 +0000 (20:44 +0100)]
add openmpi scatter linear_nb algorithm

2 years agoadd butterfly algorithm from openmpi
Augustin Degomme [Wed, 23 Feb 2022 18:05:09 +0000 (19:05 +0100)]
add butterfly algorithm from openmpi
described in [*] J.L. Traff. An improved Algorithm for (non-commutative) Reduce-scatter with an Application // Proc. of EuroPVM/MPI, 2005. -- pp. 129-137.

2 years agoMC seems to just work on ARM now. Remove the forced compilation errors.
Augustin Degomme [Wed, 23 Feb 2022 10:31:52 +0000 (10:31 +0000)]
MC seems to just work on ARM now. Remove the forced compilation errors.
todo: check if UnwindContext::get_reg needs tweaking, but all mc tests pass

2 years agofurther reduce a MC test that's still too long
Martin Quinson [Wed, 23 Feb 2022 10:30:11 +0000 (11:30 +0100)]
further reduce a MC test that's still too long

2 years agopending implementation of new algorithms (see fixme), avoid using _lr as replacement...
Augustin Degomme [Wed, 23 Feb 2022 08:52:36 +0000 (08:52 +0000)]
pending implementation of new algorithms (see fixme), avoid using _lr as replacement in these cases.
_lr is not valid for some sizes, and may default to calling _ompi again, which causes an infinite loop.
todo: find theses cases and eliminate them

2 years agoReduce the size of 2 UMPIRE tests that now timeout
Martin Quinson [Wed, 23 Feb 2022 07:56:04 +0000 (08:56 +0100)]
Reduce the size of 2 UMPIRE tests that now timeout

UMPIRE will soon be grand replaced by MBI anyway.

2 years agodeprecate Engine::shutdown()
SUTER Frederic [Tue, 22 Feb 2022 01:45:54 +0000 (02:45 +0100)]
deprecate Engine::shutdown()

2 years agoImplement MutexImpl::lock_async
Martin Quinson [Tue, 22 Feb 2022 23:26:17 +0000 (00:26 +0100)]
Implement MutexImpl::lock_async