Martin Quinson [Thu, 3 Mar 2022 22:59:06 +0000 (23:59 +0100)]
Activate valgrind analysis on monkey tests
Martin Quinson [Thu, 3 Mar 2022 22:45:34 +0000 (23:45 +0100)]
semaphore monkey
C++ only for now, as we don't have semaphores in the current Python interface.
Martin Quinson [Thu, 3 Mar 2022 20:42:29 +0000 (21:42 +0100)]
Kill dead MC code
Martin Quinson [Thu, 3 Mar 2022 14:42:57 +0000 (15:42 +0100)]
Mutex are now DPOR compatible
Augustin Degomme [Thu, 3 Mar 2022 20:25:25 +0000 (21:25 +0100)]
put back s4u barrier for MC only (untested)
Arnaud Giersch [Thu, 3 Mar 2022 16:35:43 +0000 (17:35 +0100)]
Update URL for article.
Full reference is:
Eitan Zahavi
"D-Mod-K Routing Providing Non-Blocking Traffic for Shift Permutations on
Real Life Fat Trees"
CCIT Report #776, September 2010
IRWIN AND JOAN JACOBS
CENTER FOR COMMUNICATION AND INFORMATION TECHNOLOGIES
DEPARTMENT OF ELECTRICAL ENGINEERING
TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY, HAIFA 32000, ISRAEL
Augustin Degomme [Thu, 3 Mar 2022 16:27:31 +0000 (17:27 +0100)]
SMPI. RMA: get rid of the s4u barrier, use an MPI one instead.
Martin Quinson [Thu, 3 Mar 2022 14:18:04 +0000 (15:18 +0100)]
cmake simplification so that you only have to edit one list when adding an hijack of MC onto an existing test
Martin Quinson [Thu, 3 Mar 2022 13:46:52 +0000 (14:46 +0100)]
Document recent changes
Arnaud Giersch [Thu, 3 Mar 2022 14:14:04 +0000 (15:14 +0100)]
Polish previous fix.
Arnaud Giersch [Thu, 3 Mar 2022 13:30:09 +0000 (14:30 +0100)]
Make smpi compilation script work when there are spaces in path names.
Fix simgrid/simgrid#87
Martin Quinson [Thu, 3 Mar 2022 13:40:26 +0000 (14:40 +0100)]
Add a test for Semaphores + DPOR
Martin Quinson [Thu, 3 Mar 2022 13:39:46 +0000 (14:39 +0100)]
Semaphore made observable from the Checker side
Martin Quinson [Thu, 3 Mar 2022 11:12:59 +0000 (12:12 +0100)]
Display a nice error message when ptrace is not usable
Fixes https://framagit.org/simgrid/simgrid/-/issues/57
Martin Quinson [Thu, 3 Mar 2022 07:26:25 +0000 (08:26 +0100)]
Missing files, bummer
SUTER Frederic [Thu, 3 Mar 2022 03:36:17 +0000 (04:36 +0100)]
fix weird bug on pstate changes with VM
at VM creation we did this:
/* We create cpu_action corresponding to a VM process on the host
operating system. */
action_ = physical_host_->get_cpu()->execution_start(0,core_amount_)
but in the version of execution with 2 parameters, the second one is a
user_bound not the desired amount of cores!!
This leads to entering a special in Cas01::on_speed_change and change
the bound to 1 instead of the new speed! (cpu_cas01.cpp:92)
Martin Quinson [Wed, 2 Mar 2022 22:28:18 +0000 (23:28 +0100)]
Python version of the masterworkers monkey
Martin Quinson [Wed, 2 Mar 2022 21:25:33 +0000 (22:25 +0100)]
Chaos-monkey: use the new Engine::on_simulation_start signal
The plaform_created one that we used earlier is only reliable with XML
platforms.
Martin Quinson [Wed, 2 Mar 2022 21:23:54 +0000 (22:23 +0100)]
New signal: Engine::on_simulation_start
Martin Quinson [Wed, 2 Mar 2022 17:35:36 +0000 (18:35 +0100)]
Pass the boolean parameter to the on_exit python binding
Martin Quinson [Tue, 1 Mar 2022 00:11:04 +0000 (01:11 +0100)]
simgrid-monkey: if the test is run within valgrind, display the summary in terse output
The final return value will be the amount of errors detected by
valgrind over all tests
Arnaud Giersch [Wed, 2 Mar 2022 22:08:37 +0000 (23:08 +0100)]
Revert "blind guess for coverage fix.. [ci-skip]"
This reverts commit
a3176f643eb9ca791f6fd555787dd5127da47007.
This makes a double-blind guess... see if it restores correct coverage on sonar.
Arnaud Giersch [Wed, 2 Mar 2022 22:06:48 +0000 (23:06 +0100)]
Rename method for consistency.
Arnaud Giersch [Wed, 2 Mar 2022 22:03:38 +0000 (23:03 +0100)]
Const methods.
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
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.
Arnaud Giersch [Wed, 2 Mar 2022 15:06:50 +0000 (16:06 +0100)]
Create absolute path names in .gcno files.
Arnaud Giersch [Wed, 2 Mar 2022 15:05:04 +0000 (16:05 +0100)]
Use a single definition for coverage build flags.
Arnaud Giersch [Wed, 2 Mar 2022 15:03:53 +0000 (16:03 +0100)]
Fix cmake warning.
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
Fabien Chaix [Tue, 1 Mar 2022 17:04:20 +0000 (19:04 +0200)]
Revert Python stuff but the py_context instantiation change
Augustin Degomme [Tue, 1 Mar 2022 16:26:15 +0000 (16:26 +0000)]
blind guess for coverage fix.. [ci-skip]
Fabien Chaix [Tue, 1 Mar 2022 16:07:54 +0000 (18:07 +0200)]
Fix the python patches
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]
Arnaud Giersch [Tue, 1 Mar 2022 14:56:15 +0000 (15:56 +0100)]
Complete warning message [ci-skip].
Arnaud Giersch [Tue, 1 Mar 2022 13:57:21 +0000 (14:57 +0100)]
[mc_dwarf] Another assert turns into warning.
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
Fabien Chaix [Tue, 1 Mar 2022 12:56:34 +0000 (14:56 +0200)]
Make python catch verbose
Arnaud Giersch [Tue, 1 Mar 2022 08:50:33 +0000 (09:50 +0100)]
Kill unused function.
Arnaud Giersch [Tue, 1 Mar 2022 08:49:08 +0000 (09:49 +0100)]
const++
Augustin Degomme [Tue, 1 Mar 2022 07:20:21 +0000 (07:20 +0000)]
__gcov_flush was removed in gcc11 (untested) [ci-skip]
SUTER Frederic [Tue, 1 Mar 2022 03:53:48 +0000 (04:53 +0100)]
rework how host-to-host comms are managed
SUTER Frederic [Sun, 27 Feb 2022 22:15:07 +0000 (23:15 +0100)]
get/set for CommImpl::type
SUTER Frederic [Thu, 24 Feb 2022 00:56:40 +0000 (01:56 +0100)]
clean up before modifications
Fabien Chaix [Mon, 28 Feb 2022 22:38:54 +0000 (00:38 +0200)]
Answer to Martin's feedback
Fabien Chaix [Mon, 28 Feb 2022 22:08:34 +0000 (00:08 +0200)]
apply Simgrid coding rules
Fabien Chaix [Mon, 28 Feb 2022 21:36:34 +0000 (23:36 +0200)]
Minimal change to support host on-off and permanent mailboxes
Arnaud Giersch [Mon, 28 Feb 2022 16:11:39 +0000 (17:11 +0100)]
Extract assignment from expression.
Arnaud Giersch [Mon, 28 Feb 2022 16:05:54 +0000 (17:05 +0100)]
Fix mem leak on unhandled exception (e.g. ForceFulKill).
Arnaud Giersch [Mon, 28 Feb 2022 14:57:32 +0000 (15:57 +0100)]
Pass std::function by const reference (sonar).
Arnaud Giersch [Mon, 28 Feb 2022 14:38:28 +0000 (15:38 +0100)]
Minor sonar smells, and other cosmetics.
Arnaud Giersch [Mon, 28 Feb 2022 14:35:27 +0000 (15:35 +0100)]
Put message handling in its own method (avoid nested code blocks).
Arnaud Giersch [Mon, 28 Feb 2022 14:20:06 +0000 (15:20 +0100)]
Validate cfg_host_count earlier (please scan-build).
Arnaud Giersch [Mon, 28 Feb 2022 13:53:46 +0000 (14:53 +0100)]
Scheduling slightly changed.
Arnaud Giersch [Mon, 28 Feb 2022 13:00:22 +0000 (14:00 +0100)]
One less global variable: session_singleton.
Arnaud Giersch [Mon, 28 Feb 2022 11:21:39 +0000 (12:21 +0100)]
Kill dead code.
Arnaud Giersch [Mon, 28 Feb 2022 11:14:24 +0000 (12:14 +0100)]
Useless lower-case alias.
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;"
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
Martin Quinson [Mon, 28 Feb 2022 11:36:02 +0000 (12:36 +0100)]
Add missing file
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.
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.
Martin Quinson [Mon, 28 Feb 2022 09:17:16 +0000 (10:17 +0100)]
Our first monkey test case is now working
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
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
Martin Quinson [Mon, 28 Feb 2022 08:14:52 +0000 (09:14 +0100)]
More information on actor death in monkey's test case
Martin Quinson [Sun, 27 Feb 2022 22:43:53 +0000 (23:43 +0100)]
kill some bits of mc::api::
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.
Martin Quinson [Sun, 27 Feb 2022 22:34:17 +0000 (23:34 +0100)]
fix java builds
Martin Quinson [Sun, 27 Feb 2022 22:24:31 +0000 (23:24 +0100)]
No future.
Martin Quinson [Sun, 27 Feb 2022 22:04:00 +0000 (23:04 +0100)]
Rename sg::k::actor::simcall ::actor::simcall_answered
Martin Quinson [Sun, 27 Feb 2022 21:51:37 +0000 (22:51 +0100)]
Further cleanups in simix remains
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
Martin Quinson [Sun, 27 Feb 2022 20:59:11 +0000 (21:59 +0100)]
reduce the visibility of popping_private
Martin Quinson [Sun, 27 Feb 2022 18:02:28 +0000 (19:02 +0100)]
And now kill simcalls.py: simix v2 is not completely removed
Martin Quinson [Sun, 27 Feb 2022 18:01:06 +0000 (19:01 +0100)]
Kill popping_{enum,generated}
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()>
Martin Quinson [Sun, 27 Feb 2022 17:03:44 +0000 (18:03 +0100)]
simix simplification: no need for a template here
Martin Quinson [Sun, 27 Feb 2022 16:46:37 +0000 (17:46 +0100)]
Kill popping_bodies.cpp
Martin Quinson [Sun, 27 Feb 2022 15:49:10 +0000 (16:49 +0100)]
monkey-workers: reduce the amount of simcalls during reboots
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.
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.
Martin Quinson [Sun, 27 Feb 2022 09:23:47 +0000 (10:23 +0100)]
allow to chain some setters on actors
Martin Quinson [Sun, 27 Feb 2022 09:21:45 +0000 (10:21 +0100)]
cosmetics (sg4 namespace, comments, log channel)
Martin Quinson [Sat, 26 Feb 2022 12:30:14 +0000 (13:30 +0100)]
Kill popping_accessors.hpp
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.
Martin Quinson [Fri, 25 Feb 2022 22:35:54 +0000 (23:35 +0100)]
OOP is good, too
Martin Quinson [Fri, 25 Feb 2022 18:39:02 +0000 (19:39 +0100)]
Rework a long and aging comment (but keep the xkcd reference)
Martin Quinson [Fri, 25 Feb 2022 14:02:09 +0000 (15:02 +0100)]
cosmetics: rename a variable and please sonar a tiny bit
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.
Augustin Degomme [Fri, 25 Feb 2022 08:30:56 +0000 (08:30 +0000)]
leak--
Martin Quinson [Fri, 25 Feb 2022 00:56:04 +0000 (01:56 +0100)]
Implement SemaphoreImpl::acquire_async (timeouts are allowed)
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.
Martin Quinson [Thu, 24 Feb 2022 17:05:04 +0000 (18:05 +0100)]
Rename MutexObserver to SynchroObserver (semaphore incoming)
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()
Martin Quinson [Thu, 24 Feb 2022 13:18:50 +0000 (14:18 +0100)]
Fix gcc MC builds
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
Martin Quinson [Thu, 24 Feb 2022 11:43:22 +0000 (12:43 +0100)]
Add a MC version of the s4u-synchro-mutex test
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
Arnaud Giersch [Thu, 24 Feb 2022 11:31:38 +0000 (12:31 +0100)]
Please scan-build and hopefully sonar too [ci-skip]