Arnaud Giersch [Fri, 3 Feb 2012 10:34:23 +0000 (11:34 +0100)]
Add missing dependency for smpi_traced_simple.
Arnaud Giersch [Thu, 2 Feb 2012 20:56:08 +0000 (21:56 +0100)]
Another %ld -> %zu fix.
Martin Quinson [Thu, 2 Feb 2012 20:44:21 +0000 (21:44 +0100)]
TODO--: the 'type' of each mmalloc block is granted to be uptodate at every point
Tomorrow, I'll add the fragment metadatas, and the backtraces.
For that, I'll waste a lot of space by adding a static tables to the
malloc_info structure, where the size of that table is the maximal
amount of fragments per block.
Something like BLOCKSIZE/sizeof(struct list) since mmalloc refuses to
allocate smaller blocks (to ensure that we can enlist free fragments).
This implementation of malloc will definitely not be something that
you want to use when not forced to do so to get the model-checking
working. But it will provide all the information that MC needs.
Martin Quinson [Thu, 2 Feb 2012 20:55:53 +0000 (21:55 +0100)]
Merge branch 'master' of scm.gforge.inria.fr:/gitroot/simgrid/simgrid into LLL
Martin Quinson [Thu, 2 Feb 2012 20:41:32 +0000 (21:41 +0100)]
also enforce that the freed block were marked as used before doing so. Theses stats should be trustable now
Martin Quinson [Thu, 2 Feb 2012 20:14:25 +0000 (21:14 +0100)]
there were no difference between __mmalloc_free and mfree anymore; merge them
Martin Quinson [Thu, 2 Feb 2012 20:08:51 +0000 (21:08 +0100)]
improve the doc to reflect recent changes (and we already have the actual size of blocks)
Martin Quinson [Thu, 2 Feb 2012 19:43:32 +0000 (20:43 +0100)]
ensure that free block are marked as such
Martin Quinson [Thu, 2 Feb 2012 16:45:21 +0000 (17:45 +0100)]
Simplify the malloc_info structure containing the metadata of a given block in mmalloc
* Less structures in union in structure in union inception madness
We're using a less portable anonymous union, but gcc handles that
since maybe 15 years, so that should be cool.
* We can now determine from looking at it whether the block is busy or
free, without having to search in which list the block is.
That was useles to other usages of mmalloc, but this is very
interesting when comparing heaps.
Moreover, it comes for free: it has exactly the same (memory) cost
when the block is busy, and we have a plenty of place in the block
to store that this it free when it is actually free.
Please note that this information is not updated when the block is
freed yet. (splitting the commit just in case someone tries to read it
later: this one is almost automatic refactoring)
Martin Quinson [Thu, 2 Feb 2012 16:20:50 +0000 (17:20 +0100)]
document one more function
unknown [Thu, 2 Feb 2012 15:57:19 +0000 (16:57 +0100)]
Add missing flag (X86 or AMD) to test windows functions
unknown [Wed, 25 Jan 2012 13:19:07 +0000 (14:19 +0100)]
Don't import smpi binaries on windows and set environment variables on current user
unknown [Wed, 25 Jan 2012 13:18:23 +0000 (14:18 +0100)]
Don't need to do a distrib on win32
Martin Quinson [Thu, 2 Feb 2012 15:55:50 +0000 (16:55 +0100)]
I think I understood how mmalloc works. Now, I'll do what we need in there
Martin Quinson [Thu, 2 Feb 2012 15:25:31 +0000 (16:25 +0100)]
simply reindent
Martin Quinson [Thu, 2 Feb 2012 15:24:04 +0000 (16:24 +0100)]
who needs aligned mallocs anyway?
Martin Quinson [Thu, 2 Feb 2012 15:20:32 +0000 (16:20 +0100)]
further little clarifications in mmalloc comments
Martin Quinson [Thu, 2 Feb 2012 14:41:34 +0000 (15:41 +0100)]
various cosmetics and comments improvements
Martin Quinson [Thu, 2 Feb 2012 14:12:20 +0000 (15:12 +0100)]
normalize the function names wrt to the rest of XBT
Martin Quinson [Thu, 2 Feb 2012 14:07:10 +0000 (15:07 +0100)]
inline a function used at only one location.
I'm not sure that the lisibility gain is very high, but at least it
makes clear that this functionnality is used only here.
Martin Quinson [Thu, 2 Feb 2012 14:00:15 +0000 (15:00 +0100)]
cosmetics and kill a now undeclared function prototype
Martin Quinson [Thu, 2 Feb 2012 13:53:54 +0000 (14:53 +0100)]
kill an unused/undocumented/un-understood function
Martin Quinson [Thu, 2 Feb 2012 13:23:23 +0000 (14:23 +0100)]
group together all functions speaking of module and objects init/fini
Martin Quinson [Thu, 2 Feb 2012 13:16:13 +0000 (14:16 +0100)]
merge two files (I'll ignore both of these functions anyway)
Arnaud Giersch [Wed, 1 Feb 2012 21:21:47 +0000 (22:21 +0100)]
Revert "Reset t_simdata->comm after comm is over."
This reverts commit
1380f1a22147312c119055320c6ca87d72837598.
Looking at cdash, it is clearly wrong... sorry for the noise.
Arnaud Giersch [Wed, 1 Feb 2012 16:41:51 +0000 (17:41 +0100)]
smpi_mpi_request_free expects an MPI_request*.
Arnaud Giersch [Wed, 1 Feb 2012 16:04:45 +0000 (17:04 +0100)]
These free's are buggy.
AFAICT, it's the responsibility of smpi_mpi_waitall to free the
requests.
Arnaud Giersch [Wed, 1 Feb 2012 15:41:03 +0000 (16:41 +0100)]
smpirun: report exit status.
Martin Quinson [Wed, 1 Feb 2012 17:01:00 +0000 (18:01 +0100)]
kill dupplicated code between legacy interface and actual implementations
Martin Quinson [Wed, 1 Feb 2012 16:36:58 +0000 (17:36 +0100)]
Merge branch 'master' of scm.gforge.inria.fr:/gitroot/simgrid/simgrid
Martin Quinson [Wed, 1 Feb 2012 16:30:58 +0000 (17:30 +0100)]
Simplify the mmalloc library further
* Stop playing with void* for the heap descriptors and introduce the
xbt_mheap_t datatype for that.
* Don't try to make it work when mmalloc and friends are called with
NULL as a first argument.
I added a pimple that mmalloc_preinit returns the default mhead after
creating it to simplify the code of the legacy functions that check
that this default mhead exist or create it before using it.
This extra check should be useless if mmalloc_preinit were called soon
enough since it's in the critical path, but the performance of
model-checking is not a concern yet: only getting something working
matters for now.
Martin Quinson [Wed, 1 Feb 2012 15:30:15 +0000 (16:30 +0100)]
I finally understood what this function is good for
Martin Quinson [Wed, 1 Feb 2012 15:20:45 +0000 (16:20 +0100)]
cosmetics and comment improvement
Martin Quinson [Wed, 1 Feb 2012 15:14:36 +0000 (16:14 +0100)]
we don't need any stats about the amount of free chunks and such
Martin Quinson [Wed, 1 Feb 2012 15:09:27 +0000 (16:09 +0100)]
errno were never updated anyway
Martin Quinson [Wed, 1 Feb 2012 15:03:54 +0000 (16:03 +0100)]
cosmetics and comment improvements
Martin Quinson [Wed, 1 Feb 2012 14:56:58 +0000 (15:56 +0100)]
rename sup-mmap.c into mmorecore.c and simplify the code since we want no more than one core provider
Martin Quinson [Wed, 1 Feb 2012 14:48:55 +0000 (15:48 +0100)]
kill the sbrk-based morecore: we'll never use less than two heaps when using mmalloc
Martin Quinson [Wed, 1 Feb 2012 14:47:45 +0000 (15:47 +0100)]
move a global definition so that we can kill the sbrk stuff: we'll never use it
Martin Quinson [Wed, 1 Feb 2012 14:40:07 +0000 (15:40 +0100)]
kill little useless things in mmalloc. Still searching how to do the Big Cleanup on that code
Martin Quinson [Wed, 1 Feb 2012 14:25:05 +0000 (15:25 +0100)]
kill the standard hooks of mmalloc: we will change the implementation directly, not declare hooks
Martin Quinson [Wed, 1 Feb 2012 14:17:52 +0000 (15:17 +0100)]
Merge branch 'master' of scm.gforge.inria.fr:/gitroot/simgrid/simgrid
Arnaud Giersch [Wed, 1 Feb 2012 14:11:55 +0000 (15:11 +0100)]
Reset t_simdata->comm after comm is over.
Fixes a segfault with chord on 100000 hosts, where the backtrace is:
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7b2bd2f in SIMIX_rdv_remove (comm=0x40bd4fd0, rdv=0x0) at ./src/simix/smx_network.c:117
117 xbt_fifo_remove(rdv->comm_fifo, comm);
(gdb) bt
#0 0x00007ffff7b2bd2f in SIMIX_rdv_remove (comm=0x40bd4fd0, rdv=0x0) at ./src/simix/smx_network.c:117
#1 SIMIX_comm_cancel (action=0x40bd4fd0) at ./src/simix/smx_network.c:754
#2 0x00007ffff7b4046e in SIMIX_simcall_pre (simcall=0x613c90, value=0) at ./src/simix/smx_smurf.c:126
#3 0x00007ffff7b407c6 in SIMIX_simcall_push (self=0x613c00) at ./src/simix/smx_smurf.c:26
#4 0x00007ffff7a83a8d in simcall_comm_cancel (comm=0x40bd4fd0) at ./src/simix/smx_user.c:830
#5 MSG_task_cancel (task=0x45ba4eb0) at ./src/msg/msg_task.c:223
#6 0x00007ffff7a83bc0 in MSG_task_destroy (task=0x45ba4eb0) at ./src/msg/msg_task.c:187
#7 0x00007ffff7ac3ebb in SIMIX_comm_destroy (action=0x42078370) at ./src/simix/smx_network.c:274
#8 0x00007ffff7a9603c in SIMIX_process_cleanup (process=0x1ce9da60) at ./src/simix/smx_process.c:87
#9 0x00007ffff7b40208 in SIMIX_simcall_pre (simcall=0x1ce9daf0, value=0) at ./src/simix/smx_smurf.c:323
#10 0x00007ffff7b2554e in SIMIX_run () at ./src/simix/smx_global.c:207
#11 0x00007ffff7b256e7 in MSG_main () at ./src/msg/msg_global.c:155
#12 0x000000000040180b in main (argc=3, argv=<optimized out>) at ./examples/msg/chord/chord.c:918
Git bisect identified commit
6dcde87 as culprit (Use isend
instead of send to set the simdata->comm so that get_remaining
can work.)
Arnaud Giersch [Wed, 1 Feb 2012 08:36:03 +0000 (09:36 +0100)]
Add more thorough tests for parmaps.
* all modes are tested;
* the "basic test" does some computations, and checks the results;
* the "extended test" tries to verify that all threads are working.
Arnaud Giersch [Wed, 1 Feb 2012 08:21:45 +0000 (09:21 +0100)]
Parmap review.
* synchronizations are made a bit simpler;
* helper functions are renamed for more clarity;
* synchronization at the end of xbt_parmap_new() is removed;
* the working loop is made faster by manually inlining xbt_parmap_next();
* finally, the posix mode is fixed.
Arnaud Giersch [Tue, 31 Jan 2012 18:11:23 +0000 (19:11 +0100)]
Add parmap_bench.c.
Arnaud Giersch [Wed, 1 Feb 2012 08:00:35 +0000 (09:00 +0100)]
Remove static function attribute.
Fixes build error:
./src/surf/network.c:376:12: error: static declaration of ‘net_get_link_latency_limited’ follows non-static declaration
./src/surf/surf_private.h:81:5: note: previous declaration of ‘net_get_link_latency_limited’ was here
navarro [Tue, 31 Jan 2012 20:51:09 +0000 (21:51 +0100)]
Use m_file_t instead of m_file_t*
Arnaud Giersch [Tue, 31 Jan 2012 21:07:41 +0000 (22:07 +0100)]
Remove duplicate declaration for smx_file_t.
Arnaud Giersch [Tue, 31 Jan 2012 21:01:25 +0000 (22:01 +0100)]
Remove extern declaration for gras_opt_trp_nomoredata_on_close.
Arnaud Giersch [Tue, 31 Jan 2012 17:59:27 +0000 (18:59 +0100)]
Fix depency information for ddt_parse.yy.c (maintainer mode).
Arnaud Giersch [Tue, 31 Jan 2012 17:08:26 +0000 (18:08 +0100)]
Fix source for generated files.
Arnaud Giersch [Tue, 31 Jan 2012 17:07:25 +0000 (18:07 +0100)]
memcheck_tests: user_variables.tesh now exists.
Martin Quinson [Tue, 31 Jan 2012 16:42:36 +0000 (17:42 +0100)]
Merge branch 'master' of scm.gforge.inria.fr:/gitroot/simgrid/simgrid
Christophe Thiéry [Tue, 31 Jan 2012 16:01:30 +0000 (17:01 +0100)]
Move datadesc and TCP sockets from GRAS to XBT.
XBT supports sockets with explicit choice of the transport plugin.
XBT provides only one transport plugin: TCP (i.e. real sockets) and
allows other layers to write their custom plugins.
GRAS implements such custom plugins: simulated sockets and file sockets.
TCP sockets only existed in GRAS RL mode. They can now also be used in
GRAS SG mode.
More pieces of GRAS remain to be moved to XBT before TCP sockets can
also be used outside GRAS (e.g. in SIMIX 3, one day, to distribute the
simulation).
Lucas Schnorr [Tue, 31 Jan 2012 16:03:57 +0000 (17:03 +0100)]
[trace] add missing tesh to test user variables tracing
Arnaud Giersch [Tue, 31 Jan 2012 15:48:14 +0000 (16:48 +0100)]
memcheck_tests: regenerate.
Arnaud Giersch [Tue, 31 Jan 2012 15:46:01 +0000 (16:46 +0100)]
generate_memcheck_tests.pl: don't fail if tesh file doesn't exist.
Martin Quinson [Tue, 31 Jan 2012 15:27:49 +0000 (16:27 +0100)]
Kill some unused features of mmalloc
- keys, which allow to store data directly in the malloc descriptor
- tracing, which displays what happends using the hooks. In addition
of being useless to us, it contained a FIXME indicating that this
implementation was partial.
Arnaud Giersch [Tue, 31 Jan 2012 15:44:49 +0000 (16:44 +0100)]
generate_memcheck_tests.pl: correctly skip commented lines.
Arnaud Giersch [Tue, 31 Jan 2012 15:07:02 +0000 (16:07 +0100)]
Fix default value for contexts/nthreads (only the help message is affected).
Arnaud Giersch [Thu, 26 Jan 2012 15:16:28 +0000 (16:16 +0100)]
Use simpler names for tests on dicts.
Make them easier to select when running testall.
Arnaud Giersch [Tue, 24 Jan 2012 15:27:56 +0000 (16:27 +0100)]
Reinitialize pointer after free.
Fixes test tesh-simdag-reinit-costs.
Arnaud Giersch [Mon, 23 Jan 2012 21:06:43 +0000 (22:06 +0100)]
Update timings for 32bits too.
Arnaud Giersch [Mon, 23 Jan 2012 10:37:58 +0000 (11:37 +0100)]
Regenerate files with latest flexml.
navarro [Tue, 31 Jan 2012 14:38:27 +0000 (15:38 +0100)]
Rewrite file example for use MSG API
navarro [Tue, 31 Jan 2012 14:37:21 +0000 (15:37 +0100)]
Add MSG functions for file.
Add file msg_io.c
navarro [Tue, 31 Jan 2012 14:01:40 +0000 (15:01 +0100)]
Implement file open read and stat in simix.
navarro [Tue, 31 Jan 2012 13:22:07 +0000 (14:22 +0100)]
Make the commit on file read and write compile with all warning
navarro [Tue, 31 Jan 2012 13:11:57 +0000 (14:11 +0100)]
Sorry change SIMCALL_FILE_READ FOR SIMCALL_FILE_WRITE into simcall_file_write
navarro [Tue, 31 Jan 2012 13:08:17 +0000 (14:08 +0100)]
Add an example for file
navarro [Tue, 31 Jan 2012 13:04:30 +0000 (14:04 +0100)]
Implement functions file_read and file_open into simix like fread and fwrite in posix
Marion Guthmuller [Mon, 30 Jan 2012 16:31:01 +0000 (17:31 +0100)]
model-checker : merge conflict resolved
Marion Guthmuller [Mon, 30 Jan 2012 16:29:00 +0000 (17:29 +0100)]
remove function MC_take_snapshot_to_restore_liveness
Marion Guthmuller [Mon, 30 Jan 2012 16:27:41 +0000 (17:27 +0100)]
.
Martin Quinson [Mon, 30 Jan 2012 14:54:07 +0000 (15:54 +0100)]
ignore some generated files
Martin Quinson [Mon, 30 Jan 2012 14:52:34 +0000 (15:52 +0100)]
kill some cruft asking to die
Martin Quinson [Mon, 30 Jan 2012 14:44:46 +0000 (15:44 +0100)]
this type name is usable as is, so add _t postfix (s_name is only for stuff that mandates the use of 'struct' keyword)
Martin Quinson [Mon, 30 Jan 2012 14:28:00 +0000 (15:28 +0100)]
and now, I try to compile my code before comitting (not my fault, they said 'commit soon, commit often' :-P)
Martin Quinson [Mon, 30 Jan 2012 14:23:40 +0000 (15:23 +0100)]
add proper copyright headers to the MC files
Martin Quinson [Mon, 30 Jan 2012 14:16:25 +0000 (15:16 +0100)]
mv src/mc/private.h src/mc/mc_private.h
Marion Guthmuller [Mon, 30 Jan 2012 13:12:15 +0000 (14:12 +0100)]
model-checker : fix compilation error
Marion Guthmuller [Mon, 30 Jan 2012 12:44:30 +0000 (13:44 +0100)]
merge conflict resolved
Marion Guthmuller [Mon, 30 Jan 2012 12:40:36 +0000 (13:40 +0100)]
model-checker : new function (rdv_points_compare) to compare rdv_points between two execution states
Marion Guthmuller [Mon, 30 Jan 2012 12:38:50 +0000 (13:38 +0100)]
model-checker : more debug information
Marion Guthmuller [Mon, 30 Jan 2012 12:35:13 +0000 (13:35 +0100)]
model-checker : add address of std_heap into debug informations for comparison of heap
Marion Guthmuller [Mon, 30 Jan 2012 12:32:16 +0000 (13:32 +0100)]
model-checker : get rdv_points in simix for comparison between two execution states
Marion Guthmuller [Sun, 29 Jan 2012 13:43:21 +0000 (14:43 +0100)]
model-checker : more debug informations in function mmalloc_compare_mdesc
Martin Quinson [Fri, 27 Jan 2012 21:16:39 +0000 (22:16 +0100)]
document last changes
Martin Quinson [Fri, 27 Jan 2012 21:15:09 +0000 (22:15 +0100)]
auto-set the amount of threads when the requested amount is negative
Martin Quinson [Fri, 27 Jan 2012 21:04:37 +0000 (22:04 +0100)]
really kill that file
Martin Quinson [Fri, 27 Jan 2012 20:36:53 +0000 (21:36 +0100)]
Revert "Put PROCESSOR_COUNT in gras_config.h"
We need the runtime amount of cores, not the compile-time one.
This reverts commit
4ca11874986e1a694eb4183f8656ccac844cf3ce.
Martin Quinson [Fri, 27 Jan 2012 20:36:13 +0000 (21:36 +0100)]
Revert "Add a script to detect the number of core."
There is no use of detecting the amount of cores at compile time. We
need the amount of cores at runtime.
This reverts commit
39b99d7659c7f2ecd789c141a8fced9bf9684cff.
Martin Quinson [Fri, 27 Jan 2012 20:32:42 +0000 (21:32 +0100)]
add a function xbt_os_get_numcores()
Martin Quinson [Fri, 27 Jan 2012 19:16:32 +0000 (20:16 +0100)]
document lastest changes
Martin Quinson [Fri, 27 Jan 2012 19:14:40 +0000 (20:14 +0100)]
enable SMPI by default (and rewrite the cmake doc)
Martin Quinson [Fri, 27 Jan 2012 17:37:49 +0000 (18:37 +0100)]
add a link to aespinosa's work on vagrant to get ruby working on Windows
Christophe Thiéry [Thu, 26 Jan 2012 07:27:45 +0000 (08:27 +0100)]
Regenerate timings of Lua tesh files
Christophe Thiéry [Wed, 25 Jan 2012 17:56:52 +0000 (18:56 +0100)]
SIMIX refactoring: replace 'request' by a more precise term: 'simcall'
All functions that make a system call (or simcall) are now simcall_*
(instead of SIMIX_req_*). They all interrupt the execution flow until
the kernel answers the simcall.
Let's hope that SIMIX will be easier to understand ;)
Christophe Thiéry [Wed, 25 Jan 2012 16:42:23 +0000 (17:42 +0100)]
Rename SIMIX files