Commit 4acc562b authored by Pavan Balaji's avatar Pavan Balaji
Browse files

[svn-r9004] Get rid of plpa. One less thing to maintain.

parent 166ddb53
......@@ -10,7 +10,6 @@ fi
(cd mpl && $autoreconf -vif)
(cd tools/topo/hwloc/hwloc && $autoreconf -vif)
(cd tools/topo/plpa/plpa && $autoreconf -vif)
$autoreconf -vif
# Remove the autom4te.cache folders for a release-like structure.
......
......@@ -296,51 +296,25 @@ AM_CONDITIONAL([hydra_ui_mpich], [test $hydra_ui = "mpich"])
#########################################################################
# System hwloc and plpa
# System hwloc
#########################################################################
PAC_CHECK_PREFIX(hwloc)
PAC_CHECK_PREFIX(plpa)
#########################################################################
# Processor Topology
#########################################################################
AC_ARG_WITH(hydra-topolib, [ --with-hydra-topolib=name - Processor Topology Library (hwloc, plpa)],
AC_ARG_WITH(hydra-topolib, [ --with-hydra-topolib=name - Processor Topology Library (hwloc)],
[ hydra_topolib_list=$withval ],
[ hydra_topolib_list=hwloc,plpa ])
[ hydra_topolib_list=hwloc ])
AC_MSG_CHECKING([desired processor topology libraries])
AC_MSG_RESULT([$hydra_topolib_list])
hydra_topolibs="`echo $hydra_topolib_list | sed -e 's/:/ /g' -e 's/,/ /g'`"
have_plpa=no
have_hwloc=no
for hydra_topolib in ${hydra_topolibs}; do
case "$hydra_topolib" in
plpa)
if test "$with_plpa_prefix" = "embedded" ; then
PAC_CONFIG_SUBDIR_ARGS([tools/topo/plpa/plpa],[--enable-included-mode],
[have_plpa=yes],[have_plpa=no])
# Only build plpa in embedded mode
if test "$have_plpa" = "yes" ; then
hydra_use_embedded_plpa=yes
fi
else
AC_CHECK_HEADERS([plpa.h])
AC_CHECK_LIB([plpa],[api_probe])
AC_MSG_CHECKING([if non-embedded plpa works])
if test "$ac_cv_header_plpa_h" = "yes" -a \
"$ac_cv_lib_plpa_api_probe" = "yes" ; then
have_plpa=yes
fi
AC_MSG_RESULT([$have_plpa])
fi
if test "$have_plpa" = "yes" ; then
AC_DEFINE(HAVE_PLPA,1,[Define if plpa is available])
available_topolibs="$available_topolibs plpa"
fi
;;
hwloc)
if test "$with_hwloc_prefix" = "embedded" ; then
PAC_CONFIG_SUBDIR_ARGS([tools/topo/hwloc/hwloc],[--enable-embedded-mode],
......@@ -388,8 +362,6 @@ if test "$hydra_default_topolib" != "" ; then
else
AC_DEFINE(HYDRA_DEFAULT_TOPOLIB,NULL,[Default processor topology library])
fi
AM_CONDITIONAL([hydra_have_plpa], [test "${have_plpa}" = "yes"])
AM_CONDITIONAL([hydra_use_embedded_plpa], [test "${hydra_use_embedded_plpa}" = "yes"])
AM_CONDITIONAL([hydra_have_hwloc], [test "${have_hwloc}" = "yes"])
AM_CONDITIONAL([hydra_use_embedded_hwloc], [test "${hydra_use_embedded_hwloc}" = "yes"])
......
......@@ -8,10 +8,6 @@ AM_CPPFLAGS += -I$(top_srcdir)/tools/topo
libhydra_la_SOURCES += $(top_srcdir)/tools/topo/topo.c
if hydra_have_plpa
include tools/topo/plpa/Makefile.mk
endif
if hydra_have_hwloc
include tools/topo/hwloc/Makefile.mk
endif
# -*- Mode: Makefile; -*-
#
# (C) 2008 by Argonne National Laboratory.
# See COPYRIGHT in top-level directory.
#
libhydra_la_SOURCES += $(top_srcdir)/tools/topo/plpa/topo_plpa.c
if hydra_use_embedded_plpa
AM_CPPFLAGS += -I$(top_srcdir)/tools/topo/plpa/plpa/src/libplpa \
-I$(top_builddir)/tools/topo/plpa/plpa/src/libplpa
# Append plpa to the external subdirs, so it gets built first
external_subdirs += tools/topo/plpa/plpa
external_ldflags += -L$(top_builddir)/tools/topo/plpa/plpa/src/libplpa
external_libs += -lplpa_included
endif
PLPA Authors
============
The IDs in parenthesis are those used in Subversion commit notices.
Current Authors
---------------
Indiana University:
- Jeff Squyres (jsquyres)
Lawrence Berkeley National Lab:
- Paul Hargrove (phargrov)
Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
University Research and Technology
Corporation. All rights reserved.
Copyright (c) 2004-2005 The Regents of the University of California.
All rights reserved.
Copyright (c) 2007 Cisco Systems, Inc. All rights reserved.
Portions copyright:
Copyright (c) 2004-2005 The University of Tennessee and The University
of Tennessee Research Foundation. All rights
reserved.
Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
University of Stuttgart. All rights reserved.
Copyright (c) 2006, 2007 Advanced Micro Devices, Inc.
All rights reserved.
$COPYRIGHT$
Additional copyrights may follow
$HEADER$
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
- Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer listed
in this license in the documentation and/or other materials
provided with the distribution.
- Neither the name of the copyright holders nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
The copyright holders provide no reassurances that the source code
provided does not infringe any patent, copyright, or any other
intellectual property rights of third parties. The copyright holders
disclaim any liability to any recipient for claims brought against
recipient by any third party for infringement of that parties
intellectual property rights.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
# University Research and Technology
# Corporation. All rights reserved.
# Copyright (c) 2004-2005 The Regents of the University of California.
# All rights reserved.
# Copyright (c) 2008 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
SUBDIRS = src
DIST_SUBDIRS = config $(SUBDIRS)
EXTRA_DIST = README VERSION LICENSE AUTHORS autogen.sh
ACLOCAL_AMFLAGS = -I config
if PLPA_BUILD_STANDALONE
dist-hook:
csh "$(top_srcdir)/config/distscript.csh" "$(top_srcdir)" "$(distdir)" "$(PLPA_VERSION)" "$(PLPA_SVN_R)"
endif
Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
University Research and Technology
Corporation. All rights reserved.
Copyright (c) 2004-2005 The Regents of the University of California.
All rights reserved.
Copyright (c) 2006-2010 Cisco Systems, Inc. All rights reserved.
$COPYRIGHT$
Additional copyrights may follow
$HEADER$
===========================================================================
This file contains the main features as well as overviews of specific
bug fixes (and other actions) for each version of PLPA since
version 1.0.
1.3.2
-----
- Removed a clause from AMD's license notice in plpa_map.c by
direction from Barry S. Newberger, Ph.D., Assistant General Counsel,
Advanced Micro Devices, Inc. per a Red Hat licensing concern
(initiated at https://bugzilla.redhat.com/show_bug.cgi?id=530230).
Removing this clause alleviates Red Hat's concern, even though this
resolution not shown on the above-cited bugzilla ticket.
- Julian Seward noticed that PLPA's use of the Valgrind API in the
affinity API probe was incorrect and suggested an improvement. Even
though we're ramping down PLPA development, I couldn't really ignore
the Valgrind author's suggestion!
1.3.1
-----
- Fixed bug identified by Eugene Loh at Sun; plpa-taskset -c ranges
were accidentally excluding the processor ID at the top of the
range.
- For standalone PLPA builds, the .so library is now versioned
according to the GNU Libtool guidelines.
1.3
---
- Added --with-valgrind support that allows building support for
Valgrind into PLPA (i.e., tell Valgrind to not warn about things
that we know are ok).
1.2
---
- Allow mapping from simple/contiguous processor, socket, and core
numbers to the corresponding back-end Linux ID (and clean up
documentation references between "X number" and "X ID", where X is
one of processor, socket, core).
- Support CPU hot plugging.
- Add explicit control over the PLPA topology information cache.
1.1.1
-----
- Ensure that --enable-included also disables executables by default.
Thanks to Brian Curtis for identifying the problem and supplying a
patch.
- Add ENABLE_EXECUTABLES m4 macro to allow behavior in m4
configuration analogous to "--enable-included --enable-executables".
1.1
---
- New command: plpa-taskset. It is intended as a drop-in replacement
for the "taskset" command, except it also understands sockets and
cores. See "plpa-taskset --help" for more details
- Renamed "plpa_info" to "plpa-info".
- Added PLPA_{MAJOR|MINOR|RELEASE}_VERSION integer macros in plpa.h.
This release, they have the values of 1, 1, and 0, respectively.
- Add new API functions to map from (socket,core) back and forth from
the Linux virtual processor ID. Thanks to AMD for the initial code
contribution that made this possible. See the documentation for
plpa_map_to_processor_id() as a starting point for more
information.
- Various fixes to "included" mode.
1.0.5
-----
- Fix an issue where the PLPA get/set affinity functions would only
operate on the current process; the PID argument to these functions
was effectively ignored.
1.0.4
-----
- Fix some 64 bit issues. Thanks to David Creasy for reporting the
problems.
- Fix plpa.h to be C++-friendly. Thanks to Emmanuel Paris for
pointing out this problem.
1.0.3
-----
- Resolve some sizing / units ambiguities that mistakenly did not make
it into 1.0.1. Thanks to Bert Wesarg for pointing these problems out.
1.0.2
-----
- Ensure that plpa_sched_[set|get]affinity() returns 0 upon success.
Thanks to David Creasy for bringing this to our attention.
1.0.1
-----
- Specify that cpusetsize should be in units of bytes and add some
missing "* 8"'s in plpa_dispatch.c.
1.0
---
- Initial release.
0.9a2
-----
- Change the back-end type of the plpa_bitmask_t to unsigned long
instead of unsigned char to avoid an endian problem.
- No longer attempt to set the affinity in plpa_api_probe() to avoid a
possible race condition (setting it after getting it).
- Fix PLPA_CPU_ZERO macro. Thanks to Bogdan Costescu for pointing
this out.
0.9a1
-----
Initial public release.
# This is the VERSION file for PLPA, describing the precise version of
# PLPA in this distribution. The various components of the version
# number below are combined to form a single version number string.
# major, minor, and release are generally combined in the form
# <major>.<minor>.<release>. If release is zero, then it is omitted.
major=1
minor=3
release=2
# greek is used for alpha or beta release tags. If it is non-empty,
# it will be appended to the version number. It does not have to be
# numeric. Common examples include a1 (alpha release 1), b1 (beta
# release 1), sc2005 (Super Computing 2005 release). The only
# requirement is that it must be entirely printable ASCII characters
# and have no white space.
greek=
# If want_svn=1, then the SVN r number will be included in the overall
# PLPA version number in some form.
want_svn=0
# If svn_r=-1, then the SVN r numbere will be obtained dynamically at
# run time, either 1) via the "svnversion" command (if this is a
# Subversion checkout) in the form "r<svn_r>", or b) with the date (if
# this is not a Subversion checkout, and the svnversion command cannot
# be used) in the form of "svn<date>". Alternatively, if svn_r is not
# -1, the value of svn_r will be directly appended to the version
# string. This happens during "make dist", for example: if the
# distribution tarball is being made from an SVN checkout, the value
# of svn_r in this file is replaced with the output of "svnversion".
svn_r=r264
# The shared library version of PLPA's public library. This version
# is maintained in accordance with the "Library Interface Versions"
# chapter from the GNU Libtool documentation. PLPA v<=1.3 reported
# version 0:0:0; the next release after v1.3 will explicitly set its
# .so version numbers according to the rules in the Libtool
# documentation. Notes:
# 1. Since version numbers are associated with *releases*, the version
# number maintained on the PLPA SVN trunk (and developer branches) is
# always 0:0:0.
# 2. Version numbers are described in the Libtool current:revision:age
# format.
libplpa_so_version=0:1:0
dnl -*- shell-script -*-
dnl
dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
dnl University Research and Technology
dnl Corporation. 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
#
# PLPA tests
#
m4_include(config/plpa.m4)
#
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
# University Research and Technology
# Corporation. All rights reserved.
# Copyright (c) 2004-2005 The Regents of the University of California.
# All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
EXTRA_DIST = \
distscript.csh \
plpa.m4 \
plpa_get_version.sh
#! /bin/csh -f
#
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
# University Research and Technology
# Corporation. All rights reserved.
# Copyright (c) 2004-2005 The University of Tennessee and The University
# of Tennessee Research Foundation. 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$
#
set srcdir="$1"
set builddir="`pwd`"
set distdir="$builddir/$2"
set PLPA_VERSION="$3"
set PLPA_SVN_VERSION="$4"
if ("$distdir" == "") then
echo "Must supply relative distdir as argv[2] -- aborting"
exit 1
elif ("$PLPA_VERSION" == "") then
echo "Must supply version as argv[1] -- aborting"
exit 1
endif
# we can catch some hard (but possible) to do mistakes by looking at
# our tree's revision number, but only if we are in the source tree.
# Otherwise, use what configure told us, at the cost of allowing one
# or two corner cases in (but otherwise VPATH builds won't work)
set svn_r=$PLPA_SVN_VERSION
if (-d .svn) then
set svn_r="r`svnversion .`"
endif
set start=`date`
cat <<EOF
Creating PLPA distribution
In directory: `pwd`
Version: $PLPA_VERSION
Started: $start
EOF
umask 022
if (! -d "$distdir") then
echo "*** ERROR: dist dir does not exist"
echo "*** ERROR: $distdir"
exit 1
endif
#
# See if we need to update the version file with the current SVN
# revision number. Do this *before* entering the distribution tree to
# solve a whole host of problems with VPATH (since srcdir may be
# relative or absolute)
#
set cur_svn_r="`grep '^svn_r' ${distdir}/VERSION | cut -d= -f2`"
if ("$cur_svn_r" == "-1") then
sed -e 's/^svn_r=.*/svn_r='$svn_r'/' "${distdir}/VERSION" > "${distdir}/version.new"
cp "${distdir}/version.new" "${distdir}/VERSION"
rm -f "${distdir}/version.new"
# need to reset the timestamp to not annoy AM dependencies
touch -r "${srcdir}/VERSION" "${distdir}/VERSION"
echo "*** Updated VERSION file with SVN r number"
else
echo "*** Did NOT updated VERSION file with SVN r number"
endif
#########################################################
# VERY IMPORTANT: Now go into the new distribution tree #
#########################################################
cd "$distdir"
echo "*** Now in distdir: $distdir"
#
# Get the latest config.guess and config.sub from ftp.gnu.org
#
echo "*** Downloading latest config.sub/config.guess from ftp.gnu.org..."
cd config
set configdir="`pwd`"
mkdir tmp.$$
cd tmp.$$
# Official HTTP git mirrors for config.guess / config.sub
wget -t 1 -T 10 -O config.guess 'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=master'
wget -t 1 -T 10 -O config.sub 'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=master'
chmod +x config.guess config.sub
# Recently, ftp.gnu.org has had zero-legnth config.guess / config.sub
# files, which causes the automated nightly SVN snapshot tarball to
# fail to be made correctly. This is a primitive attempt to fix that.
# If we got zero-length files from wget, use a config.guess /
# config.sub from a known location that is more recent than what ships
# in the current generation of auto* tools. Also check to ensure that
# the resulting scripts are runnable (Jan 2009: there are un-runnable
# scripts available right now because of some git vulnerability).
# Before you complain about this too loudly, remember that we're using
# unreleased software...
set happy=0
if (! -f config.guess || ! -s config.guess) then
echo " - WARNING: Got bad config.guess from ftp.gnu.org (non-existent or empty)"
else
./config.guess >& /dev/null
if ($status != 0) then
echo " - WARNING: Got bad config.guess from ftp.gnu.org (not executable)"
else
if (! -f config.sub || ! -s config.sub) then
echo " - WARNING: Got bad config.sub from ftp.gnu.org (non-existent or empty)"
else
./config.sub `./config.guess` >& /dev/null
if ($status != 0) then
echo " - WARNING: Got bad config.sub from ftp.gnu.org (not executable)"
else
echo " - Got good config.guess and config.sub from ftp.gnu.org"
cp config.sub config.guess ..
set happy=1
endif
endif
endif
endif
if ("$happy" == "0") then
echo " - WARNING: using included versions for both config.sub and config.guess"
endif
cd ..
rm -rf tmp.$$
cd ..
#
# All done
#
cat <<EOF
*** PLPA version $PLPA_VERSION distribution created
Started: $start
Ended: `date`
EOF
# -*- shell-script -*-
#
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
# University Research and Technology
# Corporation. All rights reserved.
# Copyright (c) 2004-2005 The Regents of the University of California.
# All rights reserved.
# Copyright (c) 2004-2008 High Performance Computing Center Stuttgart,
# University of Stuttgart. All rights reserved.
# Copyright (c) 2006-2009 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# Main PLPA m4 macro, to be invoked by the user
#
# Expects two or three paramters:
# 1. Configuration prefix (optional; if not specified, "." is assumed)
# 2. What to do upon success
# 3. What to do upon failure
#
AC_DEFUN([PLPA_INIT],[
# If we used the 2 param variant of PLPA_INIT, then assume the
# config prefix is ".". Otherwise, it's $1.
m4_ifval([$3],
[_PLPA_INIT_COMPAT([$1], [$2], [$3])],
[AC_MSG_WARN([The 2-argument form of the PLPA INIT m4 macro is deprecated])
AC_MSG_WARN([It was removed starting with PLPA v1.2])
AC_MSG_ERROR([Cannot continue])])
])dnl
#-----------------------------------------------------------------------