Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
simgrid.git
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

2 years agoselected collectives changed for these tests -> timing as well
Augustin Degomme [Tue, 22 Feb 2022 23:31:30 +0000 (00:31 +0100)]
selected collectives changed for these tests -> timing as well

2 years agoUpdate OMPI selector.
Augustin Degomme [Tue, 22 Feb 2022 23:25:21 +0000 (00:25 +0100)]
Update OMPI selector.
It was last updated from version 3.1.2, which was released in 2018, and the selection logic was modified since.
Few algorithms will be added soon to match better.

2 years agoDisable tests failing when debug logs are disabled with enable_debug=OFF.
Arnaud Giersch [Tue, 22 Feb 2022 08:01:27 +0000 (09:01 +0100)]
Disable tests failing when debug logs are disabled with enable_debug=OFF.

2 years agodoc: add a link from Mailbox::get_init to Comm::set_dst_data
Martin Quinson [Mon, 21 Feb 2022 23:29:44 +0000 (00:29 +0100)]
doc: add a link from Mailbox::get_init to Comm::set_dst_data

2 years agoRename mc::Checker to mc::Exploration as it defines an exploration algo
Martin Quinson [Mon, 21 Feb 2022 21:25:55 +0000 (22:25 +0100)]
Rename mc::Checker to mc::Exploration as it defines an exploration algo

2 years agoRename SynchroRawImpl to SynchroImpl
Martin Quinson [Sun, 20 Feb 2022 20:50:06 +0000 (21:50 +0100)]
Rename SynchroRawImpl to SynchroImpl

They will soon be made visible in S4U when Mutex::lock_async() and
friends gets implemented. In turn, lock_async() is good for two reasons:
symmetry of lock() with other activities; efficiency of MC reduction
technics (see the thesis of The Anh for details).

2 years ago3.31 is expected in 2022, not last year
Martin Quinson [Sun, 20 Feb 2022 17:49:56 +0000 (18:49 +0100)]
3.31 is expected in 2022, not last year

2 years agoCosmetics in the Release notes + Document recent changes on MC
Martin Quinson [Sun, 20 Feb 2022 14:36:42 +0000 (15:36 +0100)]
Cosmetics in the Release notes + Document recent changes on MC

2 years agoSonar fixes (const, variable shadowing)
Martin Quinson [Sun, 20 Feb 2022 10:36:35 +0000 (11:36 +0100)]
Sonar fixes (const, variable shadowing)

2 years agoremove old wait any simcall
SUTER Frederic [Sun, 20 Feb 2022 01:35:17 +0000 (02:35 +0100)]
remove old wait any simcall

2 years agoThat went ways too far
Martin Quinson [Sat, 19 Feb 2022 23:58:01 +0000 (00:58 +0100)]
That went ways too far

2 years agoMove another function of mc::api, to Transition
Martin Quinson [Sat, 19 Feb 2022 23:55:12 +0000 (00:55 +0100)]
Move another function of mc::api, to Transition

2 years agoKill two more unused functions in mc::api
Martin Quinson [Sat, 19 Feb 2022 23:39:56 +0000 (00:39 +0100)]
Kill two more unused functions in mc::api

2 years agoMC: move a check_deadlock from ModelChecker to Session, and kill cruft in mc::api
Martin Quinson [Sat, 19 Feb 2022 23:34:50 +0000 (00:34 +0100)]
MC: move a check_deadlock from ModelChecker to Session, and kill cruft in mc::api

2 years agokill ModelChecker::simcall_is_visible()
Martin Quinson [Sat, 19 Feb 2022 23:13:59 +0000 (00:13 +0100)]
kill ModelChecker::simcall_is_visible()

no need for the checker to check whether a simcall is visible:
invisible simcalls are handled in the AppSide and never show up on the
cheker side.

2 years agoKill Simcall::COMM_WAIT
Martin Quinson [Sat, 19 Feb 2022 23:03:28 +0000 (00:03 +0100)]
Kill Simcall::COMM_WAIT

2 years agoEmpty a bit mc::api namespace
Martin Quinson [Sat, 19 Feb 2022 20:38:11 +0000 (21:38 +0100)]
Empty a bit mc::api namespace

2 years agoKill Simcall::COMM_RECV, COMM_IRECV, COMM_SEND and COMM_ISEND
Martin Quinson [Sat, 19 Feb 2022 18:42:22 +0000 (19:42 +0100)]
Kill Simcall::COMM_RECV, COMM_IRECV, COMM_SEND and COMM_ISEND

2 years agoExplicit casts for Sonar.
Arnaud Giersch [Sat, 19 Feb 2022 14:08:24 +0000 (15:08 +0100)]
Explicit casts for Sonar.

