Commit 7cab96af authored by Pavan Balaji's avatar Pavan Balaji
Browse files

[svn-r6987] Updated hwloc to v1.0.2.

parent 627f5afc
Makefile.in
Makefile
.deps
/config.log
/config.status
/configure
/build-aux
/autom4te.cache
/aclocal.m4
/tags
/libtool
/hwloc.pc
/include/hwloc/config.h
/include/hwloc/stamp-h2
/include/private/config.h.in
/include/private/config.h
/include/private/stamp-h1
/utils/lstopo
/utils/lstopo.1
/utils/hwloc-bind
/utils/hwloc-bind.1
/utils/hwloc-calc
/utils/hwloc-calc.1
/utils/hwloc-distrib
/utils/hwloc-distrib.1
/utils/test-hwloc-distrib.sh
/tests/hwloc_get_obj_covering_cpuset
/tests/hwloc_get_shared_cache_covering_obj
/tests/hwloc_type_depth
/tests/hwloc_synthetic
/tests/hwloc_get_largest_objs_inside_cpuset
/tests/hwloc_get_cache_covering_cpuset
/tests/hwloc_get_obj_inside_cpuset
/tests/hwloc_get_closest_objs
/tests/hwloc_cpuset_string
/tests/hwloc_object_userdata
/tests/hwloc_cpuset_first_last_weight
/tests/hwloc_get_next_obj_covering_cpuset
/tests/hwloc_cpuset_singlify
/tests/hwloc_bind
/tests/linux-libnuma
/tests/glibc-sched
/tests/lstopo_xml.sh
/tests/linux/test-topology.sh
/tests/linux/gather-topology.sh
/doc/doxygen.cfg
/doc/doxygen-doc
/doc/hwloc-hello
/doc/images/diagram.png
/doc/images/diagram.eps
/m4/libtool.m4
/m4/ltoptions.m4
/m4/ltsugar.m4
/m4/ltversion.m4
/m4/lt~obsolete.m4
Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
Copyright © 2009 Cisco Systems, Inc. All rights reserved.
Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.
$COPYRIGHT$
......@@ -14,6 +14,37 @@ bug fixes (and other actions) for each version of hwloc since version
0.9 (as initially released as "libtopology", then re-branded to "hwloc"
in v0.9.1).
Version 1.0.2
-------------
* Public headers can now be included directly from C++ programs.
* Solaris fix for non-contiguous cpu numbers. Thanks to Rolf vandeVaart for
reporting the issue.
* Darwin 10.4 fix. Thanks to Olivier Cessenat for reporting the issue.
* Revert 1.0.1 patch that ignored sockets with unknown ID values since it
only slightly helped POWER7 machines with old Linux kernels while it
prevents recent kernels from getting the complete POWER7 topology.
* Fix hwloc_get_common_ancestor_obj().
* Remove arch-specific bits in public headers.
* Some fixes in the lstopo graphical output.
* Various man page clarifications and minor updates.
Version 1.0.1
-------------
* Various Solaris fixes. Thanks to Yannick Martin for reporting the issue.
* Fix "non-native" builds on x86 platforms (e.g., when building 32
bit executables with compilers that natively build 64 bit).
* Ignore sockets with unknown ID values (which fixes issues on POWER7
machines). Thanks to Greg Bauer for reporting the issue.
* Various man page clarifications and minor updates.
* Fixed memory leaks in hwloc_setup_group_from_min_distance_clique().
* Fix cache type filtering on MS Windows 7. Thanks to Αλέξανδρος
Παπαδογιαννάκ for reporting the issue.
* Fixed warnings when compiling with -DNDEBUG.
Version 1.0.0
-------------
......
......@@ -7,7 +7,7 @@
major=1
minor=0
release=0
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
......@@ -16,7 +16,7 @@ release=0
# requirement is that it must be entirely printable ASCII characters
# and have no white space.
greek=rc6
greek=rc3
# If want_svn=1, then the SVN r number will be included in the overall
# hwloc version number in some form.
......@@ -50,4 +50,4 @@ date="Unreleased developer copy"
# 2. Version numbers are described in the Libtool current:revision:age
# format.
libhwloc_so_version=0:0:0
libhwloc_so_version=0:1:0
......@@ -50,7 +50,7 @@ EOF])
# mode).
HWLOC_startdir=`pwd`
if test x"hwloc_config_prefix" != "x" -a ! -d "hwloc_config_prefix"; then
mkdir "hwloc_config_prefix"
mkdir -p "hwloc_config_prefix"
fi
if test x"hwloc_config_prefix" != "x"; then
cd "hwloc_config_prefix"
......@@ -62,6 +62,7 @@ EOF])
# the real $top_srcdir, because we may be building in embedded
# mode). First, go back to the startdir incase the $srcdir is
# relative.
cd "$HWLOC_startdir"
cd "$srcdir"/hwloc_config_prefix
HWLOC_top_srcdir="`pwd`"
......@@ -79,12 +80,19 @@ EOF])
# Debug mode?
AC_MSG_CHECKING([if want hwloc maintainer support])
hwloc_debug=
AS_IF([test "$enable_debug" = "yes"],
[hwloc_debug=1
hwloc_debug_msg="enabled"])
AS_IF([test "$hwloc_debug" = "" -a "$hwloc_mode" = "embedded" -a "$enable_debug" = ""],
# Unconditionally disable debug mode in embedded mode; if someone
# asks, we can add a configure-time option for it. Disable it
# now, however, because --enable-debug is not even added as an
# option when configuring in embedded mode, and we wouldn't want
# to hijack the enclosing application's --enable-debug configure
# switch.
AS_IF([test "$hwloc_mode" = "embedded"],
[hwloc_debug=0
hwloc_debug_msg="disabled (embedded mode)"])
AS_IF([test "$hwloc_debug" = "" -a "$enable_debug" = "yes"],
[hwloc_debug=1
hwloc_debug_msg="enabled"])
AS_IF([test "$hwloc_debug" = "" -a "$enable_debug" = "" -a -d .svn],
[hwloc_debug=1
hwloc_debug_msg="enabled (SVN checkout default)"])
......@@ -134,6 +142,53 @@ EOF])
[AC_DEFINE([HWLOC_SYM_TRANSFORM], [0])],
[AC_DEFINE([HWLOC_SYM_TRANSFORM], [1])])
#
# Define C flags
#
# hwloc uses C99 style, so ensure that we can figure out which
# compiler flags will drive this.
hwloc_CC_save=$CC
hwloc_CFLAGS_save=$CFLAGS
AC_PROG_CC_C99
AS_IF([test x"$ac_cv_prog_cc_c99" = xno],
[AC_WARN([C99 support is required by hwloc])
$3],
[HWLOC_SETUP_CORE_AFTER_C99($1, $2, $3, $4)])
])
dnl Same order of parameters form HWLOC-SETUP-CORE
AC_DEFUN([HWLOC_SETUP_CORE_AFTER_C99],[
hwloc_CC_c99_flags=`echo $CC | sed -e "s;^$hwloc_CC_save;;"`
CC=$hwloc_CC_save
CFLAGS=$hwloc_CFLAGS_save
# GCC specifics.
if test "x$GCC" = "xyes"; then
HWLOC_GCC_CFLAGS="-Wall -Wmissing-prototypes -Wundef"
HWLOC_GCC_CFLAGS="$HWLOC_GCC_CFLAGS -Wpointer-arith -Wcast-align"
fi
# Enample system extensions for O_DIRECTORY, fdopen, fssl, etc.
AC_USE_SYSTEM_EXTENSIONS
AH_VERBATIM([USE_HPUX_SYSTEM_EXTENSIONS],
[/* Enable extensions on HP-UX. */
#ifndef _HPUX_SOURCE
# undef _HPUX_SOURCE
#endif
])
AC_DEFINE([_HPUX_SOURCE], [1], [Are we building for HP-UX?])
AC_LANG_PUSH([C])
# Check to see if we're producing a 32 or 64 bit executable by
# checking the sizeof void*. Note that AC CHECK_SIZEOF even works
# when cross compiling (!), according to the AC 2.64 docs. This
# check is needed because on some systems, you can instruct the
# compiler to specifically build 32 or 64 bit executables -- even
# though the $target may indicate something different.
AC_CHECK_SIZEOF([void *])
#
# Check OS support
#
......@@ -203,57 +258,26 @@ EOF])
#
AC_MSG_CHECKING([which CPU support to include])
case ${target} in
i*86-*-*)
AC_DEFINE(HWLOC_X86_32_ARCH, 1, [Define to 1 on x86_32])
hwloc_x86_32=yes
AC_MSG_RESULT([x86_32])
;;
x86_64-*-*)
AC_DEFINE(HWLOC_X86_64_ARCH, 1, [Define to 1 on x86_64])
hwloc_x86_64=yes
AC_MSG_RESULT([x86_64])
;;
i*86-*-*|x86_64-*-*)
case ${ac_cv_sizeof_void_p} in
4)
AC_DEFINE(HWLOC_X86_32_ARCH, 1, [Define to 1 on x86_32])
hwloc_x86_32=yes
AC_MSG_RESULT([x86_32])
;;
8)
AC_DEFINE(HWLOC_X86_64_ARCH, 1, [Define to 1 on x86_64])
hwloc_x86_64=yes
AC_MSG_RESULT([x86_64])
;;
*)
AC_DEFINE(HWLOC_X86_64_ARCH, 1, [Define to 1 on x86_64])
hwloc_x86_64=yes
AC_MSG_RESULT([unknown -- assuming x86_64])
;;
esac
esac
#
# Define C flags
#
# hwloc uses C99 style, so ensure that we can figure out which
# compiler flags will drive this.
hwloc_CC_save=$CC
hwloc_CFLAGS_save=$CFLAGS
AC_PROG_CC_C99
AS_IF([test x"$ac_cv_prog_cc_c99" = xno],
[AC_WARN([C99 support is required by hwloc])
$3],
[HWLOC_SETUP_CORE_AFTER_C99($1, $2, $3, $4)])
])
dnl Same order of parameters form HWLOC-SETUP-CORE
AC_DEFUN([HWLOC_SETUP_CORE_AFTER_C99],[
hwloc_CC_c99_flags=`echo $CC | sed -e "s/^$hwloc_CC_save//"`
CC=$hwloc_CC_save
CFLAGS=$hwloc_CFLAGS_save
# GCC specifics.
if test "x$GCC" = "xyes"; then
HWLOC_GCC_CFLAGS="-Wall -Wmissing-prototypes -Wundef"
HWLOC_GCC_CFLAGS="$HWLOC_GCC_CFLAGS -Wpointer-arith -Wcast-align"
fi
# Enample system extensions for O_DIRECTORY, fdopen, fssl, etc.
AC_USE_SYSTEM_EXTENSIONS
AH_VERBATIM([USE_HPUX_SYSTEM_EXTENSIONS],
[/* Enable extensions on HP-UX. */
#ifndef _HPUX_SOURCE
# undef _HPUX_SOURCE
#endif
])
AC_DEFINE([_HPUX_SOURCE], [1], [Are we building for HP-UX?])
AC_LANG_PUSH([C])
_HWLOC_CHECK_DIFF_U
AC_CHECK_SIZEOF([unsigned long])
......@@ -296,6 +320,10 @@ AC_DEFUN([HWLOC_SETUP_CORE_AFTER_C99],[
])
AC_DEFINE_UNQUOTED(hwloc_strncasecmp, $hwloc_strncasecmp, [Define this to either strncasecmp or strncmp])
AC_CHECK_HEADER([stdint.h], [
AC_DEFINE([HWLOC_HAVE_STDINT_H], [1], [Define to 1 if you have the <stdint.h> header file.])
])
AC_CHECK_TYPES([wchar_t], [
AC_CHECK_FUNCS([putwc])
], [], [[#include <wchar.h>]])
......@@ -306,7 +334,7 @@ AC_DEFUN([HWLOC_SETUP_CORE_AFTER_C99],[
AC_CHECK_HEADERS([langinfo.h], [
AC_CHECK_FUNCS([nl_langinfo])
])
old_LIBS="$LIBS"
hwloc_old_LIBS="$LIBS"
LIBS=
AC_CHECK_HEADERS([curses.h], [
AC_CHECK_HEADERS([term.h], [
......@@ -317,7 +345,8 @@ AC_DEFUN([HWLOC_SETUP_CORE_AFTER_C99],[
])
], [], [[#include <curses.h>]])
])
LIBS="$old_LIBS"
LIBS="$hwloc_old_LIBS"
unset hwloc_old_LIBS
AC_CHECK_TYPES([KAFFINITY,
PROCESSOR_CACHE_TYPE,
......@@ -332,21 +361,29 @@ AC_DEFUN([HWLOC_SETUP_CORE_AFTER_C99],[
GROUP_RELATIONSHIP,
SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX],
[],[],[[#include <windows.h>]])
AC_HAVE_LIBRARY(gdi32)
AC_CHECK_LIB([gdi32], [main],
[HWLOC_LIBS="-lgdi32 $HWLOC_LIBS"
AC_DEFINE([HAVE_LIBGDI32], 1, [Define to 1 if we have -lgdi32])])
AC_CHECK_HEADER([windows.h], [
AC_DEFINE([HWLOC_HAVE_WINDOWS_H], [1], [Define to 1 if you have the `windows.h' header.])
])
AC_CHECK_HEADERS([sys/lgrp_user.h], [
AC_HAVE_LIBRARY([lgrp])
AC_CHECK_LIB([lgrp], [lgrp_latency_cookie],
[HWLOC_LIBS="-llgrp $HWLOC_LIBS"
AC_DEFINE([HAVE_LIBLGRP], 1, [Define to 1 if we have -llgrp])])
])
AC_CHECK_HEADERS([kstat.h], [
AC_HAVE_LIBRARY([kstat])
AC_CHECK_LIB([kstat], [main],
[HWLOC_LIBS="-lkstat $HWLOC_LIBS"
AC_DEFINE([HAVE_LIBKSTAT], 1, [Define to 1 if we have -lkstat])])
])
AC_CHECK_HEADERS([infiniband/verbs.h], [
AC_HAVE_LIBRARY([ibverbs], [hwloc_have_libibverbs=yes])
AC_CHECK_LIB([ibverbs], [ibv_open_device],
[HWLOC_LIBS="-libverbs $HWLOC_LIBS"
AC_DEFINE([HAVE_LIBIBVERBS], 1, [Define to 1 if we have -libverbs])])
])
AC_CHECK_DECLS([_SC_NPROCESSORS_ONLN,
......@@ -438,7 +475,7 @@ AC_DEFUN([HWLOC_SETUP_CORE_AFTER_C99],[
)
# check for kerrighed, but don't abort if not found
HWLOC_PKG_CHECK_MODULES([KERRIGHED], [kerrighed >= 2.0], [], [:])
HWLOC_PKG_CHECK_MODULES([KERRIGHED], [kerrighed >= 2.0], [], [], [:])
AC_PATH_PROGS([HWLOC_MS_LIB], [lib])
AC_ARG_VAR([HWLOC_MS_LIB], [Path to Microsoft's Visual Studio `lib' tool])
......@@ -504,14 +541,18 @@ AC_DEFUN([HWLOC_SETUP_CORE_AFTER_C99],[
]])
AC_CHECK_FUNC([sched_setaffinity], [hwloc_have_sched_setaffinity=yes])
AC_CHECK_HEADERS([sys/cpuset.h],,,[[#include <sys/param.h>]])
AC_SEARCH_LIBS([pthread_getthrds_np], [pthread],
AC_DEFINE([HWLOC_HAVE_PTHREAD_GETTHRDS_NP], 1, `Define to 1 if you have pthread_getthrds_np')
)
# Setup HWLOC's C, CPP, and LD flags
# Setup HWLOC's C, CPP, and LD flags, and LIBS
HWLOC_CFLAGS="$hwloc_CC_c99_flags $HWLOC_CFLAGS"
AC_SUBST(HWLOC_CFLAGS)
HWLOC_CPPFLAGS='-I$(HWLOC_top_srcdir)/include -I$(HWLOC_top_builddir)/include'
AC_SUBST(HWLOC_CPPFLAGS)
HWLOC_LDFLAGS='-L$(HWLOC_top_builddir)/src'
AC_SUBST(HWLOC_LDFLAGS)
AC_SUBST(HWLOC_LIBS)
# Set these values explicitly for embedded builds. Exporting
# these values through *_EMBEDDED_* values gives us the freedom to
......@@ -522,6 +563,8 @@ AC_DEFUN([HWLOC_SETUP_CORE_AFTER_C99],[
AC_SUBST(HWLOC_EMBEDDED_CPPFLAGS)
HWLOC_EMBEDDED_LDADD='$(HWLOC_top_builddir)/src/libhwloc_embedded.la'
AC_SUBST(HWLOC_EMBEDDED_LDADD)
HWLOC_EMBEDDED_LIBS=$HWLOC_LIBS
AC_SUBST(HWLOC_EMBEDDED_LIBS)
# Try to compile the cpuid inlines
AC_MSG_CHECKING([for cpuid])
......
......@@ -39,7 +39,7 @@ AC_DEFUN([HWLOC_DEFINE_ARGS],[
# Doxygen?
AC_ARG_ENABLE([doxygen],
[AC_HELP_STRING([--enable-doxygen],
[enable support for building Doxygen documentation (note that this option is ONLY relevant in developer builds; Doxygen documentation is pre-built for tarball builds and this option is therefore ignored)])],,[enable_doxygen=no])
[enable support for building Doxygen documentation (note that this option is ONLY relevant in developer builds; Doxygen documentation is pre-built for tarball builds and this option is therefore ignored)])])
# Picky?
AC_ARG_ENABLE(picky,
......@@ -186,7 +186,7 @@ EOF
# Cairo support
if test "x$enable_cairo" != "xno"; then
HWLOC_PKG_CHECK_MODULES([CAIRO], [cairo], [:], [enable_cairo="no"])
HWLOC_PKG_CHECK_MODULES([CAIRO], [cairo], [cairo_fill], [:], [enable_cairo=no])
if test "x$enable_cairo" != "xno"; then
AC_PATH_XTRA
CFLAGS_save=$CFLAGS
......@@ -220,7 +220,7 @@ EOF
# XML support
if test "x$enable_xml" != "xno"; then
HWLOC_PKG_CHECK_MODULES([XML], [libxml-2.0], [:], [enable_xml="no"])
HWLOC_PKG_CHECK_MODULES([XML], [libxml-2.0], [xmlNewDoc], [:], [enable_xml="no"])
fi
if test "x$enable_xml" != "xno"; then
......
......@@ -123,6 +123,7 @@ AC_DEFUN([HWLOC_PKG_CHECK_MODULES],[
and HWLOC_[]$1[]_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.])
# Check for failure of pkg-config
if test $HWLOC_pkg_failed = yes; then
_HWLOC_PKG_SHORT_ERRORS_SUPPORTED
if test $HWLOC_pkg_short_errors_supported = yes; then
......@@ -133,7 +134,7 @@ See the pkg-config man page for more details.])
# Put the nasty error message in config.log where it belongs
echo "$HWLOC_[]$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
ifelse([$4], , [AC_MSG_ERROR(dnl
ifelse([$5], , [AC_MSG_ERROR(dnl
[Package requirements ($2) were not met:
$HWLOCC_$1_PKG_ERRORS
......@@ -144,9 +145,9 @@ installed software in a non-standard prefix.
_HWLOC_PKG_TEXT
])],
[AC_MSG_RESULT([no])
$4])
$5])
elif test $HWLOC_pkg_failed = untried; then
ifelse([$4], , [AC_MSG_FAILURE(dnl
ifelse([$5], , [AC_MSG_FAILURE(dnl
[The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the HWLOC_PKG_CONFIG environment variable to the full
path to pkg-config.
......@@ -154,11 +155,32 @@ path to pkg-config.
_HWLOC_PKG_TEXT
To get pkg-config, see <http://pkg-config.freedesktop.org/>.])],
[$4])
[$5])
else
HWLOC_[]$1[]_CFLAGS=$HWLOC_pkg_cv_HWLOC_[]$1[]_CFLAGS
HWLOC_[]$1[]_LIBS=$HWLOC_pkg_cv_HWLOC_[]$1[]_LIBS
AC_MSG_RESULT([yes])
ifelse([$3], , :, [$3])
# If we got good results from pkg-config, check that they
# actually work (i.e., that we can link against the resulting
# $LIBS). The canonical example why we do this is if
# pkg-config returns 64 bit libraries but ./configure was run
# with CFLAGS=-m32 LDFLAGS=-m32. pkg-config gave us valid
# results, but we'll fail if we try to link. So detect that
# failure now.
hwloc_cflags_save=$CFLAGS
hwloc_libs_save=$LIBS
CFLAGS="$CFLAGS $HWLOC_pkg_cv_HWLOC_[]$1[]_CFLAGS"
LIBS="$LIBS $HWLOC_pkg_cv_HWLOC_[]$1[]_LIBS"
AC_CHECK_FUNC([$3], [hwloc_result=yes], [hwloc_result=no])
CFLAGS=$hwloc_cflags_save
LIBS=$hwloc_libs_save
AC_MSG_CHECKING([for final $1 support])
AS_IF([test "$hwloc_result" = "yes"],
[HWLOC_[]$1[]_CFLAGS=$HWLOC_pkg_cv_HWLOC_[]$1[]_CFLAGS
HWLOC_[]$1[]_LIBS=$HWLOC_pkg_cv_HWLOC_[]$1[]_LIBS
AC_MSG_RESULT([yes])
ifelse([$4], , :, [$4])],
[AC_MSG_RESULT([no])
ifelse([$5], , :, [$5])])
fi[]dnl
])# HWLOC_PKG_CHECK_MODULES
......@@ -138,11 +138,12 @@ HWLOC_DO_AM_CONDITIONALS
# Set the final flags
CFLAGS="$HWLOC_EMBEDDED_CFLAGS $CFLAGS"
CPPFLAGS="$HWLOC_EMBEDDED_CPPFLAGS $CPPFLAGS"
LIBS="$HWLOC_EMBEDDED_LIBS $LIBS"
# Setup libtool, but disable C++, F77, Java and Windows Resource
# Compiler support -- we don't need that stuff.
AM_DISABLE_SHARED
AM_ENABLE_STATIC
AM_ENABLE_SHARED
AM_DISABLE_STATIC
AM_PROG_LIBTOOL([win32-dll])
LT_LANG([C])
......
......@@ -33,6 +33,12 @@ EXTRA_DIST = \
doxygen.css \
doxygen.cfg \
images/diagram.fig \
images/ppc64-with-smt.png \
images/ppc64-with-smt.pdf \
images/ppc64-without-smt.png \
images/ppc64-without-smt.pdf \
images/ppc64-full-with-smt.png \
images/ppc64-full-with-smt.pdf \
www.open-mpi.org.cfg \
www.open-mpi.org-css.inc \
www.open-mpi.org-footer.inc \
......
......@@ -65,7 +65,7 @@ work on "fake" topologies:
hwloc can display the topology in a human-readable format, either in
graphical mode (X11), or by exporting in one of several different
formats, including: plain text, PDF, PNG, and FIG (see Examples
formats, including: plain text, PDF, PNG, and FIG (see \ref cli_examples
below). Note that some of the export formats require additional
support libraries.
......@@ -117,16 +117,18 @@ and build. Similarly, lstopo's XML support requires the libxml2
development package.
\htmlonly
</div><div class="section" id="examples">
</div><div class="section" id="cli_examples">
\endhtmlonly
\section examples Examples
\section cli_examples CLI Examples
On a 4-socket 2-core machine with hyperthreading, the \c lstopo tool
may show the following outputs:
may show the following graphic output:
\image html dudley.png
\image latex dudley.png "" width=9cm
Here's the equivalent output in textual form:
\verbatim
Machine (16GB)
Socket #0 + L3 #0 (4096KB)
......@@ -159,12 +161,83 @@ Machine (16GB)
PU #15 (phys=15)
\endverbatim
On a 4-socket 2-core Opteron NUMA machine, the \c lstopo tool may
show the following outputs:
Finally, here's the equivalent output in XML. Long lines were
artificially broken for document clarity (in the real output, each XML
tag is on a single line), and only socket #0 is shown for brevity:
\verbatim
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE topology SYSTEM "hwloc.dtd">
<topology>
<object type="Machine" os_level="-1" os_index="0" cpuset="0x0000ffff"
complete_cpuset="0x0000ffff" online_cpuset="0x0000ffff"
allowed_cpuset="0x0000ffff"
dmi_board_vendor="Dell Computer Corporation" dmi_board_name="0RD318"
local_memory="16648183808">
<page_type size="4096" count="4064498"/>
<page_type size="2097152" count="0"/>
<object type="Socket" os_level="-1" os_index="0" cpuset="0x00001111"
complete_cpuset="0x00001111" online_cpuset="0x00001111"
allowed_cpuset="0x00001111">
<object type="Cache" os_level="-1" cpuset="0x00001111"
complete_cpuset="0x00001111" online_cpuset="0x00001111"
allowed_cpuset="0x00001111" cache_size="4194304" depth="3"
cache_linesize="64">
<object type="Cache" os_level="-1" cpuset="0x00000101"
complete_cpuset="0x00000101" online_cpuset="0x00000101"
allowed_cpuset="0x00000101" cache_size="1048576" depth="2"
cache_linesize="64">
<object type="Cache" os_level="-1" cpuset="0x00000101"
complete_cpuset="0x00000101" online_cpuset="0x00000101"
allowed_cpuset="0x00000101" cache_size="16384" depth="1"
cache_linesize="64">
<object type="Core" os_level="-1" os_index="0" cpuset="0x00000101"
complete_cpuset="0x00000101" online_cpuset="0x00000101"
allowed_cpuset="0x00000101">
<object type="PU" os_level="-1" os_index="0" cpuset="0x00000001"
complete_cpuset="0x00000001" online_cpuset="0x00000001"
allowed_cpuset="0x00000001"/>
<object type="PU" os_level="-1" os_index="8" cpuset="0x00000100"
complete_cpuset="0x00000100" online_cpuset="0x00000100"
allowed_cpuset="0x00000100"/>
</object>
</object>
</object>
<object type="Cache" os_level="-1" cpuset="0x00001010"
complete_cpuset="0x00001010" online_cpuset="0x00001010"
allowed_cpuset="0x00001010" cache_size="1048576" depth="2"
cache_linesize="64">
<object type="Cache" os_level="-1" cpuset="0x00001010"
complete_cpuset="0x00001010" online_cpuset="0x00001010"
allowed_cpuset="0x00001010" cache_size="16384" depth="1"
cache_linesize="64">
<object type="Core" os_level="-1" os_index="1" cpuset="0x00001010"
complete_cpuset="0x00001010" online_cpuset="0x00001010"
allowed_cpuset="0x00001010">
<object type="PU" os_level="-1" os_index="4" cpuset="0x00000010"
complete_cpuset="0x00000010" online_cpuset="0x00000010"
allowed_cpuset="0x00000010"/>
<object type="PU" os_level="-1" os_index="12" cpuset="0x00001000"
complete_cpuset="0x00001000" online_cpuset="0x00001000"
allowed_cpuset="0x00001000"/>
</object>
</object>
</object>
</object>
</object>
<!-- ...other sockets listed here ... -->
</object>
</topology>
\endverbatim
On a 4-socket 2-core Opteron NUMA machine, the \c lstopo tool may show
the following graphic output:
\image html hagrid.png
\image latex hagrid.png width=\textwidth
Here's the equivalent output in textual form:
\verbatim