[PATCH 2/4] NUMA: add Linux libnuma detection

Andre Przywara
2010-08-11T13:52:24Z

Add detection of libnuma (mostly contained in the numactl package)
to the configure script. Currently this is Linux only, but can be
extended later should the need for other interfaces come up.
Can be enabled or disabled on the command line, default is use if
available.

Signed-off-by: Andre Przywara <andre.przywara@amd.com>
---
configure | 33 +++++++++++++++++++++++++++++++++
1 files changed, 33 insertions(+), 0 deletions(-)

diff --git a/configure b/configure
index af50607..91d5e48 100755
--- a/configure
+++ b/configure
@@ -282,6 +282,7 @@ xen=""
linux_aio=""
attr=""
vhost_net=""
+numa="yes"

gprof="no"
debug_tcg="no"
@@ -722,6 +723,10 @@ for opt do
;;
--enable-vhost-net) vhost_net="yes"
;;
+ --disable-numa) numa="no"
+ ;;
+ --enable-numa) numa="yes"
+ ;;
--*dir)
;;
*) echo "ERROR: unknown option $opt"; show_help="yes"
@@ -909,6 +914,8 @@ echo " --enable-docs enable documentation build"
echo " --disable-docs disable documentation build"
echo " --disable-vhost-net disable vhost-net acceleration support"
echo " --enable-vhost-net enable vhost-net acceleration support"
+echo " --disable-numa disable host Linux NUMA support"
+echo " --enable-numa enable host Linux NUMA support"
echo ""
echo "NOTE: The object files are built at the place where configure is launched"
exit 1
@@ -1987,6 +1994,28 @@ if compile_prog "" "" ; then
signalfd=yes
fi

+##########################################
+# libnuma probe
+
+if test "$numa" = "yes" ; then
+ numa=no
+ cat > $TMPC << EOF
+#include <numa.h>
+int main(void) { return numa_available(); }
+EOF
+
+ if compile_prog "" "-lnuma" ; then
+ numa=yes
+ libs_softmmu="-lnuma $libs_softmmu"
+ else
+ if test "$numa" = "yes" ; then
+ feature_not_found "linux NUMA (install numactl?)"
+ fi
+ numa=no
+ fi
+fi
+
+
# check if eventfd is supported
eventfd=no
cat > $TMPC << EOF
@@ -2256,6 +2285,7 @@ echo "preadv support $preadv"
echo "fdatasync $fdatasync"
echo "uuid support $uuid"
echo "vhost-net support $vhost_net"
+echo "NUMA host support $numa"

if test $sdl_too_old = "yes"; then
echo "-> Your SDL version is too old - please upgrade to have SDL support"
@@ -2487,6 +2517,9 @@ if test $cpu_emulation = "yes"; then
else
echo "CONFIG_NO_CPU_EMULATION=y" >> $config_host_mak
fi
+if test "$numa" = "yes"; then
+ echo "CONFIG_NUMA=y" >> $config_host_mak
+fi

# XXX: suppress that
if [ "$bsd" = "yes" ] ; then
--
1.6.4