* move over changes from the /tmp/bwb-memory-hooks/copy-1 into the trunk.
This includes updates to the malloc_hook method and making everything components. This commit was SVN r6852.
Этот коммит содержится в:
родитель
9bcb2989a5
Коммит
1b830beddb
@ -75,7 +75,6 @@ m4_include(config/ompi_setup_cxx.m4)
|
||||
m4_include(config/ompi_setup_f77.m4)
|
||||
m4_include(config/ompi_setup_f90.m4)
|
||||
m4_include(config/ompi_setup_libevent.m4)
|
||||
m4_include(config/ompi_setup_memory.m4)
|
||||
|
||||
m4_include(config/ompi_check_pthread_pids.m4)
|
||||
m4_include(config/ompi_config_pthreads.m4)
|
||||
|
@ -451,7 +451,11 @@ AC_DEFUN([MCA_CONFIGURE_M4_CONFIG_COMPONENT],[
|
||||
rm -f $1/dynamic-mca/$2/$3
|
||||
|
||||
MCA_COMPONENT_BUILD_CHECK($1, $2, $3, [should_build=1], [should_build=0])
|
||||
MCA_COMPONENT_COMPILE_MODE($1, $2, $3, compile_mode)
|
||||
# Allow the component to override the build mode if it really wants to.
|
||||
# It is, of course, free to end up calling MCA_COMPONENT_COMPILE_MODE
|
||||
m4_ifdef([MCA_$2_$3_COMPILE_MODE],
|
||||
[MCA_$2_$3_COMPILE_MODE($1, $2, $3, compile_mode)],
|
||||
[MCA_COMPONENT_COMPILE_MODE($1, $2, $3, compile_mode)])
|
||||
|
||||
# special case - if we are doing a dist, add the component to
|
||||
# the list of all components, even if the build failed. The
|
||||
@ -538,7 +542,7 @@ AC_DEFUN([MCA_COMPONENT_COMPILE_MODE],[
|
||||
framework=$2
|
||||
component=$3
|
||||
|
||||
# Is this component going to built staic or shared? component
|
||||
# Is this component going to built staic or shared? $component
|
||||
# might not be known until configure time, so have to use eval
|
||||
# tricks - can't set variable names at autogen time.
|
||||
str="SHARED_FRAMEWORK=\$DSO_$framework"
|
||||
|
@ -1,92 +0,0 @@
|
||||
dnl
|
||||
dnl Copyright (c) 2004-2005 The Trustees of Indiana University.
|
||||
dnl All rights reserved.
|
||||
dnl Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
|
||||
dnl All rights reserved.
|
||||
dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
dnl University of Stuttgart. All rights reserved.
|
||||
dnl Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
dnl All rights reserved.
|
||||
dnl $COPYRIGHT$
|
||||
dnl
|
||||
dnl Additional copyrights may follow
|
||||
dnl
|
||||
dnl $HEADER$
|
||||
dnl
|
||||
|
||||
AC_DEFUN([OMPI_PTMALLOC_SETUP],[
|
||||
#
|
||||
# Call the top-level OMPI threads setup stuff
|
||||
#
|
||||
OLD_CPPFLAGS="$CPPFLAGS"
|
||||
OLD_LDFLAGS="$LDFLAGS"
|
||||
OLD_LIBS="$LIBS"
|
||||
|
||||
CPPFLAGS="$CPPFLAGS $THREADCPPFLAGS"
|
||||
LDFLAGS="$LDFLAGS $THREADLDFLAGS"
|
||||
LIBS="$LIBS $THREADLIBS"
|
||||
|
||||
if test "`echo $host | grep apple-darwin`" != "" ; then
|
||||
AC_MSG_WARN([*** Using ptmalloc with OS X will result in failure.])
|
||||
AC_MSG_ERROR([*** Aborting to save you the effort])
|
||||
fi
|
||||
|
||||
#
|
||||
# See if we have sbrk prototyped
|
||||
#
|
||||
AC_CHECK_DECL([sbrk], [have_decl_sbrk=1], [have_decl_sbrk=0])
|
||||
AC_DEFINE_UNQUOTED(OMPI_HAVE_DECL_SBRK, $have_decl_sbrk,
|
||||
[Whether we have a declaration for sbrk() or not])
|
||||
|
||||
CPPFLAGS="$OLD_CPPFLAGS"
|
||||
LDFLAGS="$OLD_LDFLAGS"
|
||||
LIBS="$OLD_LIBS"
|
||||
])dnl
|
||||
|
||||
|
||||
AC_DEFUN([OMPI_DARWIN_MALLOC_SETUP],[
|
||||
case "$host" in
|
||||
*apple-darwin*)
|
||||
WRAPPER_EXTRA_LDFLAGS="-Wl,-u -Wl,_ompi_darwin_malloc_linker_hack -Wl,-multiply_defined,suppress -Wl,-force_flat_namespace -Wl,-flat_namespace $WRAPPER_EXTRA_LDFLAGS"
|
||||
LDFLAGS="-Wl,-multiply_defined,suppress $LDFLAGS"
|
||||
;;
|
||||
*)
|
||||
AC_MSG_ERROR([Trying to use Darwin malloc while not on a Darwin system.])
|
||||
;;
|
||||
esac
|
||||
])dnl
|
||||
|
||||
AC_DEFUN([OMPI_MEMORY_SETUP],[
|
||||
|
||||
AC_ARG_WITH(memory-manager,
|
||||
AC_HELP_STRING([--with-memory-manager=TYPE],
|
||||
[Use TYPE for intercepting memory management calls to control memory pinning (TYPE is one of ptmalloc2,none)]),
|
||||
[WANT_MEMORY="$withval"], [WANT_MEMORY="none"])
|
||||
|
||||
AC_MSG_CHECKING([for memory management type])
|
||||
if test "$WANT_MEMORY" = "darwin" ; then
|
||||
AC_MSG_RESULT([Darwin / Mac OS X])
|
||||
OMPI_DARWIN_MALLOC_SETUP
|
||||
OMPI_WANT_DARWIN7MALLOC=1
|
||||
OMPI_WANT_PTMALLOC2=0
|
||||
AC_MSG_ERROR([Darwin memory manager not currently supported])
|
||||
elif test "$WANT_MEMORY" = "ptmalloc2" ; then
|
||||
AC_MSG_RESULT([ptmalloc2])
|
||||
OMPI_PTMALLOC_SETUP
|
||||
OMPI_WANT_DARWIN7MALLOC=0
|
||||
OMPI_WANT_PTMALLOC2=1
|
||||
else
|
||||
AC_MSG_RESULT([none])
|
||||
OMPI_WANT_DARWIN7MALLOC=0
|
||||
OMPI_WANT_PTMALLOC2=0
|
||||
fi
|
||||
|
||||
AC_DEFINE_UNQUOTED([OMPI_WANT_PTMALLOC2], $OMPI_WANT_PTMALLOC2,
|
||||
[Do we want ptmalloc2 support])
|
||||
AM_CONDITIONAL(OMPI_WANT_PTMALLOC2, test "$OMPI_WANT_PTMALLOC2" = "1")
|
||||
|
||||
AC_DEFINE_UNQUOTED([OMPI_WANT_DARWIN7MALLOC], $OMPI_WANT_DARWIN7MALLOC,
|
||||
[Do we want darwin7malloc support])
|
||||
AM_CONDITIONAL(OMPI_WANT_DARWIN7MALLOC, test "$OMPI_WANT_DARWIN7MALLOC" = "1")
|
||||
|
||||
])dnl
|
@ -1338,11 +1338,6 @@ OMPI_CASE_SENSITIVE_FS_SETUP
|
||||
# AIX: FIONBIO in sys/ioctl.h
|
||||
# glibc: memcpy
|
||||
|
||||
#
|
||||
# memory manager hooks
|
||||
#
|
||||
OMPI_MEMORY_SETUP
|
||||
|
||||
# checkpoint results
|
||||
AC_CACHE_SAVE
|
||||
|
||||
@ -1615,12 +1610,12 @@ AC_CONFIG_FILES([
|
||||
opal/event/compat/Makefile
|
||||
opal/event/compat/sys/Makefile
|
||||
opal/memory/Makefile
|
||||
opal/memory/ptmalloc2/Makefile
|
||||
opal/runtime/Makefile
|
||||
opal/threads/Makefile
|
||||
opal/util/Makefile
|
||||
|
||||
opal/mca/Makefile
|
||||
opal/dynamic-mca/Makefile
|
||||
opal/mca/base/Makefile
|
||||
|
||||
orte/Makefile
|
||||
|
@ -40,6 +40,7 @@ libopal_la_LIBADD = \
|
||||
mca/base/libmca_base.la \
|
||||
memory/libopalmemory.la \
|
||||
runtime/libruntime.la \
|
||||
$(MCA_memory_STATIC_LTLIBS) \
|
||||
threads/libthreads.la \
|
||||
util/libopalutil.la
|
||||
libopal_la_DEPENDENCIES = $(libopal_la_LIBADD)
|
||||
|
20
opal/dynamic-mca/Makefile.am
Обычный файл
20
opal/dynamic-mca/Makefile.am
Обычный файл
@ -0,0 +1,20 @@
|
||||
#
|
||||
# Copyright (c) 2004-2005 The Trustees of Indiana University.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
# University of Stuttgart. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
# All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
include $(top_srcdir)/config/Makefile.options
|
||||
|
||||
SUBDIRS = \
|
||||
memory
|
26
opal/dynamic-mca/memory/Makefile.am
Обычный файл
26
opal/dynamic-mca/memory/Makefile.am
Обычный файл
@ -0,0 +1,26 @@
|
||||
#
|
||||
# Copyright (c) 2004-2005 The Trustees of Indiana University.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
# University of Stuttgart. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
# All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
include $(top_srcdir)/config/Makefile.options
|
||||
|
||||
SUBDIRS = $(MCA_memory_DSO_SUBDIRS)
|
||||
DISTCLEANFILES = $(SUBDIRS)
|
||||
|
||||
# Every directory under here is a sym link to something in the main
|
||||
# src/mca tree. Hence, we don't want to distribute anything under
|
||||
# here.
|
||||
|
||||
DIST_SUBDIRS =
|
@ -16,7 +16,8 @@
|
||||
|
||||
include $(top_srcdir)/config/Makefile.options
|
||||
|
||||
SUBDIRS = base
|
||||
SUBDIRS = base \
|
||||
memory
|
||||
|
||||
# Source code files
|
||||
|
||||
|
32
opal/mca/memory/Makefile.am
Обычный файл
32
opal/mca/memory/Makefile.am
Обычный файл
@ -0,0 +1,32 @@
|
||||
#
|
||||
# Copyright (c) 2004-2005 The Trustees of Indiana University.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
# University of Stuttgart. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
# All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
include $(top_srcdir)/config/Makefile.options
|
||||
|
||||
SUBDIRS = base $(MCA_memory_STATIC_SUBDIRS)
|
||||
DIST_SUBDIRS = base $(MCA_memory_ALL_SUBDIRS)
|
||||
|
||||
# Source code files
|
||||
headers = memory.h
|
||||
|
||||
# Conditionally install the header files
|
||||
|
||||
if WANT_INSTALL_HEADERS
|
||||
ompidir = $(includedir)/openmpi/opal/mca/memory
|
||||
ompi_HEADERS = $(headers)
|
||||
else
|
||||
ompidir = $(includedir)
|
||||
endif
|
19
opal/mca/memory/base/Makefile.am
Обычный файл
19
opal/mca/memory/base/Makefile.am
Обычный файл
@ -0,0 +1,19 @@
|
||||
#
|
||||
# Copyright (c) 2004-2005 The Trustees of Indiana University.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
# University of Stuttgart. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
# All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
include $(top_srcdir)/config/Makefile.options
|
||||
|
||||
# nothing to do but sit around and wait for the grass to grow.
|
0
opal/mca/memory/darwin7/.ompi_ignore
Обычный файл
0
opal/mca/memory/darwin7/.ompi_ignore
Обычный файл
367
opal/mca/memory/darwin7/APPLE_LICENSE
Обычный файл
367
opal/mca/memory/darwin7/APPLE_LICENSE
Обычный файл
@ -0,0 +1,367 @@
|
||||
APPLE PUBLIC SOURCE LICENSE
|
||||
Version 2.0 - August 6, 2003
|
||||
|
||||
Please read this License carefully before downloading this software.
|
||||
By downloading or using this software, you are agreeing to be bound by
|
||||
the terms of this License. If you do not or cannot agree to the terms
|
||||
of this License, please do not download or use the software.
|
||||
|
||||
1. General; Definitions. This License applies to any program or other
|
||||
work which Apple Computer, Inc. ("Apple") makes publicly available and
|
||||
which contains a notice placed by Apple identifying such program or
|
||||
work as "Original Code" and stating that it is subject to the terms of
|
||||
this Apple Public Source License version 2.0 ("License"). As used in
|
||||
this License:
|
||||
|
||||
1.1 "Applicable Patent Rights" mean: (a) in the case where Apple is
|
||||
the grantor of rights, (i) claims of patents that are now or hereafter
|
||||
acquired, owned by or assigned to Apple and (ii) that cover subject
|
||||
matter contained in the Original Code, but only to the extent
|
||||
necessary to use, reproduce and/or distribute the Original Code
|
||||
without infringement; and (b) in the case where You are the grantor of
|
||||
rights, (i) claims of patents that are now or hereafter acquired,
|
||||
owned by or assigned to You and (ii) that cover subject matter in Your
|
||||
Modifications, taken alone or in combination with Original Code.
|
||||
|
||||
1.2 "Contributor" means any person or entity that creates or
|
||||
contributes to the creation of Modifications.
|
||||
|
||||
1.3 "Covered Code" means the Original Code, Modifications, the
|
||||
combination of Original Code and any Modifications, and/or any
|
||||
respective portions thereof.
|
||||
|
||||
1.4 "Externally Deploy" means: (a) to sublicense, distribute or
|
||||
otherwise make Covered Code available, directly or indirectly, to
|
||||
anyone other than You; and/or (b) to use Covered Code, alone or as
|
||||
part of a Larger Work, in any way to provide a service, including but
|
||||
not limited to delivery of content, through electronic communication
|
||||
with a client other than You.
|
||||
|
||||
1.5 "Larger Work" means a work which combines Covered Code or portions
|
||||
thereof with code not governed by the terms of this License.
|
||||
|
||||
1.6 "Modifications" mean any addition to, deletion from, and/or change
|
||||
to, the substance and/or structure of the Original Code, any previous
|
||||
Modifications, the combination of Original Code and any previous
|
||||
Modifications, and/or any respective portions thereof. When code is
|
||||
released as a series of files, a Modification is: (a) any addition to
|
||||
or deletion from the contents of a file containing Covered Code;
|
||||
and/or (b) any new file or other representation of computer program
|
||||
statements that contains any part of Covered Code.
|
||||
|
||||
1.7 "Original Code" means (a) the Source Code of a program or other
|
||||
work as originally made available by Apple under this License,
|
||||
including the Source Code of any updates or upgrades to such programs
|
||||
or works made available by Apple under this License, and that has been
|
||||
expressly identified by Apple as such in the header file(s) of such
|
||||
work; and (b) the object code compiled from such Source Code and
|
||||
originally made available by Apple under this License.
|
||||
|
||||
1.8 "Source Code" means the human readable form of a program or other
|
||||
work that is suitable for making modifications to it, including all
|
||||
modules it contains, plus any associated interface definition files,
|
||||
scripts used to control compilation and installation of an executable
|
||||
(object code).
|
||||
|
||||
1.9 "You" or "Your" means an individual or a legal entity exercising
|
||||
rights under this License. For legal entities, "You" or "Your"
|
||||
includes any entity which controls, is controlled by, or is under
|
||||
common control with, You, where "control" means (a) the power, direct
|
||||
or indirect, to cause the direction or management of such entity,
|
||||
whether by contract or otherwise, or (b) ownership of fifty percent
|
||||
(50%) or more of the outstanding shares or beneficial ownership of
|
||||
such entity.
|
||||
|
||||
2. Permitted Uses; Conditions & Restrictions. Subject to the terms
|
||||
and conditions of this License, Apple hereby grants You, effective on
|
||||
the date You accept this License and download the Original Code, a
|
||||
world-wide, royalty-free, non-exclusive license, to the extent of
|
||||
Apple's Applicable Patent Rights and copyrights covering the Original
|
||||
Code, to do the following:
|
||||
|
||||
2.1 Unmodified Code. You may use, reproduce, display, perform,
|
||||
internally distribute within Your organization, and Externally Deploy
|
||||
verbatim, unmodified copies of the Original Code, for commercial or
|
||||
non-commercial purposes, provided that in each instance:
|
||||
|
||||
(a) You must retain and reproduce in all copies of Original Code the
|
||||
copyright and other proprietary notices and disclaimers of Apple as
|
||||
they appear in the Original Code, and keep intact all notices in the
|
||||
Original Code that refer to this License; and
|
||||
|
||||
(b) You must include a copy of this License with every copy of Source
|
||||
Code of Covered Code and documentation You distribute or Externally
|
||||
Deploy, and You may not offer or impose any terms on such Source Code
|
||||
that alter or restrict this License or the recipients' rights
|
||||
hereunder, except as permitted under Section 6.
|
||||
|
||||
2.2 Modified Code. You may modify Covered Code and use, reproduce,
|
||||
display, perform, internally distribute within Your organization, and
|
||||
Externally Deploy Your Modifications and Covered Code, for commercial
|
||||
or non-commercial purposes, provided that in each instance You also
|
||||
meet all of these conditions:
|
||||
|
||||
(a) You must satisfy all the conditions of Section 2.1 with respect to
|
||||
the Source Code of the Covered Code;
|
||||
|
||||
(b) You must duplicate, to the extent it does not already exist, the
|
||||
notice in Exhibit A in each file of the Source Code of all Your
|
||||
Modifications, and cause the modified files to carry prominent notices
|
||||
stating that You changed the files and the date of any change; and
|
||||
|
||||
(c) If You Externally Deploy Your Modifications, You must make
|
||||
Source Code of all Your Externally Deployed Modifications either
|
||||
available to those to whom You have Externally Deployed Your
|
||||
Modifications, or publicly available. Source Code of Your Externally
|
||||
Deployed Modifications must be released under the terms set forth in
|
||||
this License, including the license grants set forth in Section 3
|
||||
below, for as long as you Externally Deploy the Covered Code or twelve
|
||||
(12) months from the date of initial External Deployment, whichever is
|
||||
longer. You should preferably distribute the Source Code of Your
|
||||
Externally Deployed Modifications electronically (e.g. download from a
|
||||
web site).
|
||||
|
||||
2.3 Distribution of Executable Versions. In addition, if You
|
||||
Externally Deploy Covered Code (Original Code and/or Modifications) in
|
||||
object code, executable form only, You must include a prominent
|
||||
notice, in the code itself as well as in related documentation,
|
||||
stating that Source Code of the Covered Code is available under the
|
||||
terms of this License with information on how and where to obtain such
|
||||
Source Code.
|
||||
|
||||
2.4 Third Party Rights. You expressly acknowledge and agree that
|
||||
although Apple and each Contributor grants the licenses to their
|
||||
respective portions of the Covered Code set forth herein, no
|
||||
assurances are provided by Apple or any Contributor that the Covered
|
||||
Code does not infringe the patent or other intellectual property
|
||||
rights of any other entity. Apple and each Contributor disclaim any
|
||||
liability to You for claims brought by any other entity based on
|
||||
infringement of intellectual property rights or otherwise. As a
|
||||
condition to exercising the rights and licenses granted hereunder, You
|
||||
hereby assume sole responsibility to secure any other intellectual
|
||||
property rights needed, if any. For example, if a third party patent
|
||||
license is required to allow You to distribute the Covered Code, it is
|
||||
Your responsibility to acquire that license before distributing the
|
||||
Covered Code.
|
||||
|
||||
3. Your Grants. In consideration of, and as a condition to, the
|
||||
licenses granted to You under this License, You hereby grant to any
|
||||
person or entity receiving or distributing Covered Code under this
|
||||
License a non-exclusive, royalty-free, perpetual, irrevocable license,
|
||||
under Your Applicable Patent Rights and other intellectual property
|
||||
rights (other than patent) owned or controlled by You, to use,
|
||||
reproduce, display, perform, modify, sublicense, distribute and
|
||||
Externally Deploy Your Modifications of the same scope and extent as
|
||||
Apple's licenses under Sections 2.1 and 2.2 above.
|
||||
|
||||
4. Larger Works. You may create a Larger Work by combining Covered
|
||||
Code with other code not governed by the terms of this License and
|
||||
distribute the Larger Work as a single product. In each such instance,
|
||||
You must make sure the requirements of this License are fulfilled for
|
||||
the Covered Code or any portion thereof.
|
||||
|
||||
5. Limitations on Patent License. Except as expressly stated in
|
||||
Section 2, no other patent rights, express or implied, are granted by
|
||||
Apple herein. Modifications and/or Larger Works may require additional
|
||||
patent licenses from Apple which Apple may grant in its sole
|
||||
discretion.
|
||||
|
||||
6. Additional Terms. You may choose to offer, and to charge a fee for,
|
||||
warranty, support, indemnity or liability obligations and/or other
|
||||
rights consistent with the scope of the license granted herein
|
||||
("Additional Terms") to one or more recipients of Covered Code.
|
||||
However, You may do so only on Your own behalf and as Your sole
|
||||
responsibility, and not on behalf of Apple or any Contributor. You
|
||||
must obtain the recipient's agreement that any such Additional Terms
|
||||
are offered by You alone, and You hereby agree to indemnify, defend
|
||||
and hold Apple and every Contributor harmless for any liability
|
||||
incurred by or claims asserted against Apple or such Contributor by
|
||||
reason of any such Additional Terms.
|
||||
|
||||
7. Versions of the License. Apple may publish revised and/or new
|
||||
versions of this License from time to time. Each version will be given
|
||||
a distinguishing version number. Once Original Code has been published
|
||||
under a particular version of this License, You may continue to use it
|
||||
under the terms of that version. You may also choose to use such
|
||||
Original Code under the terms of any subsequent version of this
|
||||
License published by Apple. No one other than Apple has the right to
|
||||
modify the terms applicable to Covered Code created under this
|
||||
License.
|
||||
|
||||
8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in
|
||||
part pre-release, untested, or not fully tested works. The Covered
|
||||
Code may contain errors that could cause failures or loss of data, and
|
||||
may be incomplete or contain inaccuracies. You expressly acknowledge
|
||||
and agree that use of the Covered Code, or any portion thereof, is at
|
||||
Your sole and entire risk. THE COVERED CODE IS PROVIDED "AS IS" AND
|
||||
WITHOUT WARRANTY, UPGRADES OR SUPPORT OF ANY KIND AND APPLE AND
|
||||
APPLE'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS "APPLE" FOR THE
|
||||
PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY DISCLAIM
|
||||
ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT
|
||||
NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF
|
||||
MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR
|
||||
PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NONINFRINGEMENT OF THIRD
|
||||
PARTY RIGHTS. APPLE AND EACH CONTRIBUTOR DOES NOT WARRANT AGAINST
|
||||
INTERFERENCE WITH YOUR ENJOYMENT OF THE COVERED CODE, THAT THE
|
||||
FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR REQUIREMENTS,
|
||||
THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR
|
||||
ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO
|
||||
ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE, AN APPLE
|
||||
AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY.
|
||||
You acknowledge that the Covered Code is not intended for use in the
|
||||
operation of nuclear facilities, aircraft navigation, communication
|
||||
systems, or air traffic control machines in which case the failure of
|
||||
the Covered Code could lead to death, personal injury, or severe
|
||||
physical or environmental damage.
|
||||
|
||||
9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO
|
||||
EVENT SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL,
|
||||
SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING
|
||||
TO THIS LICENSE OR YOUR USE OR INABILITY TO USE THE COVERED CODE, OR
|
||||
ANY PORTION THEREOF, WHETHER UNDER A THEORY OF CONTRACT, WARRANTY,
|
||||
TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF
|
||||
APPLE OR SUCH CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY
|
||||
REMEDY. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF
|
||||
INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY
|
||||
TO YOU. In no event shall Apple's total liability to You for all
|
||||
damages (other than as may be required by applicable law) under this
|
||||
License exceed the amount of fifty dollars ($50.00).
|
||||
|
||||
10. Trademarks. This License does not grant any rights to use the
|
||||
trademarks or trade names "Apple", "Apple Computer", "Mac", "Mac OS",
|
||||
"QuickTime", "QuickTime Streaming Server" or any other trademarks,
|
||||
service marks, logos or trade names belonging to Apple (collectively
|
||||
"Apple Marks") or to any trademark, service mark, logo or trade name
|
||||
belonging to any Contributor. You agree not to use any Apple Marks in
|
||||
or as part of the name of products derived from the Original Code or
|
||||
to endorse or promote products derived from the Original Code other
|
||||
than as expressly permitted by and in strict compliance at all times
|
||||
with Apple's third party trademark usage guidelines which are posted
|
||||
at http://www.apple.com/legal/guidelinesfor3rdparties.html.
|
||||
|
||||
11. Ownership. Subject to the licenses granted under this License,
|
||||
each Contributor retains all rights, title and interest in and to any
|
||||
Modifications made by such Contributor. Apple retains all rights,
|
||||
title and interest in and to the Original Code and any Modifications
|
||||
made by or on behalf of Apple ("Apple Modifications"), and such Apple
|
||||
Modifications will not be automatically subject to this License. Apple
|
||||
may, at its sole discretion, choose to license such Apple
|
||||
Modifications under this License, or on different terms from those
|
||||
contained in this License or may choose not to license them at all.
|
||||
|
||||
12. Termination.
|
||||
|
||||
12.1 Termination. This License and the rights granted hereunder will
|
||||
terminate:
|
||||
|
||||
(a) automatically without notice from Apple if You fail to comply with
|
||||
any term(s) of this License and fail to cure such breach within 30
|
||||
days of becoming aware of such breach;
|
||||
|
||||
(b) immediately in the event of the circumstances described in Section
|
||||
13.5(b); or
|
||||
|
||||
(c) automatically without notice from Apple if You, at any time during
|
||||
the term of this License, commence an action for patent infringement
|
||||
against Apple; provided that Apple did not first commence
|
||||
an action for patent infringement against You in that instance.
|
||||
|
||||
12.2 Effect of Termination. Upon termination, You agree to immediately
|
||||
stop any further use, reproduction, modification, sublicensing and
|
||||
distribution of the Covered Code. All sublicenses to the Covered Code
|
||||
which have been properly granted prior to termination shall survive
|
||||
any termination of this License. Provisions which, by their nature,
|
||||
should remain in effect beyond the termination of this License shall
|
||||
survive, including but not limited to Sections 3, 5, 8, 9, 10, 11,
|
||||
12.2 and 13. No party will be liable to any other for compensation,
|
||||
indemnity or damages of any sort solely as a result of terminating
|
||||
this License in accordance with its terms, and termination of this
|
||||
License will be without prejudice to any other right or remedy of
|
||||
any party.
|
||||
|
||||
13. Miscellaneous.
|
||||
|
||||
13.1 Government End Users. The Covered Code is a "commercial item" as
|
||||
defined in FAR 2.101. Government software and technical data rights in
|
||||
the Covered Code include only those rights customarily provided to the
|
||||
public as defined in this License. This customary commercial license
|
||||
in technical data and software is provided in accordance with FAR
|
||||
12.211 (Technical Data) and 12.212 (Computer Software) and, for
|
||||
Department of Defense purchases, DFAR 252.227-7015 (Technical Data --
|
||||
Commercial Items) and 227.7202-3 (Rights in Commercial Computer
|
||||
Software or Computer Software Documentation). Accordingly, all U.S.
|
||||
Government End Users acquire Covered Code with only those rights set
|
||||
forth herein.
|
||||
|
||||
13.2 Relationship of Parties. This License will not be construed as
|
||||
creating an agency, partnership, joint venture or any other form of
|
||||
legal association between or among You, Apple or any Contributor, and
|
||||
You will not represent to the contrary, whether expressly, by
|
||||
implication, appearance or otherwise.
|
||||
|
||||
13.3 Independent Development. Nothing in this License will impair
|
||||
Apple's right to acquire, license, develop, have others develop for
|
||||
it, market and/or distribute technology or products that perform the
|
||||
same or similar functions as, or otherwise compete with,
|
||||
Modifications, Larger Works, technology or products that You may
|
||||
develop, produce, market or distribute.
|
||||
|
||||
13.4 Waiver; Construction. Failure by Apple or any Contributor to
|
||||
enforce any provision of this License will not be deemed a waiver of
|
||||
future enforcement of that or any other provision. Any law or
|
||||
regulation which provides that the language of a contract shall be
|
||||
construed against the drafter will not apply to this License.
|
||||
|
||||
13.5 Severability. (a) If for any reason a court of competent
|
||||
jurisdiction finds any provision of this License, or portion thereof,
|
||||
to be unenforceable, that provision of the License will be enforced to
|
||||
the maximum extent permissible so as to effect the economic benefits
|
||||
and intent of the parties, and the remainder of this License will
|
||||
continue in full force and effect. (b) Notwithstanding the foregoing,
|
||||
if applicable law prohibits or restricts You from fully and/or
|
||||
specifically complying with Sections 2 and/or 3 or prevents the
|
||||
enforceability of either of those Sections, this License will
|
||||
immediately terminate and You must immediately discontinue any use of
|
||||
the Covered Code and destroy all copies of it that are in your
|
||||
possession or control.
|
||||
|
||||
13.6 Dispute Resolution. Any litigation or other dispute resolution
|
||||
between You and Apple relating to this License shall take place in the
|
||||
Northern District of California, and You and Apple hereby consent to
|
||||
the personal jurisdiction of, and venue in, the state and federal
|
||||
courts within that District with respect to this License. The
|
||||
application of the United Nations Convention on Contracts for the
|
||||
International Sale of Goods is expressly excluded.
|
||||
|
||||
13.7 Entire Agreement; Governing Law. This License constitutes the
|
||||
entire agreement between the parties with respect to the subject
|
||||
matter hereof. This License shall be governed by the laws of the
|
||||
United States and the State of California, except that body of
|
||||
California law concerning conflicts of law.
|
||||
|
||||
Where You are located in the province of Quebec, Canada, the following
|
||||
clause applies: The parties hereby confirm that they have requested
|
||||
that this License and all related documents be drafted in English. Les
|
||||
parties ont exige que le present contrat et tous les documents
|
||||
connexes soient rediges en anglais.
|
||||
|
||||
EXHIBIT A.
|
||||
|
||||
"Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights
|
||||
Reserved.
|
||||
|
||||
This file contains Original Code and/or Modifications of Original Code
|
||||
as defined in and that are subject to the Apple Public Source License
|
||||
Version 2.0 (the 'License'). You may not use this file except in
|
||||
compliance with the License. Please obtain a copy of the License at
|
||||
http://www.opensource.apple.com/apsl/ and read it before using this
|
||||
file.
|
||||
|
||||
The Original Code and all software distributed under the License are
|
||||
distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
Please see the License for the specific language governing rights and
|
||||
limitations under the License."
|
42
opal/mca/memory/darwin7/Makefile.am
Обычный файл
42
opal/mca/memory/darwin7/Makefile.am
Обычный файл
@ -0,0 +1,42 @@
|
||||
# -*- makefile -*-
|
||||
#
|
||||
# Copyright (c) 2001-2004 The Trustees of Indiana University.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 1998-2001 University of Notre Dame.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 1994-1998 The Ohio State University.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This file is part of the LAM/MPI software package. For license
|
||||
# information, see the LICENSE file in the top level directory of the
|
||||
# LAM/MPI source distribution.
|
||||
#
|
||||
# See APPLE_LICENSE file included in this directory for additional notices
|
||||
# about the original ptmalloc package.
|
||||
#
|
||||
|
||||
include $(top_srcdir)/config/Makefile.options
|
||||
|
||||
AM_CPPFLAGS = \
|
||||
-I$(top_srcdir)/src \
|
||||
-I$(top_lam_builddir)/share/include \
|
||||
-I$(top_lam_srcdir)/share/include
|
||||
|
||||
# Apple requires us to include the copyright notice in the software.
|
||||
# So install it in the same place that we install ROMIO's copyright
|
||||
# notices.
|
||||
docdir = $(datadir)/lam/doc
|
||||
doc_DATA = APPLE_LICENSE
|
||||
|
||||
if LAM_WANT_DARWIN7MALLOC
|
||||
noinst_LTLIBRARIES = libdarwin7malloc.la
|
||||
endif
|
||||
|
||||
libdarwin7malloc_la_SOURCES = \
|
||||
pthread_machdep.h \
|
||||
pthread_spinlock.h \
|
||||
scalable_malloc.c \
|
||||
scalable_malloc.h
|
||||
|
||||
EXTRA_DIST = \
|
||||
$(doc_DATA)
|
35
opal/mca/memory/darwin7/configure.m4
Обычный файл
35
opal/mca/memory/darwin7/configure.m4
Обычный файл
@ -0,0 +1,35 @@
|
||||
# -*- shell-script -*-
|
||||
#
|
||||
# Copyright (c) 2004-2005 The Trustees of Indiana University.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
# University of Stuttgart. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
# All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
AC_DEFUN([MCA_memory_darwin7_COMPILE_MODE], [
|
||||
AC_MSG_CHECKING([for MCA component $2:$3 compile mode])
|
||||
$4="static"
|
||||
AC_MSG_RESULT([$$4])
|
||||
])
|
||||
|
||||
|
||||
# MCA_memory_darwin7_CONFIG(action-if-can-compile,
|
||||
# [action-if-cant-compile])
|
||||
# ------------------------------------------------
|
||||
AC_DEFUN([MCA_memory_darwin7_CONFIG],[
|
||||
AC_ARG_WITH([memory-manager],
|
||||
[AC_HELP_STRING([--with-memory-manager=TYPE],
|
||||
[Use TYPE for intercepting memory management
|
||||
calls to control memory pinning.])])
|
||||
|
||||
$2
|
||||
])
|
20
opal/mca/memory/darwin7/configure.params
Обычный файл
20
opal/mca/memory/darwin7/configure.params
Обычный файл
@ -0,0 +1,20 @@
|
||||
# -*- shell-script -*-
|
||||
#
|
||||
# Copyright (c) 2004-2005 The Trustees of Indiana University.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
# University of Stuttgart. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
# All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
# Specific to this module
|
||||
|
||||
PARAM_CONFIG_FILES="Makefile"
|
60
opal/mca/memory/darwin7/pthread_machdep.h
Обычный файл
60
opal/mca/memory/darwin7/pthread_machdep.h
Обычный файл
@ -0,0 +1,60 @@
|
||||
/*
|
||||
* Copyright (c) 2003 Apple Computer, Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this
|
||||
* file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_END@
|
||||
*/
|
||||
/*
|
||||
* Copyright 1996 1995 by Open Software Foundation, Inc. 1997 1996 1995 1994 1993 1992 1991
|
||||
* All Rights Reserved
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software and
|
||||
* its documentation for any purpose and without fee is hereby granted,
|
||||
* provided that the above copyright notice appears in all copies and
|
||||
* that both the copyright notice and this permission notice appear in
|
||||
* supporting documentation.
|
||||
*
|
||||
* OSF DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
|
||||
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* IN NO EVENT SHALL OSF BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
|
||||
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
* LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
|
||||
* NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
/*
|
||||
* MkLinux
|
||||
*/
|
||||
|
||||
/* Machine-dependent definitions for pthread internals. */
|
||||
|
||||
#ifndef _POSIX_PTHREAD_MACHDEP_H
|
||||
#define _POSIX_PTHREAD_MACHDEP_H
|
||||
|
||||
#define _PTHREAD_TSD_OFFSET 0x48
|
||||
#ifndef __ASSEMBLER__
|
||||
typedef long pthread_lock_t;
|
||||
#endif
|
||||
|
||||
#define LOCK_INIT(l) ((l) = 0)
|
||||
#define LOCK_INITIALIZER 0
|
||||
|
||||
#endif /* _POSIX_PTHREAD_MACHDEP_H */
|
115
opal/mca/memory/darwin7/pthread_spinlock.h
Обычный файл
115
opal/mca/memory/darwin7/pthread_spinlock.h
Обычный файл
@ -0,0 +1,115 @@
|
||||
/*
|
||||
* Copyright (c) 2003 Apple Computer, Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this
|
||||
* file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_END@
|
||||
*/
|
||||
/*
|
||||
* Copyright 1996 1995 by Open Software Foundation, Inc. 1997 1996 1995 1994 1993 1992 1991
|
||||
* All Rights Reserved
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software and
|
||||
* its documentation for any purpose and without fee is hereby granted,
|
||||
* provided that the above copyright notice appears in all copies and
|
||||
* that both the copyright notice and this permission notice appear in
|
||||
* supporting documentation.
|
||||
*
|
||||
* OSF DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
|
||||
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* IN NO EVENT SHALL OSF BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
|
||||
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
* LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
|
||||
* NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
|
||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*
|
||||
*/
|
||||
/*
|
||||
* MkLinux
|
||||
*/
|
||||
|
||||
/*
|
||||
* POSIX Threads - IEEE 1003.1c
|
||||
*/
|
||||
|
||||
/*
|
||||
* Changes from original file:
|
||||
* LAM/MPI team, June 2004
|
||||
*
|
||||
* - changed include files to allow building without Darwin internal
|
||||
* source files
|
||||
*
|
||||
* Changes marked with LAM/MPI comment in source code
|
||||
*/
|
||||
|
||||
#ifndef _POSIX_PTHREAD_SPINLOCK_H
|
||||
#define _POSIX_PTHREAD_SPINLOCK_H
|
||||
|
||||
#include <mach/mach.h>
|
||||
#define __APPLE_API_PRIVATE
|
||||
#if 0 /* LAM/MPI Change */
|
||||
#include <machine/cpu_capabilities.h>
|
||||
#endif /* LAM/MPI Change */
|
||||
|
||||
#ifndef __POSIX_LIB__
|
||||
#define __POSIX_LIB__
|
||||
#endif
|
||||
|
||||
#include "pthread_machdep.h" /* Machine-dependent definitions. */
|
||||
|
||||
/* Number of times to spin when the lock is unavailable and we are on a
|
||||
multiprocessor. On a uniprocessor we yield the processor immediately. */
|
||||
#define MP_SPIN_TRIES 1000
|
||||
extern int _spin_tries;
|
||||
extern int __is_threaded;
|
||||
|
||||
/* Internal mutex locks for data structures */
|
||||
#define TRY_LOCK(v) (!__is_threaded || _spin_lock_try((pthread_lock_t *)&(v)))
|
||||
|
||||
/* _DO_SPINLOCK_LOCK() takes a (pthread_lock_t *) */
|
||||
#define _DO_SPINLOCK_LOCK(v) _spin_lock(v)
|
||||
|
||||
/* _DO_SPINLOCK_UNLOCK() takes a (pthread_lock_t *) */
|
||||
#define _DO_SPINLOCK_UNLOCK(v) _spin_unlock(v)
|
||||
|
||||
/* LOCK() takes a (pthread_lock_t) */
|
||||
#define LOCK(v) \
|
||||
do { \
|
||||
if (__is_threaded) { \
|
||||
_DO_SPINLOCK_LOCK((pthread_lock_t *)&(v)); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
/* UNLOCK() takes a (pthread_lock_t) */
|
||||
#define UNLOCK(v) \
|
||||
do { \
|
||||
if (__is_threaded) { \
|
||||
_DO_SPINLOCK_UNLOCK((pthread_lock_t *)&(v)); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
/* Prototypes. */
|
||||
|
||||
/* Functions defined in machine-dependent files. */
|
||||
extern void _spin_lock(pthread_lock_t *lockp);
|
||||
extern int _spin_lock_try(pthread_lock_t *lockp);
|
||||
extern void _spin_unlock(pthread_lock_t *lockp);
|
||||
|
||||
#endif /* _POSIX_PTHREAD_SPINLOCK_H */
|
3275
opal/mca/memory/darwin7/scalable_malloc.c
Обычный файл
3275
opal/mca/memory/darwin7/scalable_malloc.c
Обычный файл
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
45
opal/mca/memory/darwin7/scalable_malloc.h
Обычный файл
45
opal/mca/memory/darwin7/scalable_malloc.h
Обычный файл
@ -0,0 +1,45 @@
|
||||
/*
|
||||
* Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_START@
|
||||
*
|
||||
* This file contains Original Code and/or Modifications of Original Code
|
||||
* as defined in and that are subject to the Apple Public Source License
|
||||
* Version 2.0 (the 'License'). You may not use this file except in
|
||||
* compliance with the License. Please obtain a copy of the License at
|
||||
* http://www.opensource.apple.com/apsl/ and read it before using this
|
||||
* file.
|
||||
*
|
||||
* The Original Code and all software distributed under the License are
|
||||
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||||
* Please see the License for the specific language governing rights and
|
||||
* limitations under the License.
|
||||
*
|
||||
* @APPLE_LICENSE_HEADER_END@
|
||||
*/
|
||||
|
||||
#import <malloc/malloc.h>
|
||||
|
||||
#define SCALABLE_MALLOC_ADD_GUARD_PAGES (1 << 0)
|
||||
// add a guard page before and after each VM region to help debug
|
||||
#define SCALABLE_MALLOC_DONT_PROTECT_PRELUDE (1 << 1)
|
||||
// do not protect prelude page
|
||||
#define SCALABLE_MALLOC_DONT_PROTECT_POSTLUDE (1 << 2)
|
||||
// do not protect postlude page
|
||||
#define SCALABLE_MALLOC_DO_SCRIBBLE (1 << 3)
|
||||
// write 0x55 onto free blocks
|
||||
|
||||
extern malloc_zone_t *create_scalable_zone(size_t initial_size, unsigned debug_flags);
|
||||
/* Create a new zone that scales for small objects or large objects */
|
||||
|
||||
/***** Private API for debug and performance tools ********/
|
||||
|
||||
extern boolean_t scalable_zone_statistics(malloc_zone_t *zone, malloc_statistics_t *stats, unsigned subzone);
|
||||
/* Fills stats with some statistics;
|
||||
1 is returned on success; else 0 is returned
|
||||
Currently: subzone=0 => tiny; subzone=1 => small; subzone=2 => large; subzone=3 => huge; any other subzone => returns 0
|
||||
*/
|
||||
|
23
opal/mca/memory/malloc_hooks/Makefile.am
Обычный файл
23
opal/mca/memory/malloc_hooks/Makefile.am
Обычный файл
@ -0,0 +1,23 @@
|
||||
#
|
||||
# Copyright (c) 2004-2005 The Trustees of Indiana University.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
# University of Stuttgart. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
# All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
include $(top_srcdir)/config/Makefile.options
|
||||
|
||||
noinst_LTLIBRARIES = libmca_memory_malloc_hooks.la
|
||||
|
||||
# Source code files
|
||||
libmca_memory_malloc_hooks_la_SOURCES = \
|
||||
malloc_hooks.c
|
73
opal/mca/memory/malloc_hooks/configure.m4
Обычный файл
73
opal/mca/memory/malloc_hooks/configure.m4
Обычный файл
@ -0,0 +1,73 @@
|
||||
# -*- shell-script -*-
|
||||
#
|
||||
# Copyright (c) 2004-2005 The Trustees of Indiana University.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
# University of Stuttgart. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
# All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
AC_DEFUN([MCA_memory_malloc_hooks_COMPILE_MODE], [
|
||||
AC_MSG_CHECKING([for MCA component $2:$3 compile mode])
|
||||
$4="static"
|
||||
AC_MSG_RESULT([$$4])
|
||||
])
|
||||
|
||||
|
||||
# MCA_memory_malloc_hooks_CONFIG(action-if-can-compile,
|
||||
# [action-if-cant-compile])
|
||||
# ------------------------------------------------
|
||||
AC_DEFUN([MCA_memory_malloc_hooks_CONFIG],[
|
||||
AC_ARG_WITH([memory-manager],
|
||||
[AC_HELP_STRING([--with-memory-manager=TYPE],
|
||||
[Use TYPE for intercepting memory management
|
||||
calls to control memory pinning.])])
|
||||
|
||||
AS_IF([test "$with_memory_manager" = "malloc_hooks"],
|
||||
[memory_malloc_hooks_happy="yes"
|
||||
memory_malloc_hooks_should_use=1],
|
||||
[memory_malloc_hooks_should_use=0
|
||||
AS_IF([test "$with_memory_manager" = ""],
|
||||
[memory_malloc_hooks_happy="yes"],
|
||||
[memory_malloc_hooks_happy="no"])])
|
||||
|
||||
AS_IF([test "$memory_malloc_hooks_happy" = "yes"],
|
||||
[AS_IF([test "$enable_mpi_threads" = "yes" -o \
|
||||
"$enable_progress_threads" = "yes"],
|
||||
[memory_malloc_hooks_happy="no"])])
|
||||
|
||||
AS_IF([test "$memory_malloc_hooks_happy" = "yes"],
|
||||
[# check for malloc.h
|
||||
AC_CHECK_HEADER([malloc.h],
|
||||
[memory_malloc_hooks_happy="yes"],
|
||||
[memory_malloc_hooks_happy="no"])])
|
||||
|
||||
AS_IF([test "$memory_malloc_hooks_happy" = "yes"],
|
||||
[# check for init hook symbol
|
||||
AC_CHECK_DECL([__malloc_initialize_hook],
|
||||
[memory_malloc_hooks_happy="yes"],
|
||||
[memory_malloc_hooks_happy="no"],
|
||||
[AC_INCLUDES_DEFAULT
|
||||
#include <malloc.h>])])
|
||||
|
||||
AS_IF([test "$memory_malloc_hooks_happy" = "yes"],
|
||||
[# check for the chunk size function
|
||||
AC_CHECK_FUNC([malloc_usable_size],
|
||||
[memory_malloc_hooks_happy="yes"],
|
||||
[memory_malloc_hooks_happy="no"])])
|
||||
|
||||
AS_IF([test "$memory_malloc_hooks_happy" = "no" -a \
|
||||
"$memory_malloc_hoooks_should_use" = "1"],
|
||||
[AC_MSG_ERROR([malloc_hooks memory management requested but not available. Aborting.])])
|
||||
|
||||
AS_IF([test "$memory_malloc_hooks_happy" = "yes"],
|
||||
[$1], [$2])
|
||||
])
|
20
opal/mca/memory/malloc_hooks/configure.params
Обычный файл
20
opal/mca/memory/malloc_hooks/configure.params
Обычный файл
@ -0,0 +1,20 @@
|
||||
# -*- shell-script -*-
|
||||
#
|
||||
# Copyright (c) 2004-2005 The Trustees of Indiana University.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
# University of Stuttgart. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
# All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
# Specific to this module
|
||||
|
||||
PARAM_CONFIG_FILES="Makefile"
|
109
opal/mca/memory/malloc_hooks/malloc_hooks.c
Обычный файл
109
opal/mca/memory/malloc_hooks/malloc_hooks.c
Обычный файл
@ -0,0 +1,109 @@
|
||||
/*
|
||||
* Copyright (c) 2004-2005 The Trustees of Indiana University.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
* University of Stuttgart. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
* All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*/
|
||||
|
||||
#include <malloc.h>
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/mman.h>
|
||||
#include <stdio.h>
|
||||
#define __USE_GNU
|
||||
#include <dlfcn.h>
|
||||
|
||||
#include "opal/memory/memory_internal.h"
|
||||
|
||||
/* Prototypes for our hooks. */
|
||||
static void opal_mem_free_init_hook (void);
|
||||
static void opal_mem_free_free_hook (void*, const void *);
|
||||
static void* opal_mem_free_realloc_hook (void*, size_t, const void *);
|
||||
|
||||
/* Override initializing hook from the C library. */
|
||||
void (*__malloc_initialize_hook) (void) = opal_mem_free_init_hook;
|
||||
|
||||
|
||||
/* local variable - next in stack of free hooks */
|
||||
static void (*old_free_hook)(void*, const void*);
|
||||
static void* (*old_realloc_hook)(void*, size_t, const void*);
|
||||
|
||||
|
||||
static void
|
||||
opal_mem_free_init_hook (void)
|
||||
{
|
||||
opal_mem_free_set_free_support(1);
|
||||
old_free_hook = __free_hook;
|
||||
old_realloc_hook = __realloc_hook;
|
||||
__free_hook = opal_mem_free_free_hook;
|
||||
__realloc_hook = opal_mem_free_realloc_hook;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
opal_mem_free_free_hook (void *ptr, const void *caller)
|
||||
{
|
||||
/* dispatch about the pending free */
|
||||
opal_mem_free_release_hook(ptr, malloc_usable_size(ptr));
|
||||
|
||||
__free_hook = old_free_hook;
|
||||
|
||||
/* call the next chain down */
|
||||
free(ptr);
|
||||
|
||||
/* save the hooks again and restore our hook again */
|
||||
old_free_hook = __free_hook;
|
||||
__free_hook = opal_mem_free_free_hook;
|
||||
}
|
||||
|
||||
|
||||
/* for better or worse, we must assume that the buffer being passed to
|
||||
realloc is not going to be expandable and therefore is going to be
|
||||
free()ed. */
|
||||
static void*
|
||||
opal_mem_free_realloc_hook (void *ptr, size_t size, const void *caller)
|
||||
{
|
||||
void *ret;
|
||||
|
||||
/* dispatch about the pending free */
|
||||
opal_mem_free_release_hook(ptr, malloc_usable_size(ptr));
|
||||
|
||||
__realloc_hook = old_realloc_hook;
|
||||
|
||||
/* call the next chain down */
|
||||
ret = realloc(ptr, size);
|
||||
|
||||
/* save the hooks again and restore our hook again */
|
||||
old_realloc_hook = __realloc_hook;
|
||||
__realloc_hook = opal_mem_free_realloc_hook;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/* munmap is a weak symbol on any platform that I know of that
|
||||
supports malloc hooks, so we can just intercept it like this... */
|
||||
int
|
||||
munmap(void* addr, size_t len)
|
||||
{
|
||||
static int (*realmunmap)(void*, size_t);
|
||||
/* dispatch about the pending release */
|
||||
opal_mem_free_release_hook(addr, len);
|
||||
|
||||
if (NULL == realmunmap) {
|
||||
realmunmap = dlsym(RTLD_NEXT, "munmap");
|
||||
}
|
||||
|
||||
return realmunmap(addr, len);
|
||||
}
|
||||
|
||||
|
22
opal/mca/memory/memory.h
Обычный файл
22
opal/mca/memory/memory.h
Обычный файл
@ -0,0 +1,22 @@
|
||||
/*
|
||||
* Copyright (c) 2004-2005 The Trustees of Indiana University.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
* University of Stuttgart. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
* All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
* $HEADER$
|
||||
*/
|
||||
|
||||
/* NOTE: This framework is really for build system only. There is no
|
||||
set of function pointers that must be called or set interface or
|
||||
any of that. The only two functions that a component must call
|
||||
(note: call, not implement) are defined in
|
||||
opal/memory/memory_internal.h. Other than that, to each his
|
||||
own.. */
|
@ -35,17 +35,15 @@ AM_CPPFLAGS += -Isysdeps/generic
|
||||
docdir = $(datadir)/openmpi/doc
|
||||
doc_DATA = ptmalloc2-COPYRIGHT
|
||||
|
||||
if OMPI_WANT_PTMALLOC2
|
||||
noinst_LTLIBRARIES = libptmalloc2.la
|
||||
endif
|
||||
noinst_LTLIBRARIES = libmca_memory_ptmalloc2.la
|
||||
|
||||
libptmalloc2_la_SOURCES = \
|
||||
libmca_memory_ptmalloc2_la_SOURCES = \
|
||||
malloc.c \
|
||||
malloc-stats.c \
|
||||
malloc.h
|
||||
|
||||
# these are included directly and shouldn't be built solo
|
||||
EXTRA_libptmalloc2_la_SOURCES = \
|
||||
EXTRA_libmca_memory_ptmalloc2_la_SOURCES = \
|
||||
arena.c \
|
||||
hooks.c
|
||||
|
50
opal/mca/memory/ptmalloc2/configure.m4
Обычный файл
50
opal/mca/memory/ptmalloc2/configure.m4
Обычный файл
@ -0,0 +1,50 @@
|
||||
# -*- shell-script -*-
|
||||
#
|
||||
# Copyright (c) 2004-2005 The Trustees of Indiana University.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
# University of Stuttgart. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
# All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
AC_DEFUN([MCA_memory_ptmalloc2_COMPILE_MODE], [
|
||||
AC_MSG_CHECKING([for MCA component $2:$3 compile mode])
|
||||
$4="static"
|
||||
AC_MSG_RESULT([$$4])
|
||||
])
|
||||
|
||||
|
||||
# MCA_memory_ptmalloc2_CONFIG(action-if-can-compile,
|
||||
# [action-if-cant-compile])
|
||||
# ------------------------------------------------
|
||||
AC_DEFUN([MCA_memory_ptmalloc2_CONFIG],[
|
||||
AC_ARG_WITH([memory-manager],
|
||||
AC_HELP_STRING([--with-memory-manager=TYPE],
|
||||
[Use TYPE for intercepting memory management
|
||||
calls to control memory pinning.]),
|
||||
[memory_ptmalloc2_WANT_MEMORY="$withval"],
|
||||
[memory_ptmalloc2_WANT_MEMORY="none"])
|
||||
|
||||
AS_IF([test "$memory_ptmalloc2_WANT_MEMORY" = "ptmalloc2"],
|
||||
[if test "`echo $host | grep apple-darwin`" != "" ; then
|
||||
AC_MSG_WARN([*** Using ptmalloc with OS X will result in failure.])
|
||||
AC_MSG_ERROR([*** Aborting to save you the effort])
|
||||
fi
|
||||
|
||||
#
|
||||
# See if we have sbrk prototyped
|
||||
#
|
||||
AC_CHECK_DECL([sbrk], [have_decl_sbrk=1], [have_decl_sbrk=0])
|
||||
AC_DEFINE_UNQUOTED(OMPI_HAVE_DECL_SBRK, $have_decl_sbrk,
|
||||
[Whether we have a declaration for sbrk() or not])
|
||||
|
||||
$1], [$2])
|
||||
])
|
20
opal/mca/memory/ptmalloc2/configure.params
Обычный файл
20
opal/mca/memory/ptmalloc2/configure.params
Обычный файл
@ -0,0 +1,20 @@
|
||||
# -*- shell-script -*-
|
||||
#
|
||||
# Copyright (c) 2004-2005 The Trustees of Indiana University.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
# University of Stuttgart. All rights reserved.
|
||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
# All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
# Specific to this module
|
||||
|
||||
PARAM_CONFIG_FILES="Makefile"
|
@ -18,8 +18,6 @@ include $(top_srcdir)/config/Makefile.options
|
||||
|
||||
noinst_LTLIBRARIES = libopalmemory.la
|
||||
|
||||
SUBDIRS = ptmalloc2
|
||||
|
||||
# Source code files
|
||||
|
||||
headers = \
|
||||
@ -30,10 +28,6 @@ libopalmemory_la_SOURCES = \
|
||||
$(headers) \
|
||||
memory.c
|
||||
|
||||
if OMPI_WANT_PTMALLOC2
|
||||
libopalmemory_la_LIBADD = ptmalloc2/libptmalloc2.la
|
||||
endif
|
||||
|
||||
# Conditionally install the header files
|
||||
|
||||
if WANT_INSTALL_HEADERS
|
||||
|
@ -88,7 +88,6 @@ opal_mem_free_finalize(void)
|
||||
void
|
||||
opal_mem_free_set_free_support(int support)
|
||||
{
|
||||
printf("someone set mem_free support to %d\n", (int) support);
|
||||
have_free_support = support;
|
||||
}
|
||||
|
||||
|
@ -24,20 +24,20 @@
|
||||
#include "opal/runtime/opal.h"
|
||||
#include "opal/memory/memory.h"
|
||||
|
||||
int ret = 1;
|
||||
int ret = 2;
|
||||
int size = 10 * 1024 * 1024;
|
||||
|
||||
static void
|
||||
callback(void *buf, size_t length, void *cbdata)
|
||||
{
|
||||
printf("\tcallback with %lx, %d\n", (unsigned long) buf, (int) length);
|
||||
ret = 0;
|
||||
ret--;
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
void * foo;
|
||||
void * foo, *bar;
|
||||
int retval;
|
||||
|
||||
opal_init();
|
||||
@ -57,6 +57,25 @@ main(int argc, char *argv[])
|
||||
/* and check munmap directly */
|
||||
munmap(NULL, 0);
|
||||
|
||||
/* see if realloc works. This is kind of a huristic (that going
|
||||
from a small block to a big one will fail), so don't make this
|
||||
an error */
|
||||
if (ret == 0) {
|
||||
ret = 3;
|
||||
foo = malloc(10);
|
||||
bar = malloc(10);
|
||||
foo = realloc(foo, size);
|
||||
free(bar);
|
||||
free(foo);
|
||||
if (ret != 0) {
|
||||
printf("WARNING - It appears that realloc does not trigger a callback\n");
|
||||
printf("WARNING - this may be a problem or it may be a sign that your\n");
|
||||
printf("WARNING - memory manager is better than mine\n");
|
||||
printf("ret: %d\n", ret);
|
||||
}
|
||||
ret = 0;
|
||||
}
|
||||
|
||||
retval = opal_mem_free_unregister_handler(callback);
|
||||
if (retval != OMPI_SUCCESS) return retval;
|
||||
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user