1
1
Граф коммитов

151 Коммитов

Автор SHA1 Сообщение Дата
Brian Barrett
566a050c23 Next step in the project split, mainly source code re-arranging
- move files out of toplevel include/ and etc/, moving it into the
    sub-projects
  - rather than including config headers with <project>/include, 
    have them as <project>
  - require all headers to be included with a project prefix, with
    the exception of the config headers ({opal,orte,ompi}_config.h
    mpi.h, and mpif.h)

This commit was SVN r8985.
2006-02-12 01:33:29 +00:00
Brian Barrett
e3ded6f8cf * add a #define for Galen as to whether or not any memory component was
built.

This commit was SVN r8928.
2006-02-08 00:50:42 +00:00
Brian Barrett
bc22539441 * update the code used when calls are made for every malloc/free in the
ptmalloc2 component - it had bit-rotted a bit.

This commit was SVN r8911.
2006-02-07 00:03:52 +00:00
Brian Barrett
5e6798cb4d * with ptmalloc2, prefer syscall over dlsym for calling the real munmap. This
makes illegal free() calls behave in a much more rational way.  You'll still
  probably die, but your stack trace will not have 3 billion pages of recusion
  inside the memory allocator.
* Fix illegal free in the opal_wrapper code.  basename() returns a string in a
  static buffer, so it shouldn't be free()ed.  It also shouldn't be left around
  so long, as another call to basename() may whack the returned buffer.  So
  leave the free and add a strdup() around the basename() call.
* Turn off some unneeded debugging in the opal_wrapper code that would list the
  comamnd to be run, regardless of the -showme option.