2 years agoApparently these asserts are not failing anymore. Uncomment.
Arnaud Giersch [Fri, 18 Feb 2022 17:28:27 +0000 (18:28 +0100)]
Apparently these asserts are not failing anymore. Uncomment.

2 years agoFix a MC test that seem to be tested on freebsd only. Not sure
Martin Quinson [Sat, 19 Feb 2022 12:09:47 +0000 (13:09 +0100)]
Fix a MC test that seem to be tested on freebsd only. Not sure

2 years agoMC: prefer a memleak to a segfault
Martin Quinson [Sat, 19 Feb 2022 11:33:16 +0000 (12:33 +0100)]
MC: prefer a memleak to a segfault

2 years agoMC: the state does not need to have the simcall anymore
Martin Quinson [Sat, 19 Feb 2022 10:26:36 +0000 (11:26 +0100)]
MC: the state does not need to have the simcall anymore

2 years agoCommDet: Fix memory corruption, and plug some memleaks
Martin Quinson [Sat, 19 Feb 2022 10:05:51 +0000 (11:05 +0100)]
CommDet: Fix memory corruption, and plug some memleaks

Passing local variables by address to lambda's closure does not seem
like a good idea.

Big big thanks to @agiersch for debugging this out.

(some memleaks remain TBD)

2 years agoMC: simplification knowing that every visible transitions have an observer
Martin Quinson [Sat, 19 Feb 2022 00:21:42 +0000 (01:21 +0100)]
MC: simplification knowing that every visible transitions have an observer

2 years agoMC does not need a mc_value_ in the simcall anymore
Martin Quinson [Fri, 18 Feb 2022 23:52:50 +0000 (00:52 +0100)]
MC does not need a mc_value_ in the simcall anymore

2 years agoSplit the Comm observers to their own files
Martin Quinson [Fri, 18 Feb 2022 23:28:19 +0000 (00:28 +0100)]
Split the Comm observers to their own files

2 years agoSplit TransitionAny and TransitionRandom to their own files
Martin Quinson [Fri, 18 Feb 2022 23:05:13 +0000 (00:05 +0100)]
Split TransitionAny and TransitionRandom to their own files

2 years agoRevalidate all SafetyChecker tesh now that the output changed
Martin Quinson [Fri, 18 Feb 2022 22:49:02 +0000 (23:49 +0100)]
Revalidate all SafetyChecker tesh now that the output changed

2 years agoMake CommDet a plugin on top of Safety
Martin Quinson [Fri, 18 Feb 2022 22:13:26 +0000 (23:13 +0100)]
Make CommDet a plugin on top of Safety

2 years agoFurther simplifications in CommDet
Martin Quinson [Fri, 18 Feb 2022 20:44:14 +0000 (21:44 +0100)]
Further simplifications in CommDet

2 years agoCommDet: detached send should be handled. But how?
Martin Quinson [Fri, 18 Feb 2022 20:23:07 +0000 (21:23 +0100)]
CommDet: detached send should be handled. But how?

2 years agoCommDet: Enforce deterministic pattern even during backtrack, to simplify the code
Martin Quinson [Fri, 18 Feb 2022 20:10:58 +0000 (21:10 +0100)]
CommDet: Enforce deterministic pattern even during backtrack, to simplify the code

2 years agoCommDet: tiny simplification
Martin Quinson [Fri, 18 Feb 2022 20:00:46 +0000 (21:00 +0100)]
CommDet: tiny simplification

2 years agoAdd the MPI tag to the Send/Recv Transitions
Martin Quinson [Fri, 18 Feb 2022 19:53:18 +0000 (20:53 +0100)]
Add the MPI tag to the Send/Recv Transitions

2 years agoTry to fix the MC build on 32 bits
Martin Quinson [Fri, 18 Feb 2022 19:21:00 +0000 (20:21 +0100)]
Try to fix the MC build on 32 bits

2 years agoDocument the fact that MC big bang occured
Martin Quinson [Fri, 18 Feb 2022 18:24:26 +0000 (19:24 +0100)]
Document the fact that MC big bang occured

2 years agoMC: no need to read the remote request directly
Martin Quinson [Fri, 18 Feb 2022 18:02:06 +0000 (19:02 +0100)]
MC: no need to read the remote request directly

2 years agoCommDet: reimplement on top of transitions. Don't mess with requests anymore
Martin Quinson [Fri, 18 Feb 2022 15:58:37 +0000 (16:58 +0100)]
CommDet: reimplement on top of transitions. Don't mess with requests anymore

