aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe
diff options
context:
space:
mode:
authorRoy Li <rongqing.li@windriver.com>2014-07-18 16:50:02 +0800
committerMartin Jansa <Martin.Jansa@gmail.com>2014-07-22 00:01:57 +0200
commit3bcea1441cc608fc7e0913c5b8c30b39c5eef3aa (patch)
treeb59298b5933b46e3bfa310fa8998b9435a6bdee3 /meta-oe
parent96d6bd7721dd4c95663e2aea65f2a8df0e62325c (diff)
downloadmeta-openembedded-contrib-3bcea1441cc608fc7e0913c5b8c30b39c5eef3aa.tar.gz
meta-openembedded-contrib-3bcea1441cc608fc7e0913c5b8c30b39c5eef3aa.tar.bz2
meta-openembedded-contrib-3bcea1441cc608fc7e0913c5b8c30b39c5eef3aa.zip
numctl: add recipe
It consists of a numactl program to run other programs with a specific NUMA policy and a libnuma to do allocations with NUMA policy in applications. Signed-off-by: Roy Li <rongqing.li@windriver.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Diffstat (limited to 'meta-oe')
-rw-r--r--meta-oe/recipes-support/numactl/numactl/Fix-the-test-output-format.patch59
-rw-r--r--meta-oe/recipes-support/numactl/numactl/Makefile7
-rw-r--r--meta-oe/recipes-support/numactl/numactl/fix-null-pointer.patch28
-rwxr-xr-xmeta-oe/recipes-support/numactl/numactl/run-ptest9
-rw-r--r--meta-oe/recipes-support/numactl/numactl_2.0.9.bb43
5 files changed, 146 insertions, 0 deletions
diff --git a/meta-oe/recipes-support/numactl/numactl/Fix-the-test-output-format.patch b/meta-oe/recipes-support/numactl/numactl/Fix-the-test-output-format.patch
new file mode 100644
index 0000000000..8c309a4b5c
--- /dev/null
+++ b/meta-oe/recipes-support/numactl/numactl/Fix-the-test-output-format.patch
@@ -0,0 +1,59 @@
+[PATCH] Fix the test output format
+
+Upstream-Status: Pending
+
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+---
+ test/regress | 6 +++---
+ test/regress2 | 9 ++++-----
+ 2 files changed, 7 insertions(+), 8 deletions(-)
+
+diff --git a/test/regress b/test/regress
+index 05eff5b..10d72f7 100755
+--- a/test/regress
++++ b/test/regress
+@@ -73,6 +73,7 @@ probe_hardware()
+ if [ $numnodes -lt 2 ] ; then
+ echo "need at least two nodes with at least $NEEDPAGES each of"
+ echo "free memory for mempolicy regression tests"
++ echo "FAIL: numa regress"
+ exit 1
+ fi
+ }
+@@ -206,10 +207,9 @@ main()
+ rm A B
+
+ if [ "$EXIT" = 0 ] ; then
+- echo '========SUCCESS'
++ echo 'PASS: numactl regress'
+ else
+- echo '========FAILURE'
+- exit 1
++ echo 'FAIL: numactl regress'
+ fi
+ }
+
+diff --git a/test/regress2 b/test/regress2
+index 6a254fa..9c97943 100755
+--- a/test/regress2
++++ b/test/regress2
+@@ -6,12 +6,11 @@ VALGRIND=${VALGRIND:-}
+ export LD_LIBRARY_PATH=`pwd`/..
+
+ T() {
+- echo "$@"
+- if ! $VALGRIND "$@" ; then
+- echo $1 FAILED!!!!
+- exit 1
++ if ! $VALGRIND "$@" 2>&1 1>/dev/null; then
++ echo "FAIL: $1"
++ else
++ echo "PASS: $1"
+ fi
+- echo
+ }
+
+ # various tests
+--
+1.7.10.4
+
diff --git a/meta-oe/recipes-support/numactl/numactl/Makefile b/meta-oe/recipes-support/numactl/numactl/Makefile
new file mode 100644
index 0000000000..9a5134c3f2
--- /dev/null
+++ b/meta-oe/recipes-support/numactl/numactl/Makefile
@@ -0,0 +1,7 @@
+.PHONY: regress1 regress2
+
+regress1:
+ cd test ; ./regress
+
+regress2:
+ cd test ; ./regress2
diff --git a/meta-oe/recipes-support/numactl/numactl/fix-null-pointer.patch b/meta-oe/recipes-support/numactl/numactl/fix-null-pointer.patch
new file mode 100644
index 0000000000..53952aef95
--- /dev/null
+++ b/meta-oe/recipes-support/numactl/numactl/fix-null-pointer.patch
@@ -0,0 +1,28 @@
+[PATCH] return 0 if distance_table is NULL
+
+Upstream-Status: Pending
+
+read_distance_table() maybe return 0, but distance_table is not set,
+if distance_table is used, and will lead to SEGFAULT
+
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+---
+ distance.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/distance.c b/distance.c
+index 4a26972..c6ca021 100755
+--- a/distance.c
++++ b/distance.c
+@@ -113,6 +113,8 @@ int numa_distance(int a, int b)
+ int err = read_distance_table();
+ if (err < 0)
+ return 0;
++ if (!distance_table)
++ return 0;
+ }
+ return distance_table[a * distance_numnodes + b];
+ }
+--
+1.7.10.4
+
diff --git a/meta-oe/recipes-support/numactl/numactl/run-ptest b/meta-oe/recipes-support/numactl/numactl/run-ptest
new file mode 100755
index 0000000000..215f7c25b9
--- /dev/null
+++ b/meta-oe/recipes-support/numactl/numactl/run-ptest
@@ -0,0 +1,9 @@
+#!/bin/sh
+make regress1
+make regress2
+if numademo -t -e 10M; then
+ echo "PASS: numademo"
+else
+ echo "FAIL: numademo"
+fi
+
diff --git a/meta-oe/recipes-support/numactl/numactl_2.0.9.bb b/meta-oe/recipes-support/numactl/numactl_2.0.9.bb
new file mode 100644
index 0000000000..bbb3393a4a
--- /dev/null
+++ b/meta-oe/recipes-support/numactl/numactl_2.0.9.bb
@@ -0,0 +1,43 @@
+SUMMARY = "Development package for building Applications that use numa"
+DESCRIPTION = "Simple NUMA policy support. It consists of a numactl program \
+to run other programs with a specific NUMA policy and a libnuma to do \
+allocations with NUMA policy in applications."
+LICENSE = "GPL-2.0 & LGPL-2.1"
+SECTION = "apps"
+RDEPENDS_${PN} = "perl"
+
+inherit autotools-brokensep ptest
+
+LIC_FILES_CHKSUM = "file://README;beginline=19;endline=32;md5=5644cc3851cb2499f6c48e52fe198bd9"
+SRC_URI[md5sum] = "136685c8eaf9d6569c351fe1d453b30c"
+SRC_URI[sha256sum] = "9ca033e6c14c0f26c20379b0cf9299429fd5a354a79c3c7880fd41ef69f7751c"
+
+SRC_URI = "ftp://oss.sgi.com/www/projects/libnuma/download/${BPN}-${PV}.tar.gz \
+ file://fix-null-pointer.patch \
+ file://Fix-the-test-output-format.patch \
+ file://Makefile \
+ file://run-ptest \
+ "
+
+# ARM does not currently support NUMA
+COMPATIBLE_HOST = "^((?!arm).*)$"
+
+do_install() {
+ oe_runmake DESTDIR=${D} prefix=${D}/usr libdir=${D}/${libdir} install
+ #remove the empty man2 directory
+ rm -r ${D}${mandir}/man2
+}
+
+do_install_ptest() {
+ #install tests binaries
+ local test_binaries="checkaffinity checktopology distance \
+ ftok mbind_mig_pages migrate_pages move_pages mynode \
+ nodemap pagesize prefered printcpu randmap realloc_test \
+ regress regress2 runltp shmtest tbitmap tshared"
+
+ [ ! -d ${D}/${PTEST_PATH}/test ] && mkdir -p ${D}/${PTEST_PATH}/test
+ for i in $test_binaries; do
+ install -m 0755 ${B}/test/$i ${D}${PTEST_PATH}/test
+ done
+ install -m 0755 ${WORKDIR}/Makefile ${D}${PTEST_PATH}/
+}