mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-06-04 14:39:54 +00:00
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>
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
.PHONY: regress1 regress2
|
||||
|
||||
regress1:
|
||||
cd test ; ./regress
|
||||
|
||||
regress2:
|
||||
cd test ; ./regress2
|
||||
@@ -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
|
||||
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
#!/bin/sh
|
||||
make regress1
|
||||
make regress2
|
||||
if numademo -t -e 10M; then
|
||||
echo "PASS: numademo"
|
||||
else
|
||||
echo "FAIL: numademo"
|
||||
fi
|
||||
|
||||
@@ -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}/
|
||||
}
|
||||
Reference in New Issue
Block a user