From: Roy Li <[email protected]>

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 <[email protected]>
---
 .../numactl/Fix-the-test-output-format.patch       |   59 ++++++++++++++++++++
 meta-oe/recipes-support/numactl/numactl/Makefile   |    7 +++
 .../numactl/numactl/fix-null-pointer.patch         |   28 ++++++++++
 meta-oe/recipes-support/numactl/numactl/run-ptest  |    9 +++
 meta-oe/recipes-support/numactl/numactl_2.0.9.bb   |   43 ++++++++++++++
 5 files changed, 146 insertions(+)
 create mode 100644 
meta-oe/recipes-support/numactl/numactl/Fix-the-test-output-format.patch
 create mode 100644 meta-oe/recipes-support/numactl/numactl/Makefile
 create mode 100644 
meta-oe/recipes-support/numactl/numactl/fix-null-pointer.patch
 create mode 100755 meta-oe/recipes-support/numactl/numactl/run-ptest
 create mode 100644 meta-oe/recipes-support/numactl/numactl_2.0.9.bb

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 0000000..8c309a4
--- /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 <[email protected]>
+---
+ 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 0000000..9a5134c
--- /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 0000000..53952ae
--- /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 <[email protected]>
+---
+ 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 0000000..215f7c2
--- /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 0000000..bbb3393
--- /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}/
+}
-- 
1.7.10.4

-- 
_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-devel

Reply via email to