mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-07-16 16:27:27 +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