The observer->set_comm() is done during the simcall execution on the
appside, but the transition is serialized before this simcall
execution. I need to fiddle the Checker <-> AppSide protocol, again.

2 years agoHave the application execute its transition before returning SIMCALL_EXECUTE_ANSWER
Martin Quinson [Fri, 18 Feb 2022 16:10:54 +0000 (17:10 +0100)]
Have the application execute its transition before returning SIMCALL_EXECUTE_ANSWER

This makes the RPC protocol somewhat more complex, but it's mandatory
to get the updated observer.

This is useful in particular to Isend/Irecv observers that have a
set_comm() field that cannot be set before executing the simcall.
CommDet need that field anyway, so let's change the protocol that way.

2 years agoAdd getters to the TransitionComm* and TransitionAny*
Martin Quinson [Fri, 18 Feb 2022 09:11:42 +0000 (10:11 +0100)]
Add getters to the TransitionComm* and TransitionAny*

2 years agosonar fixes
Martin Quinson [Fri, 18 Feb 2022 07:17:42 +0000 (08:17 +0100)]
sonar fixes

- use uintptr_t instead of void* on the Checker side.
  They cannot be dereferenced anyway.
- various small things (const, remove empty statements)

2 years agoFix sonar issues in ns3 examples.
Arnaud Giersch [Fri, 18 Feb 2022 15:05:55 +0000 (16:05 +0100)]
Fix sonar issues in ns3 examples.

2 years agoFix sonar issues in ns3 bindings.
Arnaud Giersch [Fri, 18 Feb 2022 13:03:45 +0000 (14:03 +0100)]
Fix sonar issues in ns3 bindings.

2 years agoTry again to enable ns3 for coverage and sonar [ci-skip].
Arnaud Giersch [Fri, 18 Feb 2022 10:45:25 +0000 (11:45 +0100)]
Try again to enable ns3 for coverage and sonar [ci-skip].

2 years ago[experimental] Replace long list of excluded libs with a much shorter whitelist.
Arnaud Giersch [Fri, 18 Feb 2022 10:30:10 +0000 (11:30 +0100)]
[experimental] Replace long list of excluded libs with a much shorter whitelist.

For now, exclude any lib which is not libsimgrid.

2 years agoDeprecate sg_host_dump.
Arnaud Giersch [Fri, 18 Feb 2022 09:32:14 +0000 (10:32 +0100)]
Deprecate sg_host_dump.

It's unused since the removal of the simdag examples.

2 years agoFix xbt_log_appender when there is no percent in template.
Arnaud Giersch [Fri, 18 Feb 2022 09:25:24 +0000 (10:25 +0100)]
Fix xbt_log_appender when there is no percent in template.

2 years agoGive the comm to {Send,Recv}Transition, as CommDet needs it
Martin Quinson [Fri, 18 Feb 2022 00:25:50 +0000 (01:25 +0100)]
Give the comm to {Send,Recv}Transition, as CommDet needs it

2 years agoCommDet: preparatory cosmetics
Martin Quinson [Thu, 17 Feb 2022 23:22:32 +0000 (00:22 +0100)]
CommDet: preparatory cosmetics

inline a few functions and move some small things around.

2 years agoCommDet: inline a function (+cosmetics)
Martin Quinson [Thu, 17 Feb 2022 23:06:33 +0000 (00:06 +0100)]
CommDet: inline a function (+cosmetics)

