Augustin Degomme [Mon, 15 Mar 2021 14:38:20 +0000 (15:38 +0100)]
Teshsuite SMPI : execute from build dir.
Ensure that smpi tests from teshsuite are executed from the build folder and not the source folder, to avoid generating temporary files in source folders which may then stay (test interrupted, crash, wrapper used).
Augustin Degomme [Mon, 15 Mar 2021 09:01:21 +0000 (10:01 +0100)]
exclude intentionally leaking test from asan and valgrind leak checkers
Augustin Degomme [Sun, 14 Mar 2021 23:15:51 +0000 (00:15 +0100)]
try to match types correctly this time
Augustin Degomme [Sun, 14 Mar 2021 23:00:13 +0000 (00:00 +0100)]
that was supposed to be removed now, thanks ubuntu-32 ! You see you are so useful !
Augustin Degomme [Sun, 14 Mar 2021 22:37:51 +0000 (23:37 +0100)]
add a test with an intentional leak for previous feature.
Will probably need to be added to suppressions.. but that will wait tomorrow
Augustin Degomme [Sun, 14 Mar 2021 22:22:20 +0000 (23:22 +0100)]
Add a small allocations counter in SMPI.
With smpi/display-analysis, it can display the total memory allocated by malloc/calloc calls intecepted by SMPI.
It outputs at the end of the simulation the largest one, its address, and the number of times it was called, and hints to use sharing options on it.
To avoid too many globals, and singletons, I used the namespace smpi::utils to regroup all of these analysis tools. Please tell if this is awful C++ :p
Augustin Degomme [Wed, 10 Mar 2021 10:11:46 +0000 (11:11 +0100)]
downgrade message to info level, it's usually not a big issue to have some handles leaking at the end of execution...
Arnaud Giersch [Sun, 14 Mar 2021 19:30:40 +0000 (20:30 +0100)]
Bogus default value for parameter.
It should rather be defined at declaration to be useful.
Arnaud Giersch [Sun, 14 Mar 2021 15:42:33 +0000 (16:42 +0100)]
Pointer-to-const for sonar.
Arnaud Giersch [Sun, 14 Mar 2021 14:00:08 +0000 (15:00 +0100)]
Replace magic number 8.
Martin Quinson [Sun, 14 Mar 2021 20:26:09 +0000 (21:26 +0100)]
Gosh I hate the formating strings when size_t comes to play
Martin Quinson [Sun, 14 Mar 2021 18:23:10 +0000 (19:23 +0100)]
MC gets the addresses of variables it needs from the network (not dwarf)
This way, Dwarf info are only loaded when they are really needed (ie,
when state equality is used or for liveness properties).
Running all MC tests goes from about 70 seconds down to 10 seconds
(there is a liveness test that lasts 10 seconds). The MC tests that do
not need dwarf go from 6 or 8 seconds down to half a second.
I'm not 100% sure, but this commit may introduce a race condition when
SMPI is used with dlopen privatization. The binary is sometimes
removed from disk too early for MC to pick the dwarf informations it
needs. I saw it some times while implementing it and now it seems to
be gone although I did not explicitely fix it. This seem to be tested
by mc-umpire-comm-dup-no-free2 so I'm not sure.
Martin Quinson [Sun, 14 Mar 2021 15:59:21 +0000 (16:59 +0100)]
RemoteProcess: cache the addresses of maxpid, actors and dead_actors
Soon these addresses will be given by the App through the network
instead of retriving them with Dwarf.
Martin Quinson [Sun, 14 Mar 2021 15:15:15 +0000 (16:15 +0100)]
Move the logic retrieving the actor info in the App to RemoteProcess
Martin Quinson [Sun, 14 Mar 2021 14:35:23 +0000 (15:35 +0100)]
Move the logic of Api::get_maxpid() to RemoteProcess where it belongs
Martin Quinson [Sun, 14 Mar 2021 14:09:13 +0000 (15:09 +0100)]
MC: lazily load the dwarf information
Augustin Degomme [Sun, 14 Mar 2021 19:54:27 +0000 (20:54 +0100)]
attempt to fix en issue when timing functions are called before initialization
Martin Quinson [Sun, 14 Mar 2021 02:14:35 +0000 (03:14 +0100)]
Give an explicit name to the session singleton
Martin Quinson [Sun, 14 Mar 2021 02:04:23 +0000 (03:04 +0100)]
Remove more uses of the session global
Martin Quinson [Sun, 14 Mar 2021 01:58:15 +0000 (02:58 +0100)]
cosmetics
Martin Quinson [Sun, 14 Mar 2021 01:48:59 +0000 (02:48 +0100)]
The checker has the session and don't need the API to interact with it
Martin Quinson [Sun, 14 Mar 2021 01:33:01 +0000 (02:33 +0100)]
Inline a function
Martin Quinson [Sun, 14 Mar 2021 01:20:02 +0000 (02:20 +0100)]
Dont pass as a parameter something that is already known as a field of the receiver class :)
Martin Quinson [Sun, 14 Mar 2021 01:11:18 +0000 (02:11 +0100)]
Kill a file that was almost empty
Martin Quinson [Sun, 14 Mar 2021 00:37:42 +0000 (01:37 +0100)]
Kill some use of the mc_model_checker global variable
Martin Quinson [Sun, 14 Mar 2021 00:25:09 +0000 (01:25 +0100)]
The checker now have a reference to the session
Martin Quinson [Sun, 14 Mar 2021 00:08:42 +0000 (01:08 +0100)]
A checker don't need the mc::api to find itself
Martin Quinson [Sun, 14 Mar 2021 00:00:05 +0000 (01:00 +0100)]
Rename model_checker->get_remote_simulation() into model_checker->get_remote_process()
Martin Quinson [Sat, 13 Mar 2021 23:50:31 +0000 (00:50 +0100)]
MC: cosmetics
Martin Quinson [Sat, 13 Mar 2021 23:19:04 +0000 (00:19 +0100)]
Rename mc::RemoteSimulation into mc::RemoteProcess
Martin Quinson [Sat, 13 Mar 2021 23:08:09 +0000 (00:08 +0100)]
MC: simplify initialization and kill api::set_checker()
Martin Quinson [Sat, 13 Mar 2021 22:17:28 +0000 (23:17 +0100)]
Merge branch 'master' of framagit.org:simgrid/simgrid
Martin Quinson [Sat, 13 Mar 2021 21:28:06 +0000 (22:28 +0100)]
getraw is only useful when dealing with boost intrusive pointers
Arnaud Giersch [Sat, 13 Mar 2021 21:25:04 +0000 (22:25 +0100)]
Duplicate cleanup instructions for jenkins builds in other scripts.
Useful e.g. for cleaning /tmp on node debian-testing.
Arnaud Giersch [Sat, 13 Mar 2021 21:25:04 +0000 (22:25 +0100)]
Add parameter timeout to mc::ConditionWaitSimcall and mc::SemAcquireSimcall.
Prepare the modernization of simcalls cond_wait_timeout and sem_acquire_timeout.
Arnaud Giersch [Sat, 13 Mar 2021 21:25:04 +0000 (22:25 +0100)]
Modernize simcall cond_wait.
Arnaud Giersch [Sat, 13 Mar 2021 21:25:04 +0000 (22:25 +0100)]
Modernize simcall sem_acquire.
Arnaud Giersch [Sat, 13 Mar 2021 21:25:04 +0000 (22:25 +0100)]
Const attributes in SimcallObserver.
Arnaud Giersch [Sat, 13 Mar 2021 21:25:04 +0000 (22:25 +0100)]
Use ConditionVariable::create() for sg_cond_init().
Arnaud Giersch [Sat, 13 Mar 2021 21:25:04 +0000 (22:25 +0100)]
Rename ConditionVariable::cond_ to pimpl_ for consistency.
Arnaud Giersch [Sat, 13 Mar 2021 21:25:04 +0000 (22:25 +0100)]
Add SemaphoreImpl::piface_ (mimic MutexImpl).
Also make constructor private to enforce usage of create(), and fix bogus destructor.
Like for Mutex, could not manage to make ~Semaphore() private.
Arnaud Giersch [Sat, 13 Mar 2021 21:25:04 +0000 (22:25 +0100)]
Prefer type bool for boolean values.
Arnaud Giersch [Sat, 13 Mar 2021 21:25:04 +0000 (22:25 +0100)]
Mutex::pimpl_ is never null.
Arnaud Giersch [Sat, 13 Mar 2021 21:25:04 +0000 (22:25 +0100)]
Use Mutex::create() for sg_mutex_init().
Also make constructor private to enforce usage of create(), and fix bogus destructor.
Wanted to make ~Mutex() private, but failed to make it compile :(
Arnaud Giersch [Sat, 13 Mar 2021 21:25:04 +0000 (22:25 +0100)]
Fix include.
Martin Quinson [Sat, 13 Mar 2021 20:42:47 +0000 (21:42 +0100)]
inline simcall_check_dependency() now that it's called only once
Martin Quinson [Sat, 13 Mar 2021 20:34:38 +0000 (21:34 +0100)]
MC: check dependency between 2 given requests only once
The dependency relationship is symmetric but bothersome to write
extensively, so earlier we wrote only half of the relations and called
dep(r1, r2) && dep(r2, r1)
Simplify things by first ensuring that r1 < r2 in alphabetic order and
only call dep(r1, r2).
Martin Quinson [Sat, 13 Mar 2021 19:56:36 +0000 (20:56 +0100)]
request_depend_asymmetric(r1,r2) now tests when r1 < r2 alphabetically
Martin Quinson [Sat, 13 Mar 2021 19:25:36 +0000 (20:25 +0100)]
Sort comm_* simcalls alphabetically
Martin Quinson [Sat, 13 Mar 2021 19:49:08 +0000 (20:49 +0100)]
inline a function
Martin Quinson [Sat, 13 Mar 2021 19:33:14 +0000 (20:33 +0100)]
Both request cannot be of the same type here
Martin Quinson [Sat, 13 Mar 2021 19:19:47 +0000 (20:19 +0100)]
Only 4 simcalls are considered by indep theorems for now
Martin Quinson [Sat, 13 Mar 2021 18:44:47 +0000 (19:44 +0100)]
MC: cosmetics and tiny code simplifications
- Change a switch case into a if/else
- Rename "acti1" to "comm1" since that's what it is
- Move a function around to group dependency related functions
Augustin Degomme [Sat, 13 Mar 2021 19:06:09 +0000 (19:06 +0000)]
Third broken update for Centos binutils with LTO broken. Ignore all 2.30 for now.
Martin Quinson [Fri, 12 Mar 2021 20:57:19 +0000 (21:57 +0100)]
MC: simix::unmarshal should NEVER be called automatically
- this code is generated automatically, so copy/pasting it away does
not seem to be a robust idea.
- Also prefer failfast tracks with THROW_IMPOSSIBLE to return null
that hides problems that we did not expect.
Martin Quinson [Fri, 12 Mar 2021 18:57:12 +0000 (19:57 +0100)]
cosmetics
Martin Quinson [Thu, 11 Mar 2021 23:03:04 +0000 (00:03 +0100)]
s4u_synchro were renamed to activity in 2015, as far as I remember
Arnaud Giersch [Thu, 11 Mar 2021 18:12:51 +0000 (18:12 +0000)]
Merge branch 'model_types_rework_part1' into 'master'
Model types rework - Part 1
See merge request simgrid/simgrid!54
Bruno Donassolo [Thu, 11 Mar 2021 17:19:38 +0000 (18:19 +0100)]
Initializing SimGrid's model in another way
Preparing the field to change models type to primary/virtual.
To do so, we need another way to set the "default" models in the root
netzone.
For that, we changed the order we created the zone during the XML
parser:
1) Create the netzone object (and set as root netzone if it's the first)
2) Create the simgrid's models (if
2.1) During the initialization of simgrid's models (by the
surf_model_description_t structure), the default models are set in the
root netzone
3) If it's a child netzone, copy models from its father
Probably temporary changes:
- Create setters for each model in the NetZoneImpl. To be reviewed after
we decided where to put the "default" models.
Bruno Donassolo [Thu, 11 Mar 2021 13:51:13 +0000 (14:51 +0100)]
Simple constructor for NetZone's child classes.
Extends the work done in previous commit for other NetZone classes.
Bruno Donassolo [Wed, 10 Mar 2021 18:53:33 +0000 (19:53 +0100)]
NetZoneImpl: simpler constructor
NetZoneImpl(std::string& name);
One step towards a simple contructor and set() idiom.
Removed father and network model from constructor.
Collateral effect:
NetPoint:
- removed NetZoneImpl* from its constructor
- added method set_englobing_zone(NetZoneImpl*)
In the past, we could create the NetPoint in NetZoneImpl with the
pointer to the father. But now, the father is only set latter at
set_father method.
Bruno Donassolo [Thu, 25 Feb 2021 17:33:36 +0000 (18:33 +0100)]
NetZoneImpl: rework seal
Create a do_seal that can be rewritten by derived classes
Assure that flag sealed_ is sealed properly when derived classes
override the seal() method.
Martin Quinson [Thu, 11 Mar 2021 16:13:33 +0000 (17:13 +0100)]
Merge pull request #374 from adegomme/master
try to handle inconsistencies in github environments.
adegomme [Thu, 11 Mar 2021 15:50:49 +0000 (16:50 +0100)]
sometimes, it's still there...
Arnaud Giersch [Thu, 11 Mar 2021 14:23:01 +0000 (15:23 +0100)]
[sonar] Move explaining comment inside body of empty function.
Arnaud Giersch [Thu, 11 Mar 2021 14:17:21 +0000 (15:17 +0100)]
[sonar] Use '=default'.
Arnaud Giersch [Thu, 11 Mar 2021 14:10:07 +0000 (15:10 +0100)]
[sonar] Declare functions 'const'.
Arnaud Giersch [Thu, 11 Mar 2021 14:07:15 +0000 (15:07 +0100)]
[sonar] Use :: to call static member functions.
Arnaud Giersch [Thu, 11 Mar 2021 13:51:12 +0000 (14:51 +0100)]
[sonar] Pointer to const.
Arnaud Giersch [Thu, 11 Mar 2021 13:49:45 +0000 (14:49 +0100)]
[sonar] Favor using-declarations.
Martin Quinson [Thu, 11 Mar 2021 13:59:17 +0000 (14:59 +0100)]
Merge pull request #373 from adegomme/master
fix jar creation github action, and add weekly build
adegomme [Thu, 11 Mar 2021 13:54:15 +0000 (14:54 +0100)]
add weekly build at 6:00pm sundays
adegomme [Thu, 11 Mar 2021 13:28:19 +0000 (14:28 +0100)]
try to put back boost on windows
https://github.com/actions/virtual-environments/issues/2667
adegomme [Thu, 11 Mar 2021 12:56:58 +0000 (13:56 +0100)]
temporary attempt to workaround scoop bug
https://github.com/ScoopInstall er/Main/issues/1752
Martin Quinson [Thu, 11 Mar 2021 09:58:26 +0000 (10:58 +0100)]
Remove useless default destructor definitions
Martin Quinson [Wed, 10 Mar 2021 20:13:30 +0000 (21:13 +0100)]
Two small sonar fixes
- dead stores
- default destructor should not even be written
Martin Quinson [Tue, 9 Mar 2021 15:34:31 +0000 (16:34 +0100)]
Document direct communications, deprecate Host::sendto() because Comm::sendto() is better for that
Augustin Degomme [Wed, 10 Mar 2021 19:03:04 +0000 (20:03 +0100)]
implement MPI_File_set_size
Arnaud Giersch [Wed, 10 Mar 2021 17:11:00 +0000 (17:11 +0000)]
Merge branch 's4u/model_list' into 'master'
s4u Engine: expose get_all_models, get_model_list
See merge request simgrid/simgrid!53
Arnaud Giersch [Wed, 10 Mar 2021 16:52:05 +0000 (16:52 +0000)]
Merge branch 'unify_models' into 'master'
Unify treatment of models in the EngineImpl
See merge request simgrid/simgrid!52
Bruno Donassolo [Wed, 10 Mar 2021 14:09:35 +0000 (15:09 +0100)]
Uniform treatment in EngineImpl for all models.
Override the update_action_state function in CPUL07 and LinkL07, they
are not necessary since the actions are updated by the HostL07Model, but
they allow to make the same treatment for all models.
Bruno Donassolo [Wed, 10 Mar 2021 14:05:45 +0000 (15:05 +0100)]
Improv comment
Bruno Donassolo [Wed, 10 Mar 2021 14:04:57 +0000 (15:04 +0100)]
Const for some get functions
msimonin [Wed, 10 Mar 2021 15:40:09 +0000 (16:40 +0100)]
s4u Engine: expose get_all_models, get_model_list
Before
e22da6010c6499813ff88c76041cf499ffbf2b67 the list of models
could be accessed using the global `all_existing_models`
This patch exposes two methods to get the list of models in the
s4u::Engine, they wrap those of `EngineImpl`.
Arnaud Giersch [Wed, 10 Mar 2021 09:40:29 +0000 (10:40 +0100)]
Sonar prefers nullptr.
Arnaud Giersch [Wed, 10 Mar 2021 09:11:29 +0000 (10:11 +0100)]
Cosmetics around #include.
Arnaud Giersch [Wed, 10 Mar 2021 09:09:02 +0000 (10:09 +0100)]
More error messages.
Arnaud Giersch [Wed, 10 Mar 2021 09:08:37 +0000 (10:08 +0100)]
Prefer xbt_assert here.
Arnaud Giersch [Tue, 9 Mar 2021 20:57:32 +0000 (21:57 +0100)]
Update .mailmap.
Arnaud Giersch [Tue, 9 Mar 2021 14:36:05 +0000 (15:36 +0100)]
Merge oberver classes MutexTrylockSimcall and MutexLockSimcall.
Arnaud Giersch [Mon, 8 Mar 2021 13:55:22 +0000 (14:55 +0100)]
Modernize simcall mutex_lock.
Arnaud Giersch [Tue, 9 Mar 2021 14:15:33 +0000 (15:15 +0100)]
Move check from checker side to app. side.
Arnaud Giersch [Tue, 9 Mar 2021 12:03:01 +0000 (13:03 +0100)]
Define (and use) a callback for RawImpl::finish.
Arnaud Giersch [Tue, 9 Mar 2021 08:22:03 +0000 (09:22 +0100)]
Make scan-build ignore volontary null-pointer dereference.
Arnaud Giersch [Tue, 9 Mar 2021 20:14:20 +0000 (21:14 +0100)]
Merge branch 'bruno.donassolo/simgrid-add_model_shared' into next
Augustin Degomme [Tue, 9 Mar 2021 19:18:22 +0000 (20:18 +0100)]
also test with several cores. Let's see how this goes
Bruno Donassolo [Tue, 9 Mar 2021 19:04:53 +0000 (20:04 +0100)]
Engine*::add_model: from unique to shared_ptr
Martin Quinson [Tue, 9 Mar 2021 17:51:28 +0000 (17:51 +0000)]
Merge branch 'hotfix_add_model_api' into 'master'
Hotfix: expose add_model method in s4u::Engine
See merge request simgrid/simgrid!50
Bruno Donassolo [Tue, 9 Mar 2021 17:28:59 +0000 (18:28 +0100)]
Hotfix: expose add_model method in s4u::Engine
Expose the add_model API to external users.
Frederic Suter [Tue, 9 Mar 2021 15:58:08 +0000 (16:58 +0100)]
namespacing