This commit was SVN r8758.
2006-01-19 18:48:58 +00:00
George Bosilca
29684dd800 Remove a warning about an unused variable.
This commit was SVN r8755.
2006-01-19 15:52:17 +00:00
George Bosilca
8b50c3d8c3 Handle systems where the HOME directory is NULL (windows and friends).
A small and ugly workaround the path problem on windows (the absolute
path start with [a-z]: whn : is considered as separator for most of
the environment variables.

This commit was SVN r8746.
2006-01-19 07:05:34 +00:00
George Bosilca
e728fc0c15 I know windows is "different" ... but not at this point !!!
This commit was SVN r8743.
2006-01-19 06:54:23 +00:00
Brian Barrett
17197666bf When heap is shrinking ptmalloc tries to be smart and uses mmap to change
page protection, which causes the pages to be droped, which causes problems
if we don't deregister the pages first.  Since memory is cheap in this case
(it is still usable, should ptmalloc2 want it back, and is limited in size),
we just mprotect the pages instead.  This solves the dropping pages problem,
and doesn't cause even more calls into the cache code.

Thanks to Gleb Natapov for both finding the problem and giving a fix.

This should go to the v1.0 branch

This commit was SVN r8732.
2006-01-18 16:23:52 +00:00
Brian Barrett
17d2c907fc Some changes to better support cross-compiling OMPI:
- fall back to compile test for windows paffinity component
    when cross compiling
  - fall back to platform guess when checking for threads having
    different pids with pthreads (yes on linux, no elsewhere)
  - pass the proper host, target, and build flags to the
    ROMIO configure script

With these changes, cross-compiling should be possible with the exception
of the Fortran 77 and Fortran 90 bindings.  Fortran 77 can be cross-
compiled if cache values are provided for type sizes and alignment.

This commit was SVN r8702.
2006-01-16 04:00:44 +00:00
Brian Barrett
c96f870674 * Merge of wrapper compiler updates from the bwb-wrapper-fix branch (r8690 -
r8698), with changes below:

  - Split wrapper flags into those required for each of the three projects,
    and cleaned up some cruft (including the LIBMPI_EXTRA_*FLAGS) through-
    out the build system
  - Added opal_init_util and opal_finalize_util to allow init / cleanup
    of all the opal code that doesn't require the MCA system
  - Create standalone key=value file parser, based on the one that used
    to be in the mca param parser, so that it can be shared in multiple
    places
  - Add wrapper datafiles for opal, orte, and ompi wrappers, and add
    wrapper compiler with support for all the old features

This commit was SVN r8699.

The following SVN revisions from the original message are invalid or
inconsistent and therefore were not cross-referenced:
  r8690
  r8698
2006-01-16 01:48:03 +00:00
Jeff Squyres
c3cc1d5bbc Avoid false positives in bcheck/valgrind -- there are holes in the
mca_base_param_t struct, and it eventually ends up getting memcpy()'ed 

This commit was SVN r8642.
2006-01-04 22:18:30 +00:00
Brian Barrett
3f6c409164 * Need to specify link order to make sure we grab the right mmap
This commit was SVN r8556.
2005-12-20 00:50:47 +00:00
Brian Barrett
08799e4a48 * Make the format of the --with-BTL options the same for all the BTLs
* Make sure --without-BTL works for all BTLs
* Fix copy-n-paste error in aix timer configrue help string

This should go to the v1.0 branch

This commit was SVN r8554.
2005-12-20 00:47:36 +00:00
Brian Barrett
f993b3a1f0 * 1, 0, they're all the same...
This commit was SVN r8550.
2005-12-19 22:01:56 +00:00
Brian Barrett
7801b9045f temporarily bring back the malloc_hooks code so that Galen and I can do
some regression testing

This commit was SVN r8548.
2005-12-19 21:08:51 +00:00
Brian Barrett
22d058e67c make windows component prefered over linux component. Cygwin provides a
/proc/cpuinfo (which is weird), so the Linux component was getting selected
when on Windows...

This commit was SVN r8543.
2005-12-19 06:55:01 +00:00
Brian Barrett
a5af07cd6b fixes suggested by Ralf for supporting both Libtool 1 and 2 in Open MPI...
This commit was SVN r8538.
2005-12-19 03:10:23 +00:00
George Bosilca
958bba0f99 mca_base_param_find should be exported.
This commit was SVN r8534.
2005-12-17 22:08:02 +00:00
Brian Barrett
5685144e3d * update darwin memory hooks code to recent changes in API
This commit was SVN r8522.
2005-12-16 02:01:38 +00:00
Brian Barrett
b42bb3d8e8 More memory hooks tweaks... Set a flag on callbacks if the allocation /
deallocation came from the allocator (malloc, fee, etc) or somewhere
else (the user calling mmap/munmap, etc).  Going to be used by Galen
to determine if it is worth searching the allocations tree

Set flag if it is possible to intercept mmap (not always possible
due to a circular dependency between mmap, dlsym, and calloc)

This commit was SVN r8521.
2005-12-16 01:12:45 +00:00
Brian Barrett
2a94f693f6 * make sure to actually add the ptmalloc2-specific library dependencies to
LIBADD, so that libtool does it's magic propogation thing...

This commit was SVN r8508.
2005-12-15 18:11:51 +00:00
Jeff Squyres
6bc6178e8d Make the comment explain much more fully what is going on (in typical
Jeff-length).  Also change it such that we also have a lt_dlhandle
type -- even in the case of --disable-dlopen.  Specifically, even in
the case of --disable-dlopen, we still have shell functions that use
an lt_dlhandle parameter, so we need that type, even if <ltdl.h> isn't
used.

This commit was SVN r8507.
2005-12-15 17:47:54 +00:00
Brian Barrett
01e7191c3e * use our memory barriers instead of ptmalloc2's, since it only does the
right thing with gcc on x86.

This commit was SVN r8490.
2005-12-13 16:04:48 +00:00
George Bosilca
30648c55ff First version of the paffinity for Windows. We detect correctly if the
functions are available in the .h file as well as the kernel32.dll but
we generate empty functions.

This commit was SVN r8478.
2005-12-13 06:04:41 +00:00
George Bosilca
3e03a5f702 A better comment I hope ...
This commit was SVN r8477.
2005-12-12 23:39:40 +00:00
George Bosilca
39e8d4ce02 Protect the function definition not the typedef.
This commit was SVN r8475.
2005-12-12 22:33:02 +00:00
George Bosilca
bd0ee62e62 Protect headers and use __WINDOWS__ for Windows code.
This commit was SVN r8468.
2005-12-12 22:01:51 +00:00
George Bosilca
8c71f578da The real timer in Windows is a long long.
This commit was SVN r8467.
2005-12-12 21:52:53 +00:00
George Bosilca
6e5aeab0b5 Remove the dependance to ltdl.h for all the the places where we dont't really need it. Read
the comment for more informations.

This commit was SVN r8466.
2005-12-12 21:51:20 +00:00
Brian Barrett
d8d67b618f don't intercept mmap if we have to use dlsym to get at the real mmap. dlsym
may call calloc(large number), which causes ptmalloc2 to call mmap, which
causes us to try to dlsym for mmap, which leads to looping badness.

This commit was SVN r8461.
2005-12-12 19:38:42 +00:00
George Bosilca
436ef18ec2 Adding high performance timers for windows (the same as for Linux we use the counters from
the processor).

This commit was SVN r8458.
2005-12-12 17:27:48 +00:00
Brian Barrett
6c4ac2299c fix typo in release hooks if calling for every malloc/free
This commit was SVN r8431.
2005-12-10 05:06:52 +00:00
George Bosilca
699653f733 Typo correction.
This commit was SVN r8427.
2005-12-09 05:17:27 +00:00
Brian Barrett
0348d02875 * need to expose posix_memalign so that the one in our ptmalloc2 is used
instead of the one in libc.  Thanks to Gleb Natapov for tracking this
  down.

This commit was SVN r8418.
2005-12-08 18:06:52 +00:00
Brian Barrett
364ca3f075 - Add configure-time switch (--enable-ptmalloc2-opt-sbrk) to control when
the ptmalloc2 memory hooks component triggers callbacks for memory
  allocation / deallocation.  If enabled (the default) it is only when
  memory is actually obtained from or released to the OS (so little
  malloc calls only trigger callbacks if sbrk is called).  If disabled,
  callbacks are triggered every time malloc/free/etc. is called
* It turns out that syscall and mmap aren't good friends due to the return
  type of mmap and some old legacy issues with syscall functions that
  take more than 5 parameters.  For now, default to either loading
  the symbol from glibc using dlsym or using the __m{un,}map functions.
  Thanks to George for finding this.
* Fix some dumb typos in the mmap / munmap catching code

This commit was SVN r8410.
2005-12-08 04:47:03 +00:00
Jeff Squyres
b04f6bf71b Fix a segv; it's possible to have an empty string parameter (""), such
that opal_argv_split() will return an empty array.  So test for that
case before trying to iterate through the array.

This commit was SVN r8396.
2005-12-06 20:06:40 +00:00
George Bosilca
1fe691c1f5 powerpc-apple-darwin8-gcc-4.0.0 catch 2 warnings about uninitialized usage. Reading the code I have to agree with it,
even if it's highly improbable that it could happens in real life. But we never know ...

This commit was SVN r8393.
2005-12-06 18:44:52 +00:00
George Bosilca
9efd0e0813 Include the memoryhooks.h after the standard include files to insure that all expected types are
correctly defined (like size_t).

This commit was SVN r8383.
2005-12-06 05:55:36 +00:00
George Bosilca
23c618ab51 Allow a VPATH build to find the include files.
This commit was SVN r8382.
2005-12-06 05:26:36 +00:00
Brian Barrett
f44bd9e067 * Intercept both allocations and deallocations from ptmalloc2 (including
both mmap and munmap), adjusting the configure script so that the
  component will only be activated on systems that use ptmalloc2 in the
  first place -- ie, Linux
* Remove the malloc_hooks component - it became an unworkable solution
  once threads and such were considered.
* Remove malloc_interpose component - it never worked quite right and
  was not going to be able to intercept malloc, so it wasn't going to
  be useful for OMPI's purposes.
* Update tests a little bit to match recent memory hooks api
  issues - still needs a bit of work.

This commit was SVN r8381.
2005-12-06 00:44:50 +00:00
Brian Barrett
4ada272062 update memory hooks to properly initialize, even if malloc hasn't been
called when the component is initialized...

This commit was SVN r8369.
2005-12-02 00:59:03 +00:00
Brian Barrett
e338d65540 * can't dlsym for calloc, since dlsym calls calloc. So the interpose library
can only really intercept frees :(

This commit was SVN r8351.
2005-12-01 16:01:41 +00:00
Brian Barrett
79bf8843d2 * update memory hooks interface to allow for callbacks on both allocations
and dealllocations, per request from Galen and Tim

This commit was SVN r8303.
2005-11-29 04:46:14 +00:00
Brian Barrett
c6fb3217f8 always include ltdl.h with the full opal path, so that we always grab our
version instead of the (possible) system installed version.

This commit was SVN r8248.
2005-11-23 19:30:12 +00:00
Jeff Squyres
949fbcabc7 A pox on Linux and the convoluted configure tests that it makes me
do.  Really fix the MCA info params this time -- ensure to not use
#define's that may be #undef'ed.

This commit was SVN r8235.
2005-11-22 17:18:14 +00:00
Jeff Squyres
5b49cd81d8 HAVE_CPU_ZERO may not actually be defined.
This commit was SVN r8229.
2005-11-22 13:18:22 +00:00
Jeff Squyres
b2ad2a1619 Save some configure results in MCA read-only params for easier
debugging

This commit was SVN r8209.
2005-11-21 13:26:41 +00:00
Brian Barrett
20cea60b82 * fix "make distclean" error in PML
* turns out (duh!) that there was a reason that the <projectdir>dir
  variable was set in the AM conditional.  If not, stupid directories
  are created and not needed...  duh.

This commit was SVN r8205.
2005-11-20 07:41:09 +00:00
Brian Barrett
8faa1884f0 * The last of the build system optimizations. Combine the component and
component/base Makefile.am files, reducing the time configure spends
  stamping out Makefiles at the end
* Install base_impl.h file when devel-headers are being installed

This commit was SVN r8200.
2005-11-20 01:03:01 +00:00
Brian Barrett
878676218e Rename opal/memory to opal/memoryhooks because XLC++ on Mac OS X is broken.
When compiling C++ code that includes something that looks for the C++
header file "memory" (stupid C++ headers not having .h extensions), it
goes through the header file search path, which includes $(topsrcdir)/opal,
so it finds the directory $(topsrcdir)/opal/memory/ and tries to load
that as the memory header file and all goes downhill.

This commit was SVN r8111.
2005-11-11 00:26:27 +00:00