[oe] [PATCH][meta-oe] numctl: add recipe
Rongqing Li
rongqing.li at windriver.com
Fri Jul 18 08:42:06 UTC 2014
On 07/18/2014 04:08 PM, Martin Jansa wrote:
> On Fri, Jul 18, 2014 at 03:41:15PM +0800, rongqing.li at windriver.com wrote:
>> From: Roy Li <rongqing.li at windriver.com>
>>
>> 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.
>
> Does it need separate .inc file? With one version per recipe we're not
> using .inc very much.
>
> Also please move files from "files" to "numactl" for faster lookup.
> '
OK, I will change it
-Roy
>>
>> Signed-off-by: Roy Li <rongqing.li at windriver.com>
>> ---
>> .../numactl/files/Fix-the-test-output-format.patch | 59 ++++++++++++++++++++
>> meta-oe/recipes-support/numactl/files/Makefile | 7 +++
>> .../numactl/files/fix-null-pointer.patch | 28 ++++++++++
>> meta-oe/recipes-support/numactl/files/run-ptest | 9 +++
>> meta-oe/recipes-support/numactl/numactl.inc | 40 +++++++++++++
>> meta-oe/recipes-support/numactl/numactl_2.0.9.bb | 6 ++
>> 6 files changed, 149 insertions(+)
>> create mode 100644 meta-oe/recipes-support/numactl/files/Fix-the-test-output-format.patch
>> create mode 100644 meta-oe/recipes-support/numactl/files/Makefile
>> create mode 100644 meta-oe/recipes-support/numactl/files/fix-null-pointer.patch
>> create mode 100755 meta-oe/recipes-support/numactl/files/run-ptest
>> create mode 100644 meta-oe/recipes-support/numactl/numactl.inc
>> create mode 100644 meta-oe/recipes-support/numactl/numactl_2.0.9.bb
>>
>> diff --git a/meta-oe/recipes-support/numactl/files/Fix-the-test-output-format.patch b/meta-oe/recipes-support/numactl/files/Fix-the-test-output-format.patch
>> new file mode 100644
>> index 0000000..8c309a4
>> --- /dev/null
>> +++ b/meta-oe/recipes-support/numactl/files/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 at 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/files/Makefile b/meta-oe/recipes-support/numactl/files/Makefile
>> new file mode 100644
>> index 0000000..6489f83
>> --- /dev/null
>> +++ b/meta-oe/recipes-support/numactl/files/Makefile
>> @@ -0,0 +1,7 @@
>> +.PHONY: regress1 regress2
>> +
>> +regress1:
>> + cd test ; ./regress
>> +
>> +regress2:
>> + cd test ; ./regress2
>> diff --git a/meta-oe/recipes-support/numactl/files/fix-null-pointer.patch b/meta-oe/recipes-support/numactl/files/fix-null-pointer.patch
>> new file mode 100644
>> index 0000000..6a29606
>> --- /dev/null
>> +++ b/meta-oe/recipes-support/numactl/files/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 at 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/files/run-ptest b/meta-oe/recipes-support/numactl/files/run-ptest
>> new file mode 100755
>> index 0000000..6f67ec2
>> --- /dev/null
>> +++ b/meta-oe/recipes-support/numactl/files/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.inc b/meta-oe/recipes-support/numactl/numactl.inc
>> new file mode 100644
>> index 0000000..21a8123
>> --- /dev/null
>> +++ b/meta-oe/recipes-support/numactl/numactl.inc
>> @@ -0,0 +1,40 @@
>> +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
>> +
>> +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}/
>> +}
>> +
>> 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..1a103cd
>> --- /dev/null
>> +++ b/meta-oe/recipes-support/numactl/numactl_2.0.9.bb
>> @@ -0,0 +1,6 @@
>> +require ${PN}.inc
>> +
>> +LIC_FILES_CHKSUM = "file://README;beginline=19;endline=32;md5=5644cc3851cb2499f6c48e52fe198bd9"
>> +SRC_URI[md5sum] = "136685c8eaf9d6569c351fe1d453b30c"
>> +SRC_URI[sha256sum] = "9ca033e6c14c0f26c20379b0cf9299429fd5a354a79c3c7880fd41ef69f7751c"
>> +
>> --
>> 1.7.10.4
>>
>> --
>> _______________________________________________
>> Openembedded-devel mailing list
>> Openembedded-devel at lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
>
>
>
--
Best Reagrds,
Roy | RongQing Li
More information about the Openembedded-devel
mailing list