123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- ##*****************************************************************************
- # AUTHOR:
- # Morris Jette <jette1@llnl.gov>
- #
- # SYNOPSIS:
- # X_AC_AFFINITY
- #
- # DESCRIPTION:
- # Test for various task affinity functions and set the definitions.
- #
- # WARNINGS:
- # This macro must be placed after AC_PROG_CC or equivalent.
- ##*****************************************************************************
- AC_DEFUN([X_AC_AFFINITY], [
- # Test if sched_setaffinity function exists and argument count (it can vary)
- AC_CHECK_FUNCS(sched_setaffinity, [have_sched_setaffinity=yes])
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#define _GNU_SOURCE
- #include <sched.h>]], [[cpu_set_t mask;
- sched_getaffinity(0, sizeof(cpu_set_t), &mask);]])],[AC_DEFINE(SCHED_GETAFFINITY_THREE_ARGS, 1,
- [Define to 1 if sched_getaffinity takes three arguments.])],[])
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#define _GNU_SOURCE
- #include <sched.h>]], [[cpu_set_t mask;
- sched_getaffinity(0, &mask);]])],[AC_DEFINE(SCHED_GETAFFINITY_TWO_ARGS, 1,
- [Define to 1 if sched_getaffinity takes two arguments.])],[])
- #
- # Test for NUMA memory afffinity functions and set the definitions
- #
- AC_CHECK_LIB([numa],
- [numa_available],
- [ac_have_numa=yes; NUMA_LIBS="-lnuma"])
- AC_SUBST(NUMA_LIBS)
- AM_CONDITIONAL(HAVE_NUMA, test "x$ac_have_numa" = "xyes")
- if test "x$ac_have_numa" = "xyes"; then
- AC_DEFINE(HAVE_NUMA, 1, [define if numa library installed])
- CFLAGS="-DNUMA_VERSION1_COMPATIBILITY $CFLAGS"
- else
- AC_MSG_WARN([unable to locate NUMA memory affinity functions])
- fi
- #
- # Test for cpuset directory
- #
- cpuset_default_dir="/dev/cpuset"
- AC_ARG_WITH([cpusetdir],
- AS_HELP_STRING(--with-cpusetdir=PATH,specify path to cpuset directory default is /dev/cpuset),
- [try_path=$withval])
- for cpuset_dir in $try_path "" $cpuset_default_dir; do
- if test -d "$cpuset_dir" ; then
- AC_DEFINE_UNQUOTED(CPUSET_DIR, "$cpuset_dir", [Define location of cpuset directory])
- have_sched_setaffinity=yes
- break
- fi
- done
- #
- # Set HAVE_SCHED_SETAFFINITY if any task affinity supported
- AM_CONDITIONAL(HAVE_SCHED_SETAFFINITY, test "x$have_sched_setaffinity" = "xyes")
- ])
|