* [PATCH v2 selftests 1/6] selftests: Add missing #include directives
[not found] ` <20151102122048.GA17015-/+tVBieCtBitmTQ+vhA3Yw@public.gmane.org>
@ 2015-11-02 12:21 ` Ben Hutchings
2015-11-02 12:21 ` [PATCH v2 selftests 2/6] selftests: memfd: Stop unnecessary rebuilds Ben Hutchings
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Ben Hutchings @ 2015-11-02 12:21 UTC (permalink / raw)
To: Shuah Khan; +Cc: linux-api-u79uwXL29TY76Z2rM5mHXA
[-- Attachment #1: Type: text/plain, Size: 2226 bytes --]
Several C programs fail to include the headers declaring all the
functions they call, resulting in warnings or errors.
After this, memfd_test.c is still missing some function declarations
but can't easily get them because of a conflict between
<linux/fcntl.h> and <sys/fcntl.h>.
Signed-off-by: Ben Hutchings <ben-/+tVBieCtBitmTQ+vhA3Yw@public.gmane.org>
---
tools/testing/selftests/memfd/memfd_test.c | 1 +
tools/testing/selftests/mqueue/mq_open_tests.c | 1 +
tools/testing/selftests/mqueue/mq_perf_tests.c | 1 +
tools/testing/selftests/timers/nanosleep.c | 1 +
4 files changed, 4 insertions(+)
diff --git a/tools/testing/selftests/memfd/memfd_test.c b/tools/testing/selftests/memfd/memfd_test.c
index 0b9eafb..5347ef6 100644
--- a/tools/testing/selftests/memfd/memfd_test.c
+++ b/tools/testing/selftests/memfd/memfd_test.c
@@ -15,6 +15,7 @@
#include <sys/mman.h>
#include <sys/stat.h>
#include <sys/syscall.h>
+#include <sys/wait.h>
#include <unistd.h>
#define MFD_DEF_SIZE 8192
diff --git a/tools/testing/selftests/mqueue/mq_open_tests.c b/tools/testing/selftests/mqueue/mq_open_tests.c
index 9c1a5d35..e0a74bd 100644
--- a/tools/testing/selftests/mqueue/mq_open_tests.c
+++ b/tools/testing/selftests/mqueue/mq_open_tests.c
@@ -31,6 +31,7 @@
#include <sys/resource.h>
#include <sys/stat.h>
#include <mqueue.h>
+#include <error.h>
static char *usage =
"Usage:\n"
diff --git a/tools/testing/selftests/mqueue/mq_perf_tests.c b/tools/testing/selftests/mqueue/mq_perf_tests.c
index 8519e9e..8188f72 100644
--- a/tools/testing/selftests/mqueue/mq_perf_tests.c
+++ b/tools/testing/selftests/mqueue/mq_perf_tests.c
@@ -37,6 +37,7 @@
#include <sys/stat.h>
#include <mqueue.h>
#include <popt.h>
+#include <error.h>
static char *usage =
"Usage:\n"
diff --git a/tools/testing/selftests/timers/nanosleep.c b/tools/testing/selftests/timers/nanosleep.c
index 8a3c29d..ff942ff 100644
--- a/tools/testing/selftests/timers/nanosleep.c
+++ b/tools/testing/selftests/timers/nanosleep.c
@@ -19,6 +19,7 @@
* GNU General Public License for more details.
*/
+#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 811 bytes --]
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH v2 selftests 2/6] selftests: memfd: Stop unnecessary rebuilds
[not found] ` <20151102122048.GA17015-/+tVBieCtBitmTQ+vhA3Yw@public.gmane.org>
2015-11-02 12:21 ` [PATCH v2 selftests 1/6] selftests: Add missing #include directives Ben Hutchings
@ 2015-11-02 12:21 ` Ben Hutchings
2015-11-02 12:22 ` [PATCH v2 selftests 3/6] selftests: kprobe: Choose an always-defined function to probe Ben Hutchings
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Ben Hutchings @ 2015-11-02 12:21 UTC (permalink / raw)
To: Shuah Khan; +Cc: linux-api-u79uwXL29TY76Z2rM5mHXA
[-- Attachment #1: Type: text/plain, Size: 1168 bytes --]
Instead of explicitly running the compiler, add dependencies and take
advantage of implicit rules to build only as necessary.
Signed-off-by: Ben Hutchings <ben-/+tVBieCtBitmTQ+vhA3Yw@public.gmane.org>
---
tools/testing/selftests/memfd/Makefile | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/tools/testing/selftests/memfd/Makefile b/tools/testing/selftests/memfd/Makefile
index 3e7eb79..fd396ac 100644
--- a/tools/testing/selftests/memfd/Makefile
+++ b/tools/testing/selftests/memfd/Makefile
@@ -4,16 +4,16 @@ CFLAGS += -I../../../../include/uapi/
CFLAGS += -I../../../../include/
CFLAGS += -I../../../../usr/include/
-all:
- $(CC) $(CFLAGS) memfd_test.c -o memfd_test
-
TEST_PROGS := memfd_test
+all: $(TEST_PROGS)
+
include ../lib.mk
-build_fuse:
- $(CC) $(CFLAGS) fuse_mnt.c `pkg-config fuse --cflags --libs` -o fuse_mnt
- $(CC) $(CFLAGS) fuse_test.c -o fuse_test
+build_fuse: fuse_mnt fuse_test
+
+fuse_mnt.o: CFLAGS += $(shell pkg-config fuse --cflags)
+fuse_mnt: LDFLAGS += $(shell pkg-config fuse --libs)
run_fuse: build_fuse
@./run_fuse_test.sh || echo "fuse_test: [FAIL]"
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 811 bytes --]
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH v2 selftests 3/6] selftests: kprobe: Choose an always-defined function to probe
[not found] ` <20151102122048.GA17015-/+tVBieCtBitmTQ+vhA3Yw@public.gmane.org>
2015-11-02 12:21 ` [PATCH v2 selftests 1/6] selftests: Add missing #include directives Ben Hutchings
2015-11-02 12:21 ` [PATCH v2 selftests 2/6] selftests: memfd: Stop unnecessary rebuilds Ben Hutchings
@ 2015-11-02 12:22 ` Ben Hutchings
2015-11-02 12:22 ` [PATCH v2 selftests 4/6] selftests: Make scripts executable Ben Hutchings
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Ben Hutchings @ 2015-11-02 12:22 UTC (permalink / raw)
To: Shuah Khan; +Cc: linux-api-u79uwXL29TY76Z2rM5mHXA
[-- Attachment #1: Type: text/plain, Size: 4630 bytes --]
do_fork() is no longer defined on x86, so probe _do_fork() instead.
Fixes: 3033f14ab78c ("clone: support passing tls argument via C ...")
Signed-off-by: Ben Hutchings <ben-/+tVBieCtBitmTQ+vhA3Yw@public.gmane.org>
---
.../selftests/ftrace/test.d/kprobe/add_and_remove.tc | 2 +-
tools/testing/selftests/ftrace/test.d/kprobe/busy_check.tc | 2 +-
.../testing/selftests/ftrace/test.d/kprobe/kprobe_args.tc | 2 +-
.../selftests/ftrace/test.d/kprobe/kprobe_ftrace.tc | 14 +++++++-------
.../selftests/ftrace/test.d/kprobe/kretprobe_args.tc | 2 +-
5 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/add_and_remove.tc b/tools/testing/selftests/ftrace/test.d/kprobe/add_and_remove.tc
index a5a4262..c3843ed 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/add_and_remove.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/add_and_remove.tc
@@ -5,7 +5,7 @@
echo 0 > events/enable
echo > kprobe_events
-echo p:myevent do_fork > kprobe_events
+echo p:myevent _do_fork > kprobe_events
grep myevent kprobe_events
test -d events/kprobes/myevent
echo > kprobe_events
diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/busy_check.tc b/tools/testing/selftests/ftrace/test.d/kprobe/busy_check.tc
index d8c7bb6..74507db 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/busy_check.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/busy_check.tc
@@ -5,7 +5,7 @@
echo 0 > events/enable
echo > kprobe_events
-echo p:myevent do_fork > kprobe_events
+echo p:myevent _do_fork > kprobe_events
test -d events/kprobes/myevent
echo 1 > events/kprobes/myevent/enable
echo > kprobe_events && exit 1 # this must fail
diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args.tc
index c45ee27..64949d4 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args.tc
@@ -5,7 +5,7 @@
echo 0 > events/enable
echo > kprobe_events
-echo 'p:testprobe do_fork $stack $stack0 +0($stack)' > kprobe_events
+echo 'p:testprobe _do_fork $stack $stack0 +0($stack)' > kprobe_events
grep testprobe kprobe_events
test -d events/kprobes/testprobe
echo 1 > events/kprobes/testprobe/enable
diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_ftrace.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_ftrace.tc
index ab41d2b..d6f2f49 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_ftrace.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_ftrace.tc
@@ -6,31 +6,31 @@ grep function available_tracers || exit_unsupported # this is configurable
# prepare
echo nop > current_tracer
-echo do_fork > set_ftrace_filter
+echo _do_fork > set_ftrace_filter
echo 0 > events/enable
echo > kprobe_events
-echo 'p:testprobe do_fork' > kprobe_events
+echo 'p:testprobe _do_fork' > kprobe_events
# kprobe on / ftrace off
echo 1 > events/kprobes/testprobe/enable
echo > trace
( echo "forked")
grep testprobe trace
-! grep 'do_fork <-' trace
+! grep '_do_fork <-' trace
# kprobe on / ftrace on
echo function > current_tracer
echo > trace
( echo "forked")
grep testprobe trace
-grep 'do_fork <-' trace
+grep '_do_fork <-' trace
# kprobe off / ftrace on
echo 0 > events/kprobes/testprobe/enable
echo > trace
( echo "forked")
! grep testprobe trace
-grep 'do_fork <-' trace
+grep '_do_fork <-' trace
# kprobe on / ftrace on
echo 1 > events/kprobes/testprobe/enable
@@ -38,14 +38,14 @@ echo function > current_tracer
echo > trace
( echo "forked")
grep testprobe trace
-grep 'do_fork <-' trace
+grep '_do_fork <-' trace
# kprobe on / ftrace off
echo nop > current_tracer
echo > trace
( echo "forked")
grep testprobe trace
-! grep 'do_fork <-' trace
+! grep '_do_fork <-' trace
# cleanup
echo nop > current_tracer
diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kretprobe_args.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kretprobe_args.tc
index 3171798..0d09546 100644
--- a/tools/testing/selftests/ftrace/test.d/kprobe/kretprobe_args.tc
+++ b/tools/testing/selftests/ftrace/test.d/kprobe/kretprobe_args.tc
@@ -5,7 +5,7 @@
echo 0 > events/enable
echo > kprobe_events
-echo 'r:testprobe2 do_fork $retval' > kprobe_events
+echo 'r:testprobe2 _do_fork $retval' > kprobe_events
grep testprobe2 kprobe_events
test -d events/kprobes/testprobe2
echo 1 > events/kprobes/testprobe2/enable
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 811 bytes --]
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH v2 selftests 4/6] selftests: Make scripts executable
[not found] ` <20151102122048.GA17015-/+tVBieCtBitmTQ+vhA3Yw@public.gmane.org>
` (2 preceding siblings ...)
2015-11-02 12:22 ` [PATCH v2 selftests 3/6] selftests: kprobe: Choose an always-defined function to probe Ben Hutchings
@ 2015-11-02 12:22 ` Ben Hutchings
2015-11-02 12:22 ` [PATCH v2 selftests 5/6] selftests: vm: Try harder to allocate huge pages Ben Hutchings
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Ben Hutchings @ 2015-11-02 12:22 UTC (permalink / raw)
To: Shuah Khan; +Cc: linux-api-u79uwXL29TY76Z2rM5mHXA
[-- Attachment #1: Type: text/plain, Size: 852 bytes --]
Fixes: 87b2d44026e0 ("selftests: add memfd/sealing page-pinning tests")
Fixes: 2bf9e0ab08c6 ("locking/static_keys: Provide a selftest")
Signed-off-by: Ben Hutchings <ben-/+tVBieCtBitmTQ+vhA3Yw@public.gmane.org>
---
tools/testing/selftests/memfd/run_fuse_test.sh | 0
tools/testing/selftests/static_keys/test_static_keys.sh | 0
2 files changed, 0 insertions(+), 0 deletions(-)
mode change 100644 => 100755 tools/testing/selftests/memfd/run_fuse_test.sh
mode change 100644 => 100755 tools/testing/selftests/static_keys/test_static_keys.sh
diff --git a/tools/testing/selftests/memfd/run_fuse_test.sh b/tools/testing/selftests/memfd/run_fuse_test.sh
old mode 100644
new mode 100755
diff --git a/tools/testing/selftests/static_keys/test_static_keys.sh b/tools/testing/selftests/static_keys/test_static_keys.sh
old mode 100644
new mode 100755
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 811 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread* [PATCH v2 selftests 5/6] selftests: vm: Try harder to allocate huge pages
[not found] ` <20151102122048.GA17015-/+tVBieCtBitmTQ+vhA3Yw@public.gmane.org>
` (3 preceding siblings ...)
2015-11-02 12:22 ` [PATCH v2 selftests 4/6] selftests: Make scripts executable Ben Hutchings
@ 2015-11-02 12:22 ` Ben Hutchings
2015-11-02 12:22 ` [PATCH v2 selftests 6/6] selftests: breakpoint: Actually build it Ben Hutchings
2015-11-04 0:00 ` [PATCH v2 selftests 0/6] Fix some broken tests Shuah Khan
6 siblings, 0 replies; 8+ messages in thread
From: Ben Hutchings @ 2015-11-02 12:22 UTC (permalink / raw)
To: Shuah Khan; +Cc: linux-api-u79uwXL29TY76Z2rM5mHXA
[-- Attachment #1: Type: text/plain, Size: 1436 bytes --]
If we need to increase the number of huge pages, drop caches first
to reduce fragmentation and then check that we actually allocated
as many as we wanted. Retry once if that doesn't work.
Signed-off-by: Ben Hutchings <ben-/+tVBieCtBitmTQ+vhA3Yw@public.gmane.org>
---
tools/testing/selftests/vm/run_vmtests | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/tools/testing/selftests/vm/run_vmtests b/tools/testing/selftests/vm/run_vmtests
index 9179ce8..97ed1b2 100755
--- a/tools/testing/selftests/vm/run_vmtests
+++ b/tools/testing/selftests/vm/run_vmtests
@@ -20,13 +20,26 @@ done < /proc/meminfo
if [ -n "$freepgs" ] && [ -n "$pgsize" ]; then
nr_hugepgs=`cat /proc/sys/vm/nr_hugepages`
needpgs=`expr $needmem / $pgsize`
- if [ $freepgs -lt $needpgs ]; then
+ tries=2
+ while [ $tries -gt 0 ] && [ $freepgs -lt $needpgs ]; do
lackpgs=$(( $needpgs - $freepgs ))
+ echo 3 > /proc/sys/vm/drop_caches
echo $(( $lackpgs + $nr_hugepgs )) > /proc/sys/vm/nr_hugepages
if [ $? -ne 0 ]; then
echo "Please run this test as root"
exit 1
fi
+ while read name size unit; do
+ if [ "$name" = "HugePages_Free:" ]; then
+ freepgs=$size
+ fi
+ done < /proc/meminfo
+ tries=$((tries - 1))
+ done
+ if [ $freepgs -lt $needpgs ]; then
+ printf "Not enough huge pages available (%d < %d)\n" \
+ $freepgs $needpgs
+ exit 1
fi
else
echo "no hugetlbfs support in kernel?"
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 811 bytes --]
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH v2 selftests 6/6] selftests: breakpoint: Actually build it
[not found] ` <20151102122048.GA17015-/+tVBieCtBitmTQ+vhA3Yw@public.gmane.org>
` (4 preceding siblings ...)
2015-11-02 12:22 ` [PATCH v2 selftests 5/6] selftests: vm: Try harder to allocate huge pages Ben Hutchings
@ 2015-11-02 12:22 ` Ben Hutchings
2015-11-04 0:00 ` [PATCH v2 selftests 0/6] Fix some broken tests Shuah Khan
6 siblings, 0 replies; 8+ messages in thread
From: Ben Hutchings @ 2015-11-02 12:22 UTC (permalink / raw)
To: Shuah Khan; +Cc: linux-api-u79uwXL29TY76Z2rM5mHXA
[-- Attachment #1: Type: text/plain, Size: 636 bytes --]
Fixes: 9fae100cbd10 ("selftests: breakpoints: fix installing error on ...")
Signed-off-by: Ben Hutchings <ben-/+tVBieCtBitmTQ+vhA3Yw@public.gmane.org>
---
tools/testing/selftests/breakpoints/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/testing/selftests/breakpoints/Makefile b/tools/testing/selftests/breakpoints/Makefile
index d27108b..c0d9570 100644
--- a/tools/testing/selftests/breakpoints/Makefile
+++ b/tools/testing/selftests/breakpoints/Makefile
@@ -6,7 +6,7 @@ ifeq ($(ARCH),x86)
TEST_PROGS := breakpoint_test
endif
-all:
+all: $(TEST_PROGS)
include ../lib.mk
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 811 bytes --]
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [PATCH v2 selftests 0/6] Fix some broken tests
[not found] ` <20151102122048.GA17015-/+tVBieCtBitmTQ+vhA3Yw@public.gmane.org>
` (5 preceding siblings ...)
2015-11-02 12:22 ` [PATCH v2 selftests 6/6] selftests: breakpoint: Actually build it Ben Hutchings
@ 2015-11-04 0:00 ` Shuah Khan
6 siblings, 0 replies; 8+ messages in thread
From: Shuah Khan @ 2015-11-04 0:00 UTC (permalink / raw)
To: Ben Hutchings; +Cc: linux-api-u79uwXL29TY76Z2rM5mHXA, Shuah Khan
On 11/02/2015 05:20 AM, Ben Hutchings wrote:
> This series fixes some self-tests that are broken, unreliable or
> produce compiler warnings in 4.3.
>
> Ben.
>
> Ben Hutchings (6): selftests: Add missing #include directives
> selftests: memfd: Stop unnecessary rebuilds selftests: kprobe:
> Choose an always-defined function to probe selftests: Make scripts
> executable selftests: vm: Try harder to allocate huge pages
> selftests: breakpoint: Actually build it
>
> tools/testing/selftests/breakpoints/Makefile | 2 +-
> .../selftests/ftrace/test.d/kprobe/add_and_remove.tc | 2 +-
> .../testing/selftests/ftrace/test.d/kprobe/busy_check.tc | 2 +-
> .../testing/selftests/ftrace/test.d/kprobe/kprobe_args.tc | 2 +-
> .../selftests/ftrace/test.d/kprobe/kprobe_ftrace.tc | 14
> +++++++------- .../selftests/ftrace/test.d/kprobe/kretprobe_args.tc
> | 2 +- tools/testing/selftests/memfd/Makefile |
> 12 ++++++------ tools/testing/selftests/memfd/memfd_test.c
> | 1 + tools/testing/selftests/memfd/run_fuse_test.sh |
> 0 tools/testing/selftests/mqueue/mq_open_tests.c | 1 +
> tools/testing/selftests/mqueue/mq_perf_tests.c | 1 +
> tools/testing/selftests/static_keys/test_static_keys.sh | 0
> tools/testing/selftests/timers/nanosleep.c | 1 +
> tools/testing/selftests/vm/run_vmtests | 15
> ++++++++++++++- 14 files changed, 36 insertions(+), 19
> deletions(-) mode change 100644 => 100755
> tools/testing/selftests/memfd/run_fuse_test.sh mode change 100644
> => 100755 tools/testing/selftests/static_keys/test_static_keys.sh
>
Ben,
Thanks for doing this. Several tests pass now with your patches.
All 6 patches applied to linux-kselftest next for 4.4
thanks,
-- Shuah
--
Shuah Khan
Sr. Linux Kernel Developer
Open Source Innovation Group
Samsung Research America (Silicon Valley)
shuahkh-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org | (970) 217-8978
^ permalink raw reply [flat|nested] 8+ messages in thread