2 years agoPylint docs/source/tuto_s4u/*.py.
Arnaud Giersch [Thu, 17 Feb 2022 15:02:16 +0000 (16:02 +0100)]
Pylint docs/source/tuto_s4u/*.py.

2 years agoPylint teshsuite/*.py.
Arnaud Giersch [Thu, 17 Feb 2022 14:54:36 +0000 (15:54 +0100)]
Pylint teshsuite/*.py.

2 years agoPylint examples/*.py.
Arnaud Giersch [Thu, 17 Feb 2022 14:40:05 +0000 (15:40 +0100)]
Pylint examples/*.py.

2 years agoPylint docs/find-missing.py, src/simix/simcalls.py.
Arnaud Giersch [Thu, 17 Feb 2022 13:31:38 +0000 (14:31 +0100)]
Pylint docs/find-missing.py, src/simix/simcalls.py.

2 years agoPylint tesh.py.
Arnaud Giersch [Wed, 16 Feb 2022 22:44:39 +0000 (23:44 +0100)]
Pylint tesh.py.

2 years agomist. (fix gcc MC builds)
Martin Quinson [Thu, 17 Feb 2022 09:56:42 +0000 (10:56 +0100)]
mist. (fix gcc MC builds)

2 years agoFurther isolate CommDet in its own file
Martin Quinson [Wed, 16 Feb 2022 21:38:52 +0000 (22:38 +0100)]
Further isolate CommDet in its own file

2 years agoCommDet shall become an extension of the SafetyChecker
Martin Quinson [Tue, 15 Feb 2022 08:42:55 +0000 (09:42 +0100)]
CommDet shall become an extension of the SafetyChecker

2 years agomake mc::State extendable so that CommDet does not polute it in any case
Martin Quinson [Tue, 15 Feb 2022 08:04:50 +0000 (09:04 +0100)]
make mc::State extendable so that CommDet does not polute it in any case

2 years agoUse type 'bool' for boolean variables.
Arnaud Giersch [Wed, 16 Feb 2022 21:23:55 +0000 (22:23 +0100)]
Use type 'bool' for boolean variables.

2 years agoAdd basic check for failures in deserialization.
Arnaud Giersch [Wed, 16 Feb 2022 18:20:54 +0000 (19:20 +0100)]
Add basic check for failures in deserialization.

2 years agoUse bounds checking method array::at().
Arnaud Giersch [Wed, 16 Feb 2022 15:25:23 +0000 (16:25 +0100)]
Use bounds checking method array::at().

2 years agoBlank lines (codefactor.io).
Arnaud Giersch [Wed, 16 Feb 2022 15:16:26 +0000 (16:16 +0100)]
Blank lines (codefactor.io).

2 years agoUse C++ std::array (sonar).
Arnaud Giersch [Wed, 16 Feb 2022 14:26:57 +0000 (15:26 +0100)]
Use C++ std::array (sonar).

2 years agoOne less implicit conversion (sonar).
Arnaud Giersch [Wed, 16 Feb 2022 13:51:44 +0000 (14:51 +0100)]
One less implicit conversion (sonar).

2 years agoDon't mix public and private data members (sonar).
Arnaud Giersch [Wed, 16 Feb 2022 11:25:00 +0000 (12:25 +0100)]
Don't mix public and private data members (sonar).

2 years agoWe want to serialize the pointer, not the pointee!
Arnaud Giersch [Tue, 15 Feb 2022 20:06:00 +0000 (21:06 +0100)]
We want to serialize the pointer, not the pointee!

2 years agoIgnore local variables without type in snapshot.
Arnaud Giersch [Tue, 15 Feb 2022 12:48:17 +0000 (13:48 +0100)]
Ignore local variables without type in snapshot.

Makes test 's4u-mc-bugged1-liveness' succeed when built with gcc.

Use '--log=mc_snapshot.thres:verbose' to activate the debug message.
AFAICS, the affected variable is parameter 'code' in simcall_blocking.

Note that I would have preferred to correct the DWARF loading code, but
I couldn't figure out what was missing.

2 years agoKill duplicate function + typos.
Arnaud Giersch [Tue, 15 Feb 2022 10:50:25 +0000 (11:50 +0100)]
Kill duplicate function + typos.

2 years agoReduce code dupplication to please sonar
Martin Quinson [Mon, 14 Feb 2022 19:15:35 +0000 (20:15 +0100)]
Reduce code dupplication to please sonar

2 years agoMake logger mc_compare a subcategory of mc.
Arnaud Giersch [Mon, 14 Feb 2022 09:12:24 +0000 (10:12 +0100)]
Make logger mc_compare a subcategory of mc.

2 years agoRevalidate random-bug-nocrash.tesh.
Arnaud Giersch [Mon, 14 Feb 2022 08:48:20 +0000 (09:48 +0100)]
Revalidate random-bug-nocrash.tesh.

2 years agoRevalidate the tesh output of that test whose reduction is now less efficient for...
Martin Quinson [Sun, 13 Feb 2022 22:36:20 +0000 (23:36 +0100)]
Revalidate the tesh output of that test whose reduction is now less efficient for some reason

2 years agoImplement WaitAnyTransition
Martin Quinson [Sun, 13 Feb 2022 21:19:46 +0000 (22:19 +0100)]
Implement WaitAnyTransition

2 years agobetter name
Martin Quinson [Sun, 13 Feb 2022 11:39:14 +0000 (12:39 +0100)]
better name

2 years agoSonar fixes
Martin Quinson [Sun, 13 Feb 2022 11:15:01 +0000 (12:15 +0100)]
Sonar fixes

- Pass the constructor parameters to the ancestor (!)
- Make some stuff const
- don't overuse initializer list of constructors for stuff that can be
  initialized in the class
- Kill dead code
- 'auto' instead of redundent type
- true/false instead of 1/0
- Also inline a useless function

2 years agoFix MC builds with gcc12 (and make the serialization more robust)
Martin Quinson [Sun, 13 Feb 2022 10:24:24 +0000 (11:24 +0100)]
Fix MC builds with gcc12 (and make the serialization more robust)

2 years agoImplement TestAnyTransition
Martin Quinson [Sat, 12 Feb 2022 22:29:21 +0000 (23:29 +0100)]
Implement TestAnyTransition

2 years agoSimplify the serialization protocol to implement TestAny & WaitAny in a moment
Martin Quinson [Sat, 12 Feb 2022 18:10:43 +0000 (19:10 +0100)]
Simplify the serialization protocol to implement TestAny & WaitAny in a moment

2 years agoimplement CommTestTransition
Martin Quinson [Sat, 12 Feb 2022 15:36:42 +0000 (16:36 +0100)]
implement CommTestTransition

2 years agoFix MC gcc builds :(
Martin Quinson [Sat, 12 Feb 2022 13:05:50 +0000 (14:05 +0100)]
Fix MC gcc builds :(

2 years agofix build
Augustin Degomme [Sat, 12 Feb 2022 12:20:59 +0000 (13:20 +0100)]
fix build

2 years agoMove dot_label() from Observer to Transition (+ some reorgs)
Martin Quinson [Sat, 12 Feb 2022 11:30:10 +0000 (12:30 +0100)]
Move dot_label() from Observer to Transition (+ some reorgs)

2 years agoSimcallObservers don't need to be cloned anymore
Martin Quinson [Sat, 12 Feb 2022 10:33:33 +0000 (11:33 +0100)]
SimcallObservers don't need to be cloned anymore

2 years agoImprove the final stats reported by SafetyChecker, and revalidate tesh files
Martin Quinson [Sat, 12 Feb 2022 10:17:46 +0000 (11:17 +0100)]
Improve the final stats reported by SafetyChecker, and revalidate tesh files

2 years agoFix more sonar things
Martin Quinson [Sat, 12 Feb 2022 09:46:45 +0000 (10:46 +0100)]
Fix more sonar things

2 years agoBetter fix for the security warning from sonar: hide the char* buffer
Martin Quinson [Sat, 12 Feb 2022 09:36:00 +0000 (10:36 +0100)]
Better fix for the security warning from sonar: hide the char* buffer

2 years agoFix the security hotspots of sonar
Martin Quinson [Sat, 12 Feb 2022 08:41:39 +0000 (09:41 +0100)]
Fix the security hotspots of sonar

2 years agoRevalidate the tesh of some working MC tests
Martin Quinson [Fri, 11 Feb 2022 23:43:22 +0000 (00:43 +0100)]
Revalidate the tesh of some working MC tests

2 years agoRevalidate the tesh of the mc-bugged1 test, which output changed but is working
Martin Quinson [Fri, 11 Feb 2022 23:35:23 +0000 (00:35 +0100)]
Revalidate the tesh of the mc-bugged1 test, which output changed but is working

2 years agoFix the depends of iSend/iRecv vs. WaitComm to fix the bugged2 example
Martin Quinson [Fri, 11 Feb 2022 23:26:41 +0000 (00:26 +0100)]
Fix the depends of iSend/iRecv vs. WaitComm to fix the bugged2 example

2 years agoCommWaitTransition mailbox is now valid
Martin Quinson [Fri, 11 Feb 2022 23:13:47 +0000 (00:13 +0100)]
CommWaitTransition mailbox is now valid

2 years agoImplement the RandomTransition
Martin Quinson [Fri, 11 Feb 2022 22:21:08 +0000 (23:21 +0100)]
Implement the RandomTransition

2 years agoRemove the hostnames from the CommDet patterns: MC does not have this info anymore
Martin Quinson [Fri, 11 Feb 2022 21:28:42 +0000 (22:28 +0100)]
Remove the hostnames from the CommDet patterns: MC does not have this info anymore

2 years agoMC: one simplification step
Martin Quinson [Fri, 11 Feb 2022 21:20:57 +0000 (22:20 +0100)]
MC: one simplification step

2 years agoMake sure that the last stack element is set when an assertion failure occures
Martin Quinson [Fri, 11 Feb 2022 21:13:16 +0000 (22:13 +0100)]
Make sure that the last stack element is set when an assertion failure occures

2 years agoNo need to save the observers on the App side now that they are serialized over
Martin Quinson [Fri, 11 Feb 2022 21:06:09 +0000 (22:06 +0100)]
No need to save the observers on the App side now that they are serialized over