From: Petr Holasek <pholasek@redhat.com>
To: Cliff Wickman <cpw@sgi.com>
Cc: Andi Kleen <andi@firstfloor.org>,
linux-numa@vger.kernel.org, Petr Holasek <pholasek@redhat.com>
Subject: [PATCH 2/2] libnuma: added regression test for new --all option
Date: Tue, 10 Sep 2013 15:13:17 +0200 [thread overview]
Message-ID: <1378818797-32280-3-git-send-email-pholasek@redhat.com> (raw)
In-Reply-To: <1378818797-32280-1-git-send-email-pholasek@redhat.com>
---
test/bind_range | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
test/regress2 | 1 +
2 files changed, 105 insertions(+)
diff --git a/test/bind_range b/test/bind_range
new file mode 100755
index 0000000..8e0bc22
--- /dev/null
+++ b/test/bind_range
@@ -0,0 +1,104 @@
+#!/bin/bash
+
+# This simple script checks --all/-a option which is used for
+# supressing of default cpuset awareness of options --cpunodebind,
+# --physcpubind, --interleave, --preferred and --membind.
+
+# NOTE: Test needs two nodes and two cpus at least
+
+
+export old_mask
+
+eval_test() {
+ echo "Running $1.."
+ $1
+ if [ $? == 1 ] ; then
+ echo -e "$1 FAILED!"
+ reset_mask
+ exit 1
+ fi
+ echo -e "$1 PASSED"
+}
+
+function check_arg_order
+{
+ numactl --all --physcpubind=$HIGHESTCPU ls > /dev/null 2>&1
+ if [ $? == 1 ] ; then
+ return 1;
+ fi
+ numactl --physcpubind=$HIGHESTCPU --all ls > /dev/null 2>&1
+ if [ $? == 0 ] ; then
+ return 1;
+ fi
+
+ return 0
+}
+
+function check_physcpubind
+{
+ reset_mask
+ set_cpu_affinity 0
+ numactl --physcpubind=$HIGHESTCPU ls > /dev/null 2>&1
+ if [ $? == 0 ] ; then # shouldn't pass so easy
+ return 1;
+ fi
+ numactl --all --physcpubind=$HIGHESTCPU ls > /dev/null 2>&1
+ if [ $? == 1 ] ; then # shouldn't fail
+ return 1;
+ fi
+
+ return 0
+}
+
+function check_cpunodebind
+{
+ local low_cpu_range
+ local high_cpu
+
+ reset_mask
+ low_cpu_range=$(cat /sys/devices/system/node/node$LOWESTNODE/cpulist)
+ set_cpu_affinity $low_cpu_range
+ numactl --cpunodebind=$HIGHESTNODE ls > /dev/null 2>&1
+ if [ $? == 1 ] ; then # should pass
+ return 1;
+ fi
+ numactl --all --cpunodebind=$HIGHESTNODE ls > /dev/null 2>&1
+ if [ $? == 1 ] ; then # should pass for sure
+ return 1;
+ fi
+
+ return 0
+}
+
+function set_cpu_affinity
+{
+ taskset -p -c $1 $$ > /dev/null
+ #echo -e "\taffinity of shell was set to" $1
+}
+
+function get_mask
+{
+ old_mask=$(taskset -p $$ | cut -f2 -d: | sed -e 's/^[ \t]*//')
+}
+
+function reset_mask
+{
+ taskset -p $old_mask $$ > /dev/null
+ #echo -e "\taffinity of shell was reset to" $old_mask
+}
+
+HIGHESTCPU=$(grep 'processor' /proc/cpuinfo | tail -n1 | cut -f2 -d' ')
+HIGHESTNODE=$(numactl -H | grep -e 'node [0-9]* cpus' | tail -n1 | cut -f2 -d' ')
+LOWESTNODE=$(numactl -H | grep -e 'node [0-9]* cpus' | head -n1 | cut -f2 -d' ')
+
+get_mask
+
+eval_test check_arg_order
+eval_test check_physcpubind
+eval_test check_cpunodebind
+
+reset_mask
+
+exit 0
+
+
diff --git a/test/regress2 b/test/regress2
index b6a9211..d71f290 100755
--- a/test/regress2
+++ b/test/regress2
@@ -23,4 +23,5 @@ T ./nodemap
T ./checkaffinity
T ./checktopology
T ./tbitmap
+T ./bind_range
#T ./randmap
--
1.8.1.4
next prev parent reply other threads:[~2013-09-10 13:13 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-10 13:13 [PATCH 0/2] follow-up patches for new --all option Petr Holasek
2013-09-10 13:13 ` [PATCH 1/2] libnuma: new function numa_run_on_node_mask_all added to library manpage Petr Holasek
2013-09-10 13:13 ` Petr Holasek [this message]
2013-09-10 17:56 ` [PATCH 0/2] follow-up patches for new --all option Andi Kleen
2013-09-10 18:25 ` Cliff Wickman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1378818797-32280-3-git-send-email-pholasek@redhat.com \
--to=pholasek@redhat.com \
--cc=andi@firstfloor.org \
--cc=cpw@sgi.com \
--cc=linux-numa@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).