Augustin Degomme [Fri, 12 Dec 2014 15:46:01 +0000 (16:46 +0100)]
Patch by F.Chaix : add two "new" log appender methods : split and roll
split will create new files when a specified size is reached
roll will overwrite the file when this size is reached
example syntax is : --log=root.appender:splitfile:10000:myfilename_%.txt
The % is a wildcard that will be replaced by the number of the file. If no % is present, it will be at the end
Augustin Degomme [Wed, 10 Dec 2014 13:25:01 +0000 (14:25 +0100)]
(try to) avoid looping forever, temporarily.
This value was 10 before, and was set to 3 recently, but weirdly this caused vm migration simulations to loop forever.
It works with an infinite timeout, but the message is lost with a few values (1,2 ,3, 6, 9 were tested and failed, other ones up to 13 at least do succeed), while succeeding with other ones (after a few hundred timeouts, so this seems to be working)
So if an MSG expert sees this and can find the problem here ..
Test should still fail with this patch, but just because teshes were not requalified yet
Gabriel Corona [Fri, 5 Dec 2014 15:05:50 +0000 (16:05 +0100)]
[mc] Multiple .so support for region snapshots
The region snapshoting logic can handle a variable number of .so
files:
* add more informations to the snapshot regions,
* the type (heap, library/executable);
* the correspoding library/executable;
* the type of storage (dense/flat, chunked/sparse or privatised)
and the type-specific variables are defined in an enum
(variant/tagged enum).
* SMPI privatisation snapshot regions are stored as children of a
parent snapshot region
Limitation:
* we might want to use a more modular/extensible approach OO for the
snapshot region storage type instead of variant-based approach;
* SMPI can currently only handle privatisation for the local
variables of the executable so this is only supported in the MC as
well for this reason but otherwise the MC is ready to support the
SMPI privatisation of libraries.
Add MPI_Win_post, MPI_Win_start, MPI_Win_complete, and MPI_Win_wait support.
This is the second (out of 3) of the classic MPI RMA synchronization methods.
This version is naive and may not be what real MPI lib do, as the standard lets the implementer chose the behavior of theses calls.
Gabriel Corona [Thu, 30 Oct 2014 13:39:17 +0000 (14:39 +0100)]
[mc] Initial support MC record/replay
The idea is to record an execution path in MC mode inorder to be able
to replay it outside of the MC (event with a non-MC build). Some very
basic (an unobtrusive) MC code is compiled even when MC is disabled.
Adrien Lebre [Fri, 28 Nov 2014 16:29:16 +0000 (17:29 +0100)]
merge msg_vm.c - adrien (please note that there is one line (destruction of the tx_process) where I don't not remind whether it is usefull or not... this can lead to a crash unfortunately, I will fix it later)
Gabriel Corona [Mon, 24 Nov 2014 15:03:10 +0000 (16:03 +0100)]
[mc] Test if the stack-cleaner has any effect
In order to test this:
* we compile the same test program with and without the stack cleaner
(`-fstack-cleaner`, `-fno-stack-cleaner`);
* in this program, we move random bytes in the stack;
* we expect the stack-cleaner to zero them out.
This test in only used if the configure stack-cleaner is detected to
support the `-fstack-cleaner` CLI option (it is the stack-cleaner
compiler wrapper).
gabriel corona [Thu, 20 Nov 2014 15:06:21 +0000 (16:06 +0100)]
Temporarily disable an option
The option somehow changes the results in the MC from previous
experiments. It is disabled temporarily in this commit in order to be
able to reproduce those results with the new commits.
degomme [Mon, 17 Nov 2014 22:42:46 +0000 (23:42 +0100)]
Fix problem with unknown datatypes in replay/tracing.
When datatype was unknown to replay, it was replayed as MPI_BYTE.
This modification adds a parameter to encode_datatype, to tell tracing that the datatype size has to be taken into account in the count parameter
This results in the fact that a message of count*datatype_size being replayed as a message of (count*datatype_size)*sizeof(MPI_BYTE), which is the same.
This is not a perfect or elegant solution, but :
- it works.
- it handles manually created datatypes
- it doesn't break previously generated replay files
- it avoids testing each time 50 different datatypes (see encode_datatype function)
- the new parameter avoids doing strcmp with "-1" at each time, performance should not be too bad
Gabriel Corona [Mon, 17 Nov 2014 14:34:34 +0000 (15:34 +0100)]
[mm] Disable HAVE_GNU_LD code in order to get rid of the junkarea
The HAVE_GNU_LD mode of mmalloc delegates in some cases to standard
malloc()/free() which are resolved with dlsym(). This cause some
bootstrap problems which are only resolved with the junkarea: the
junkarea is regularly broken when adding dependencies because the
junkarea is then too small.
By disabling the HAVE_GNU_LD path, we get rid of the junkarea hack.