summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.ac26
-rw-r--r--libvirt.spec.in23
-rw-r--r--src/qemu/qemu_process.c2
3 files changed, 44 insertions, 7 deletions
diff --git a/configure.ac b/configure.ac
index 31f08351be..d624ef2695 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1445,14 +1445,29 @@ AM_CONDITIONAL([HAVE_NUMACTL], [test "$with_numactl" != "no"])
AC_SUBST([NUMACTL_CFLAGS])
AC_SUBST([NUMACTL_LIBS])
-dnl Do we have numad?
-if test "$with_qemu" = "yes"; then
- AC_PATH_PROG([NUMAD], [numad], [], [/bin:/usr/bin:/usr/local/bin:$PATH])
+dnl numad
+AC_ARG_WITH([numad],
+ AC_HELP_STRING([--with-numad], [use numad to manage CPU placement dynamically @<:@default=check@:>@]),
+ [],
+ [with_numad=check])
- if test -n "$NUMAD"; then
- AC_DEFINE_UNQUOTED([NUMAD],["$NUMAD"], [Location or name of the numad program])
+if test "$with_numad" != "no" ; then
+ AC_PATH_PROG([NUMAD], [numad], [], [/bin:/usr/bin])
+ if test -z "$NUMAD" ; then
+ if test "$with_numad" = "check"; then
+ with_numad="no"
+ else
+ AC_MSG_ERROR([You must install the 'numad' to manage CPU placement dynamically])
fi
+ else
+ with_numad="yes"
+ fi
+ if test "$with_numad" = "yes"; then
+ AC_DEFINE_UNQUOTED([HAVE_NUMAD], 1, [whether numad is available])
+ AC_DEFINE_UNQUOTED([NUMAD],["$NUMAD"], [Location or name of the numad program])
+ fi
fi
+AM_CONDITIONAL([HAVE_NUMAD], [test "$with_numad" != "no"])
dnl pcap lib
LIBPCAP_CONFIG="pcap-config"
@@ -2774,6 +2789,7 @@ AC_MSG_NOTICE([Warning Flags: $WARN_CFLAGS])
AC_MSG_NOTICE([ Readline: $lv_use_readline])
AC_MSG_NOTICE([ Python: $with_python])
AC_MSG_NOTICE([ DTrace: $with_dtrace])
+AC_MSG_NOTICE([ numad: $with_numad])
AC_MSG_NOTICE([ XML Catalog: $XML_CATALOG_FILE])
AC_MSG_NOTICE([ Init script: $with_init_script])
AC_MSG_NOTICE([Console locks: $with_console_lock_files])
diff --git a/libvirt.spec.in b/libvirt.spec.in
index 9e7964e2e4..67f1c33a08 100644
--- a/libvirt.spec.in
+++ b/libvirt.spec.in
@@ -84,6 +84,7 @@
%define with_cgconfig 0%{!?_without_cgconfig:0}
%define with_sanlock 0%{!?_without_sanlock:0}
%define with_systemd 0%{!?_without_systemd:0}
+%define with_numad 0%{!?_without_numad:0}
# Non-server/HV driver defaults which are always enabled
%define with_python 0%{!?_without_python:1}
@@ -205,11 +206,19 @@
%define with_storage_disk 0
%endif
-# Enable libpcap library
%if %{with_qemu}
%define with_nwfilter 0%{!?_without_nwfilter:%{server_drivers}}
+# Enable libpcap library
%define with_libpcap 0%{!?_without_libpcap:%{server_drivers}}
%define with_macvtap 0%{!?_without_macvtap:%{server_drivers}}
+
+# numad is used to manage the CPU placement dynamically,
+# it's not available on s390[x] and ARM.
+%if 0%{?fedora} >= 17 || 0%{?rhel} >= 6
+%ifnarch s390 s390x %{arm}
+%define with_numad 0%{!?_without_numad:%{server_drivers}}
+%endif
+%endif
%endif
%if %{with_macvtap}
@@ -357,6 +366,9 @@ Requires(post): systemd-sysv
Requires(preun): systemd-units
Requires(postun): systemd-units
%endif
+%if %{with_numad}
+Requires: numad
+%endif
# All build-time requirements
%if 0%{?enable_autotools}
@@ -516,6 +528,10 @@ BuildRequires: gawk
# For storage wiping with different algorithms
BuildRequires: scrub
+%if %{with_numad}
+BuildRequires: numad
+%endif
+
%description
Libvirt is a C toolkit to interact with the virtualization capabilities
of recent versions of Linux (and other OSes). The main package includes
@@ -690,6 +706,10 @@ of recent versions of Linux (and other OSes).
%define _without_numactl --without-numactl
%endif
+%if ! %{with_numad}
+%define _without_numad --without-numad
+%endif
+
%if ! %{with_capng}
%define _without_capng --without-capng
%endif
@@ -775,6 +795,7 @@ autoreconf -if
%{?_without_storage_disk} \
%{?_without_storage_mpath} \
%{?_without_numactl} \
+ %{?_without_numad} \
%{?_without_capng} \
%{?_without_netcf} \
%{?_without_selinux} \
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 88b128b6e0..0e768fe0f6 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -1754,7 +1754,7 @@ qemuProcessInitNumaMemoryPolicy(virDomainObjPtr vm)
}
#endif
-#if defined(NUMAD)
+#if HAVE_NUMAD
static char *
qemuGetNumadAdvice(virDomainDefPtr def)
{