Logo AND Algorithmique Numérique Distribuée

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

2 years agoInline another stupid function
Martin Quinson [Fri, 11 Feb 2022 20:47:52 +0000 (21:47 +0100)]
Inline another stupid function

2 years agoObjectification of mc::RecordTrace
Martin Quinson [Fri, 11 Feb 2022 20:42:46 +0000 (21:42 +0100)]
Objectification of mc::RecordTrace

2 years agoStop copying transitions around since that would shorten the virtual methods
Martin Quinson [Fri, 11 Feb 2022 20:13:06 +0000 (21:13 +0100)]
Stop copying transitions around since that would shorten the virtual methods

2 years agoInline another useless function in MC and a define symbol
Martin Quinson [Fri, 11 Feb 2022 19:47:03 +0000 (20:47 +0100)]
Inline another useless function in MC and a define symbol

2 years agoStart moving classes into the mc/api directory
Martin Quinson [Fri, 11 Feb 2022 18:27:29 +0000 (19:27 +0100)]
Start moving classes into the mc/api directory

2 years agoInline a function of mc::api
Martin Quinson [Fri, 11 Feb 2022 18:04:48 +0000 (19:04 +0100)]
Inline a function of mc::api

2 years agofix MC despite clang-format sorting the headers alphabetically while I would prefer...
Martin Quinson [Fri, 11 Feb 2022 17:01:25 +0000 (18:01 +0100)]
fix MC despite clang-format sorting the headers alphabetically while I would prefer not to