Martin Quinson [Thu, 28 Feb 2019 23:02:27 +0000 (00:02 +0100)]
doc improvement
I hope that this will clarify #325, and #132.
Frederic Suter [Fri, 1 Mar 2019 19:45:23 +0000 (20:45 +0100)]
mv the internal isend function to the class
Frederic Suter [Fri, 1 Mar 2019 18:18:14 +0000 (19:18 +0100)]
remove useless simcall for IO too and use better casts
Frederic Suter [Fri, 1 Mar 2019 17:58:38 +0000 (18:58 +0100)]
one step further not using kernel execution activities in MSG.
Frederic Suter [Fri, 1 Mar 2019 17:52:08 +0000 (18:52 +0100)]
The creation of the pimpl needs no simcall
Now that init and start are split, creating the ExecImpl in init (the
constructor) has no impact on the simulation kernel. The action is
created by start().
This slightly modifies the ordering of the output in one tesh file
Frederic Suter [Fri, 1 Mar 2019 17:51:01 +0000 (18:51 +0100)]
Yell when there is an exception, not when there isn't
Frederic Suter [Fri, 1 Mar 2019 09:03:36 +0000 (10:03 +0100)]
mess with MSG tasks
Arnaud Giersch [Thu, 28 Feb 2019 22:22:03 +0000 (23:22 +0100)]
Make destructors useless.
Arnaud Giersch [Thu, 28 Feb 2019 21:55:04 +0000 (22:55 +0100)]
Make capture list explicit.
Arnaud Giersch [Thu, 28 Feb 2019 21:51:44 +0000 (22:51 +0100)]
Empty callback is optional.
Arnaud Giersch [Thu, 28 Feb 2019 21:43:39 +0000 (22:43 +0100)]
Hide std::free to Sonar.
Arnaud Giersch [Thu, 28 Feb 2019 21:39:34 +0000 (22:39 +0100)]
Ignore Sonar issue "Macros should not be used to define constants" in *.h.
Arnaud Giersch [Thu, 28 Feb 2019 21:32:13 +0000 (22:32 +0100)]
Use default initialization.
Arnaud Giersch [Tue, 26 Feb 2019 20:54:53 +0000 (21:54 +0100)]
No static analyzers, myCoords[] and targetCoords[] don't contain garbage.
Save dimensions_.size() in a local variable to help Sonar and Clang, plus other
simplifications.
Arnaud Giersch [Thu, 28 Feb 2019 14:35:19 +0000 (15:35 +0100)]
Don't rely on random to generate temporary file names.
Arnaud Giersch [Thu, 28 Feb 2019 14:00:06 +0000 (15:00 +0100)]
Use C++11 <random> instead of rand().
Arnaud Giersch [Thu, 28 Feb 2019 13:45:22 +0000 (14:45 +0100)]
Remove never used FindRngStream.cmake.
Frederic Suter [Thu, 28 Feb 2019 12:52:04 +0000 (13:52 +0100)]
better message for this exception
Frederic Suter [Thu, 28 Feb 2019 12:46:12 +0000 (13:46 +0100)]
add test related to #220 + fix killsend
If the test and the launched actors share a scheduling round, the
outer test comes first and execute the asserts before the actors are
able to end their execution. As we want to control the status of the
actors when they end, let the outer test wait a bit before asserting.
Frederic Suter [Thu, 28 Feb 2019 09:12:07 +0000 (10:12 +0100)]
change exception raised if a StopRequest is catched in Host.off()
Martin Quinson [Thu, 28 Feb 2019 01:34:12 +0000 (02:34 +0100)]
activity-lifecycle: test exec just as we test sleep
We should also try to cancel all these nice actions. And at some
point, we should probably come up with a DSL or find another way to
factorize some code.
Martin Quinson [Thu, 28 Feb 2019 01:30:53 +0000 (02:30 +0100)]
Don't give actors a chance to survive their exec if their host is turned off
Before, they received an HostFailureException that they could catch to
survive. Now, they are simply killed (once their on_exit callbacks are
executed).
This is more consistent with what happens with sleep actions, and thus
fixes the github issue #325.
Martin Quinson [Wed, 27 Feb 2019 23:09:44 +0000 (00:09 +0100)]
please sonar: don't declare an empty callback
Arnaud Giersch [Wed, 27 Feb 2019 22:36:42 +0000 (23:36 +0100)]
Fix forwarding of the program arguments.
Use a static storage to avoid dangling pointers, and ensure that there is no
out of bound array access.
Arnaud Giersch [Wed, 27 Feb 2019 20:49:32 +0000 (21:49 +0100)]
Fix Backtrace::operator=.
Arnaud Giersch [Wed, 27 Feb 2019 14:55:56 +0000 (15:55 +0100)]
Anonymize unused parameters.
Arnaud Giersch [Wed, 27 Feb 2019 14:11:36 +0000 (15:11 +0100)]
Enforce "Rule-of-Three/Five".
Arnaud Giersch [Tue, 26 Feb 2019 21:54:45 +0000 (22:54 +0100)]
Avoid null pointer dereference.
Arnaud Giersch [Tue, 26 Feb 2019 20:34:27 +0000 (21:34 +0100)]
surf_parse_error() never returns, remove dead code after that.
Arnaud Giersch [Tue, 26 Feb 2019 20:32:47 +0000 (21:32 +0100)]
Remove dead code after exception throw.
Arnaud Giersch [Tue, 26 Feb 2019 20:30:42 +0000 (21:30 +0100)]
Remove dead code after returrn statement.
Arnaud Giersch [Tue, 26 Feb 2019 16:29:07 +0000 (17:29 +0100)]
Method is redundant with base class.
Arnaud Giersch [Tue, 26 Feb 2019 16:28:41 +0000 (17:28 +0100)]
Mark methods as "override".
Arnaud Giersch [Tue, 26 Feb 2019 16:47:53 +0000 (17:47 +0100)]
Capitalize constants.
Arnaud Giersch [Tue, 26 Feb 2019 16:23:29 +0000 (17:23 +0100)]
Replace #define with constexpr declarations.
Arnaud Giersch [Tue, 26 Feb 2019 16:44:17 +0000 (17:44 +0100)]
Kill unused constants.
Frederic Suter [Wed, 27 Feb 2019 13:49:06 +0000 (14:49 +0100)]
fix (#220) ?
If an actor ends right after a dsend, the Comm should not be canceled
to let the receiver a chance to catch it.
It was removed in Comm::cancel(), now it's not, and the destructor has
to be a bit more careful.
As the comm was canceled, if the receive is posted later, it nevers
find its matching send and may stall forever or timeout.
This changed the output of the chord example (using dsend), but I
suspect it was not so correct before with some dsend being canceled
and the corresponding receive ending on timeout.
This also highlighted an issue in Java. The cleanup function for dsend
is now called at the end of the simulation and get_current_thread_env
crashed (because the current thread is maestro).
Hopefully, this commit does not cause new leaks.
Frederic Suter [Wed, 27 Feb 2019 08:31:17 +0000 (09:31 +0100)]
make MSG_process_create die if host is off.
This was requested by adsein long time ago.
Frederic Suter [Wed, 27 Feb 2019 08:15:11 +0000 (09:15 +0100)]
fix typos in warning
degomme [Tue, 26 Feb 2019 12:07:45 +0000 (13:07 +0100)]
Change color of "barrier" in trace. It was too close to "computing"
degomme [Tue, 26 Feb 2019 10:59:36 +0000 (11:59 +0100)]
Add simple gemm example for SMPI with sampling macros.
Adapted from the proxy app from Codevault.
This could be a good basis for the tuto
degomme [Tue, 26 Feb 2019 10:58:12 +0000 (11:58 +0100)]
Yet again change the way SMPI_SAMPLE_MACRO works
There is no need anymore to have the body of the loop inside the macro. Kudos to Arnaud L for the ideas.
now usage is just turning
for(x;y;z) into SMPI_SAMPLE_GLOBAL(x,y,z,iters,thres)
Time injection will be done only once for all the section, speeding up the simulation.
TODO : iterator value will not be correct at the end of the loop for now.
Not important if iterator is local to the loop, but may be annoying if not.
Frederic Suter [Tue, 26 Feb 2019 10:28:47 +0000 (11:28 +0100)]
fix (#324)
Throw a HostFailureException when one tries to create (or attach) an
actor an a host that is not on.
If this happens during the parsing of the deployment file, just let it
go.
for MSG, we could die if this happens (we don't for now)
Arnaud Giersch [Mon, 25 Feb 2019 22:22:10 +0000 (23:22 +0100)]
Build still broken with ld 2.31.1. Check only version for gcc.
Arnaud Giersch [Mon, 25 Feb 2019 13:58:10 +0000 (14:58 +0100)]
[sonar] Improve Cognitive Complexity.
Arnaud Giersch [Mon, 25 Feb 2019 13:39:22 +0000 (14:39 +0100)]
NO_MAX_DURATION is a special value, use (in)equality for testing.
Arnaud Giersch [Mon, 25 Feb 2019 13:20:22 +0000 (14:20 +0100)]
Move common test to Action::update_max_duration.
Arnaud Giersch [Sat, 23 Feb 2019 13:31:46 +0000 (14:31 +0100)]
Kill now unused functions SIMIX_mutex_{un}ref.
Arnaud Giersch [Sat, 23 Feb 2019 13:31:16 +0000 (14:31 +0100)]
Convert last call to SIMIX_mutex_unref.
Frederic Suter [Mon, 25 Feb 2019 18:09:49 +0000 (19:09 +0100)]
fix last issues
+ counter_ is used by heaps, use id_ instead
+ fix dumb find/replace
Frederic Suter [Mon, 25 Feb 2019 16:10:19 +0000 (17:10 +0100)]
end objectification of MSG tasks
Frederic Suter [Mon, 25 Feb 2019 15:48:49 +0000 (16:48 +0100)]
mv counter from msg_task_t to simgrid::msg::Task
this was the last field, MSG tasks are now objects
have to remove the useless layer now!
Frederic Suter [Mon, 25 Feb 2019 15:30:39 +0000 (16:30 +0100)]
mv data from msg_task_t to simgrid::msg::Task
Frederic Suter [Mon, 25 Feb 2019 15:14:00 +0000 (16:14 +0100)]
simplify these tests
Frederic Suter [Mon, 25 Feb 2019 14:48:36 +0000 (15:48 +0100)]
mv category from msg_task_t to simgrid::msg::Task
Frederic Suter [Mon, 25 Feb 2019 14:19:50 +0000 (15:19 +0100)]
move name from msg_task_t to simgrid::msg::Task
Frederic Suter [Mon, 25 Feb 2019 14:16:32 +0000 (15:16 +0100)]
do not promote bad practices: use "accessor" to get task name
Frederic Suter [Mon, 25 Feb 2019 13:16:57 +0000 (14:16 +0100)]
objectify simdata_task_t
Frederic Suter [Mon, 25 Feb 2019 10:44:47 +0000 (11:44 +0100)]
priority and bound of MSG tasks can only be set BEFORE execution
this is the rule for S4U, should be the same for MSG.
BTW, the behavior of the LMM is likely to be confused by such dynamic
changes during execution.
Side effect: we should remove the setters in ExecImpl, but there are
used by two simcalls that are tagged as deprected with v3.25
Frederic Suter [Mon, 25 Feb 2019 10:28:36 +0000 (11:28 +0100)]
source is sender's host. One field is enough
Frederic Suter [Sat, 23 Feb 2019 12:46:01 +0000 (13:46 +0100)]
play with (parallel) execs. still not satisfying
Frederic Suter [Sat, 23 Feb 2019 11:27:27 +0000 (12:27 +0100)]
SIMIX_mutex_{un}ref become MutexImpl::{un}ref
Frederic Suter [Sat, 23 Feb 2019 11:27:13 +0000 (12:27 +0100)]
dont call HANDLER
Frederic Suter [Sat, 23 Feb 2019 11:13:13 +0000 (12:13 +0100)]
please sonar
Arnaud Giersch [Fri, 22 Feb 2019 21:28:57 +0000 (22:28 +0100)]
Merge branch 'master' of framagit.org:simgrid/simgrid
Frederic Suter [Fri, 22 Feb 2019 21:15:05 +0000 (22:15 +0100)]
make destructor public
Arnaud Giersch [Fri, 22 Feb 2019 21:07:01 +0000 (22:07 +0100)]
Fix build error with mingw.
Frederic Suter [Fri, 22 Feb 2019 20:32:54 +0000 (21:32 +0100)]
do not use xbt_mutex_t in SMPI
Frederic Suter [Fri, 22 Feb 2019 18:13:15 +0000 (19:13 +0100)]
convert maestro-set to S4U
Frederic Suter [Fri, 22 Feb 2019 14:55:50 +0000 (15:55 +0100)]
dumb me.
Frederic Suter [Fri, 22 Feb 2019 13:14:07 +0000 (14:14 +0100)]
deprecate SIMIX_process_{a,de}tach
* replaced by ActorImpl::{a,de}tach
* add sg_actor_{a,de}tach to the C API of actors
* MSG_process_{a,de}tach go to msg_legacy
Frederic Suter [Fri, 22 Feb 2019 13:04:04 +0000 (14:04 +0100)]
forgot that one
Frederic Suter [Fri, 22 Feb 2019 12:15:37 +0000 (13:15 +0100)]
stop using old simcalls in our own code
Frederic Suter [Fri, 22 Feb 2019 11:43:27 +0000 (12:43 +0100)]
snake casing
Frederic Suter [Fri, 22 Feb 2019 11:29:42 +0000 (12:29 +0100)]
trim instr_msg code
Frederic Suter [Fri, 22 Feb 2019 11:28:01 +0000 (12:28 +0100)]
use TASK_CANCELED rather than HOST_FAILURE for CancelExeption
Frederic Suter [Fri, 22 Feb 2019 11:08:29 +0000 (12:08 +0100)]
Merge branch 'master' of https://framagit.org/simgrid/simgrid
Arnaud Giersch [Fri, 22 Feb 2019 10:03:56 +0000 (11:03 +0100)]
Throw exception when comm was canceled.
Arnaud Giersch [Fri, 22 Feb 2019 10:02:35 +0000 (11:02 +0100)]
Handle CancelException in MSG_{comm,test} too.
Arnaud Giersch [Fri, 22 Feb 2019 10:01:45 +0000 (11:01 +0100)]
MSG is a C API and should not throw.
Frederic Suter [Thu, 21 Feb 2019 20:47:17 +0000 (21:47 +0100)]
remove doublons caused by extra pop
Frederic Suter [Thu, 21 Feb 2019 20:36:20 +0000 (21:36 +0100)]
remove useless code
this is handled by callbacks in instr-platform now
Frederic Suter [Thu, 21 Feb 2019 19:32:54 +0000 (20:32 +0100)]
Merge branch 'master' of https://framagit.org/simgrid/simgrid
Frederic Suter [Thu, 21 Feb 2019 19:32:04 +0000 (20:32 +0100)]
use more s4u calls in MSG
One more step to transform MSG into a S4U wrapper \o/
Frederic Suter [Thu, 21 Feb 2019 19:31:46 +0000 (20:31 +0100)]
revalidate tesh file
Frederic Suter [Thu, 21 Feb 2019 19:29:21 +0000 (20:29 +0100)]
fix some issues with Cancel
* Comm::cancel can be called when there is no pimpl
* if we wait for a canceled activity we can return not let the
impossible happen.
Arnaud Giersch [Thu, 21 Feb 2019 13:54:43 +0000 (14:54 +0100)]
Parameter is a boolean.
Arnaud Giersch [Wed, 20 Feb 2019 22:02:48 +0000 (23:02 +0100)]
Don't strip last component of cwd.
Frederic Suter [Wed, 20 Feb 2019 17:40:21 +0000 (18:40 +0100)]
damned picky clang
Frederic Suter [Wed, 20 Feb 2019 17:33:30 +0000 (18:33 +0100)]
Merge branch 'master' of https://framagit.org/simgrid/simgrid
Frederic Suter [Wed, 20 Feb 2019 17:31:27 +0000 (18:31 +0100)]
a few simplifications
Frederic Suter [Wed, 20 Feb 2019 17:19:22 +0000 (18:19 +0100)]
replace another old simcall in MSG
Frederic Suter [Wed, 20 Feb 2019 16:04:52 +0000 (17:04 +0100)]
save a cast
Frederic Suter [Wed, 20 Feb 2019 15:48:31 +0000 (16:48 +0100)]
modernize a simcall in MSG
Arnaud Giersch [Wed, 20 Feb 2019 15:12:02 +0000 (16:12 +0100)]
(Hope to) fix number of cores for VMs.
The bug was apparently introduced by commit
5a469c9dca9ce25cee1a52682d7eb7bbd736a49b.
Frederic Suter [Wed, 20 Feb 2019 14:02:02 +0000 (15:02 +0100)]
cleanups and uniformization in Activity headers
Arnaud Giersch [Wed, 20 Feb 2019 14:03:16 +0000 (15:03 +0100)]
This is a CommImpl*.
Frederic Suter [Wed, 20 Feb 2019 13:08:55 +0000 (14:08 +0100)]
move a function to a righter place
Frederic Suter [Wed, 20 Feb 2019 13:00:37 +0000 (14:00 +0100)]
prevent segfault when DEBUG is activated
degomme [Wed, 20 Feb 2019 10:54:34 +0000 (11:54 +0100)]
Change the syntax of SMPI_SAMPLE_* macros.
To handle the end of the computing loop when sampling is still on, we need to wrap it.
This replaces this syntax
for(k = 1; k <= np; k++) { SMPI_SAMPLE_GLOBAL(0.25 * np, 0.03) {
where the macro had no idea of the loop conditions
by this
SMPI_SAMPLE_GLOBAL(k = 1, k <= np, k++, 0.25 * np, 0.03,
{...}
)
syntax, where the body of loop is itself a parameter. This is not perfect, and may change soon. But now we can exit gracefully the sampling whenever the upper loop exits.