* [v2 1/4] valgrind: enable ~500 more ptests
@ 2019-09-10 21:41 Randy MacLeod
2019-09-10 21:41 ` [v2 2/4] valgrind: make a few more ptests pass Randy MacLeod
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: Randy MacLeod @ 2019-09-10 21:41 UTC (permalink / raw)
To: openembedded-core
Add valgrind's top level config.h to the ptest package since
it is used by several scripts to determine which tests to run.
Drop the removal of:
none/tests/shell,
the content was already moved to:
none/tests/scripts/shell
so the filter useless and the files no longer cause a problem.
Add a few more test directories that had been omitted.
Add perf/bigcode for test: none/tests/bigcode
Leave .c, .h, .S files in the ptest image since several of them are
needed to run the tests. The overhead is ~13 MB which is high but
keeping all test code is easier than figuring out which source files
are needed and the entire valgrind-ptest package is ~115 MB so in
this context it's an acceptable trade-off.
Add bash dependency for ptest for none/tests/scripts/shell
With core-image-minimal on qemux86-64/kvm:
Recipe | Passed | Failed | Skipped | Time(s)
before | 149 | 1 | 9 | 663
after | 648 | 12 | 60 | 1541
Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
---
.../valgrind/valgrind_3.15.0.bb | 25 +++++++++++--------
1 file changed, 15 insertions(+), 10 deletions(-)
diff --git a/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb b/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb
index 4e89c604d6..7bb6001d90 100644
--- a/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb
+++ b/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb
@@ -109,7 +109,7 @@ RDEPENDS_${PN} += "perl"
# redirect functions like strlen.
RRECOMMENDS_${PN} += "${TCLIBC}-dbg"
-RDEPENDS_${PN}-ptest += " file perl perl-module-file-glob sed ${PN}-dbg"
+RDEPENDS_${PN}-ptest += " bash file perl perl-module-file-glob procps sed ${PN}-dbg"
RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-utils"
# One of the tests contains a bogus interpreter path on purpose.
@@ -134,40 +134,45 @@ do_install_ptest() {
for parent_dir in ${S} ${B} ; do
cd $parent_dir
- # exclude shell or the package won't install
- rm -rf none/tests/shell* 2>/dev/null
-
subdirs=" \
cachegrind/tests \
callgrind/tests \
+ dhat/tests \
drd/tests \
+ exp-bbv/tests \
+ exp-dhat/tests \
gdbserver_tests \
helgrind/tests \
+ lackey/tests \
massif/tests \
memcheck/tests \
none/tests \
tests \
"
-
# Get the vg test scripts, filters, and expected files
for dir in $subdirs ; do
find $dir | cpio -pvdu ${D}${PTEST_PATH}
done
cd $saved_dir
done
+ cp ${B}/config.h ${D}${PTEST_PATH}
+ mkdir ${D}${PTEST_PATH}/perf
+ cp ${B}/perf/bigcode ${D}${PTEST_PATH}/perf
# Hide then restore a.c that is used by ann[12].vgtest in call/cachegrind
mv ${D}${PTEST_PATH}/cachegrind/tests/a.c ${D}${PTEST_PATH}/cachegrind/tests/a_c
- # clean out build artifacts before building the rpm
+ # clean out build artifacts before building the package. Keep config.h for ptests.
+ mv ${D}${PTEST_PATH}/config.h ${D}${PTEST_PATH}/config_h
+
find ${D}${PTEST_PATH} \
- \( -name "Makefile*" \
+ \( \
+ -name "Makefile*" \
-o -name "*.o" \
- -o -name "*.c" \
- -o -name "*.S" \
- -o -name "*.h" \) \
+ \) \
-exec rm {} \;
mv ${D}${PTEST_PATH}/cachegrind/tests/a_c ${D}${PTEST_PATH}/cachegrind/tests/a.c
touch ${D}${PTEST_PATH}/cachegrind/tests/a.c -r ${D}${PTEST_PATH}/cachegrind/tests/cgout-test
+ mv ${D}${PTEST_PATH}/config_h ${D}${PTEST_PATH}/config.h
# find *_annotate in ${bindir} for yocto build
sed -i s:\.\./\.\./cachegrind/cg_annotate:${bindir}/cg_annotate: ${D}${PTEST_PATH}/cachegrind/tests/ann1.vgtest
--
2.22.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [v2 2/4] valgrind: make a few more ptests pass
2019-09-10 21:41 [v2 1/4] valgrind: enable ~500 more ptests Randy MacLeod
@ 2019-09-10 21:41 ` Randy MacLeod
2019-09-10 21:41 ` [v2 3/4] valgrind: ptest improvements to run-ptest and more Randy MacLeod
2019-09-10 21:41 ` [v2 4/4] valgrind: disable 256 ptests for aarch64 Randy MacLeod
2 siblings, 0 replies; 9+ messages in thread
From: Randy MacLeod @ 2019-09-10 21:41 UTC (permalink / raw)
To: openembedded-core
Adjust two memcheck vgtest files to deal with relative paths
that are in test executables when cross-compiling.
Add libgomp to enable OpenMP tests.
Add the bz2 executable for memcheck/tests/vcpu_bz2.
Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
---
...ust-path-filter-for-2-memcheck-tests.patch | 40 +++++++++++++++++++
.../valgrind/valgrind_3.15.0.bb | 5 ++-
2 files changed, 44 insertions(+), 1 deletion(-)
create mode 100644 meta/recipes-devtools/valgrind/valgrind/0001-adjust-path-filter-for-2-memcheck-tests.patch
diff --git a/meta/recipes-devtools/valgrind/valgrind/0001-adjust-path-filter-for-2-memcheck-tests.patch b/meta/recipes-devtools/valgrind/valgrind/0001-adjust-path-filter-for-2-memcheck-tests.patch
new file mode 100644
index 0000000000..4bc4bb086c
--- /dev/null
+++ b/meta/recipes-devtools/valgrind/valgrind/0001-adjust-path-filter-for-2-memcheck-tests.patch
@@ -0,0 +1,40 @@
+From bf63e35c3036e6040c8cfecabc7160b1f36b0591 Mon Sep 17 00:00:00 2001
+From: Randy MacLeod <Randy.MacLeod@windriver.com>
+Date: Wed, 28 Aug 2019 12:31:15 -0400
+Subject: [PATCH] adjust path filter for 2 memcheck tests
+
+Test executables produced when cross-compiling can contain
+relative paths such as:
+ coregrind/tests/../../../valgrind-3.15.0/coregrind/
+Use the --fullpath-after option to match and therefore
+suppress more of the prefix to enable test to pass.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
+---
+ memcheck/tests/badfree3.vgtest | 2 +-
+ memcheck/tests/varinfo5.vgtest | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/memcheck/tests/badfree3.vgtest b/memcheck/tests/badfree3.vgtest
+index 3dfc5fd8a..57eec21f3 100644
+--- a/memcheck/tests/badfree3.vgtest
++++ b/memcheck/tests/badfree3.vgtest
+@@ -1,3 +1,3 @@
+ prog: badfree
+-vgopts: -q --fullpath-after=memcheck/ --fullpath-after=coregrind/
++vgopts: -q --fullpath-after=/valgrind-3.15.0/memcheck/ --fullpath-after=/valgrind-3.15.0/coregrind/
+ stderr_filter_args: badfree.c
+diff --git a/memcheck/tests/varinfo5.vgtest b/memcheck/tests/varinfo5.vgtest
+index 063d00dce..6907bb2f6 100644
+--- a/memcheck/tests/varinfo5.vgtest
++++ b/memcheck/tests/varinfo5.vgtest
+@@ -1,3 +1,3 @@
+ prog: varinfo5
+-vgopts: --fullpath-after=memcheck/ --fullpath-after=coregrind/ --read-var-info=yes --read-inline-info=yes -q
++vgopts: --fullpath-after=/valgrind-3.15.0/memcheck/ --fullpath-after=/valgrind-3.15.0/coregrind/ --read-var-info=yes --read-inline-info=yes -q
+ stderr_filter: filter_varinfo3
+--
+2.22.0
+
diff --git a/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb b/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb
index 7bb6001d90..bf0ca57c93 100644
--- a/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb
+++ b/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb
@@ -38,6 +38,7 @@ SRC_URI = "https://sourceware.org/pub/valgrind/valgrind-${PV}.tar.bz2 \
file://0001-Return-a-valid-exit_code-from-vg_regtest.patch \
file://0001-valgrind-filter_xml_frames-do-not-filter-usr.patch \
file://0002-valgrind-adjust-std_list-expected-output.patch \
+ file://0001-adjust-path-filter-for-2-memcheck-tests.patch \
"
SRC_URI[md5sum] = "46e5fbdcbc3502a5976a317a0860a975"
SRC_URI[sha256sum] = "417c7a9da8f60dd05698b3a7bc6002e4ef996f14c13f0ff96679a16873e78ab1"
@@ -109,7 +110,7 @@ RDEPENDS_${PN} += "perl"
# redirect functions like strlen.
RRECOMMENDS_${PN} += "${TCLIBC}-dbg"
-RDEPENDS_${PN}-ptest += " bash file perl perl-module-file-glob procps sed ${PN}-dbg"
+RDEPENDS_${PN}-ptest += " bash file libgomp perl perl-module-file-glob procps sed ${PN}-dbg"
RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-utils"
# One of the tests contains a bogus interpreter path on purpose.
@@ -158,6 +159,8 @@ do_install_ptest() {
cp ${B}/config.h ${D}${PTEST_PATH}
mkdir ${D}${PTEST_PATH}/perf
cp ${B}/perf/bigcode ${D}${PTEST_PATH}/perf
+ # needed by memcheck/tests/vcpu_bz2
+ cp ${B}/perf/bz2 ${D}${PTEST_PATH}/perf
# Hide then restore a.c that is used by ann[12].vgtest in call/cachegrind
mv ${D}${PTEST_PATH}/cachegrind/tests/a.c ${D}${PTEST_PATH}/cachegrind/tests/a_c
--
2.22.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [v2 3/4] valgrind: ptest improvements to run-ptest and more
2019-09-10 21:41 [v2 1/4] valgrind: enable ~500 more ptests Randy MacLeod
2019-09-10 21:41 ` [v2 2/4] valgrind: make a few more ptests pass Randy MacLeod
@ 2019-09-10 21:41 ` Randy MacLeod
2019-09-10 21:41 ` [v2 4/4] valgrind: disable 256 ptests for aarch64 Randy MacLeod
2 siblings, 0 replies; 9+ messages in thread
From: Randy MacLeod @ 2019-09-10 21:41 UTC (permalink / raw)
To: openembedded-core
Make some changes to the run-ptest script:
- after main tests run integrity check like the pkg Makefile.
- aesthetic and ordering changes
Add the .in_place directory and its contents which allows valgrind
to be run in-place thereby enabling the gdbserver_tests to
complete rather than hang. Unfortunately directory paths embedded
in binaries still cause many of these test to fail.
Add the exp-sgcheck tests.
With core-image-minimal on qemux86-64/kvm:
Recipe | Passed | Failed | Skipped | Time(s)
before | 648 | 12 | 60 | 1541
after | 662 | 20 | 38 | 1429
ppc-no-gdbserv | 415 | 196 | 34 | 10689
Since fewer tests timeout, the overall time has decreased.
With core-image-sato on qemux86-64/kvm the results are now
the same as core-image-minimal.
qemuppc/arm64 runs result in the oom-killer eventually running since
some processes do not terminate properly and accumulate as defunct
processes in memory. Without the gdbserver_tests, the tests
complete without defunct process or the oom-killer running for
ppc but not for arm64.
Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
---
.../valgrind/valgrind/run-ptest | 27 ++++++++++---
.../valgrind/valgrind_3.15.0.bb | 38 ++++++++++++-------
2 files changed, 47 insertions(+), 18 deletions(-)
diff --git a/meta/recipes-devtools/valgrind/valgrind/run-ptest b/meta/recipes-devtools/valgrind/valgrind/run-ptest
index 447d33c8cb..5b3ad2a2ed 100755
--- a/meta/recipes-devtools/valgrind/valgrind/run-ptest
+++ b/meta/recipes-devtools/valgrind/valgrind/run-ptest
@@ -4,13 +4,30 @@
# wraps the valgrind regression script vg_regtest.
#
# Dave Lerner <dave.lerner@windriver.com>
+# Randy MacLeod <Randy.MacLeod@windriver.com>
###############################################################
-VALGRINDLIB=@libdir@/valgrind
-LOG="${VALGRINDLIB}/ptest/valgrind_ptest_$(date +%Y%m%d-%H%M%S).log"
+VALGRIND_LIB=@libdir@/valgrind
+VALGRIND_BIN=@bindir@/valgrind
-cd ${VALGRINDLIB}/ptest && ./tests/vg_regtest --all \
- --valgrind=/usr/bin/valgrind --valgrind-lib=$VALGRINDLIB \
- --yocto-ptest 2>&1|tee ${LOG}
+LOG="${VALGRIND_LIB}/ptest/valgrind_ptest_$(date +%Y%m%d-%H%M%S).log"
+
+TOOLS="memcheck cachegrind callgrind helgrind drd massif dhat lackey none"
+EXP_TOOLS="exp-bbv exp-dhat exp-sgcheck"
+
+GDB_BIN=@bindir@/gdb
+cd ${VALGRIND_LIB}/ptest && ./gdbserver_tests/make_local_links ${GDB_BIN}
+
+cd ${VALGRIND_LIB}/ptest && ./tests/vg_regtest \
+ --valgrind=${VALGRIND_BIN} \
+ --valgrind-lib=${VALGRIND_LIB} \
+ --yocto-ptest \
+ gdbserver_tests ${TOOLS} ${EXP_TOOLS} \
+ 2>&1|tee ${LOG}
+
+cd ${VALGRIND_LIB}/ptest && \
+ ./tests/post_regtest_checks $(pwd) \
+ gdbserver_tests ${TOOLS} ${EXP_TOOLS} \
+ 2>&1|tee -a ${LOG}
passed=`grep PASS: ${LOG}|wc -l`
failed=`grep FAIL: ${LOG}|wc -l`
diff --git a/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb b/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb
index bf0ca57c93..6d47b6d01d 100644
--- a/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb
+++ b/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb
@@ -110,7 +110,11 @@ RDEPENDS_${PN} += "perl"
# redirect functions like strlen.
RRECOMMENDS_${PN} += "${TCLIBC}-dbg"
-RDEPENDS_${PN}-ptest += " bash file libgomp perl perl-module-file-glob procps sed ${PN}-dbg"
+RDEPENDS_${PN}-ptest += " bash coreutils file \
+ gdb libgomp \
+ perl \
+ perl-module-getopt-long perl-module-file-basename perl-module-file-glob \
+ procps sed ${PN}-dbg"
RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-utils"
# One of the tests contains a bogus interpreter path on purpose.
@@ -136,12 +140,11 @@ do_install_ptest() {
cd $parent_dir
subdirs=" \
+ .in_place \
cachegrind/tests \
callgrind/tests \
dhat/tests \
drd/tests \
- exp-bbv/tests \
- exp-dhat/tests \
gdbserver_tests \
helgrind/tests \
lackey/tests \
@@ -149,6 +152,9 @@ do_install_ptest() {
memcheck/tests \
none/tests \
tests \
+ exp-bbv/tests \
+ exp-dhat/tests \
+ exp-sgcheck/tests \
"
# Get the vg test scripts, filters, and expected files
for dir in $subdirs ; do
@@ -156,16 +162,24 @@ do_install_ptest() {
done
cd $saved_dir
done
+
+ # The scripts reference config.h so add it to the top ptest dir.
cp ${B}/config.h ${D}${PTEST_PATH}
+
+ # Add an executable need by none/tests/bigcode
mkdir ${D}${PTEST_PATH}/perf
cp ${B}/perf/bigcode ${D}${PTEST_PATH}/perf
- # needed by memcheck/tests/vcpu_bz2
+
+ # Add an executable needed by memcheck/tests/vcpu_bz2
cp ${B}/perf/bz2 ${D}${PTEST_PATH}/perf
- # Hide then restore a.c that is used by ann[12].vgtest in call/cachegrind
- mv ${D}${PTEST_PATH}/cachegrind/tests/a.c ${D}${PTEST_PATH}/cachegrind/tests/a_c
- # clean out build artifacts before building the package. Keep config.h for ptests.
- mv ${D}${PTEST_PATH}/config.h ${D}${PTEST_PATH}/config_h
+ # Make the ptest dir look like the top level valgrind src dir
+ # This is checked by the gdbserver_tests/make_local_links script
+ mkdir ${D}${PTEST_PATH}/coregrind
+ cp ${B}/coregrind/vgdb ${D}${PTEST_PATH}/coregrind
+
+ # Add an executable needed by massif tests
+ cp ${B}/massif/ms_print ${D}${PTEST_PATH}/massif/ms_print
find ${D}${PTEST_PATH} \
\( \
@@ -173,9 +187,9 @@ do_install_ptest() {
-o -name "*.o" \
\) \
-exec rm {} \;
- mv ${D}${PTEST_PATH}/cachegrind/tests/a_c ${D}${PTEST_PATH}/cachegrind/tests/a.c
+
+ # These files need to be newer so touch them.
touch ${D}${PTEST_PATH}/cachegrind/tests/a.c -r ${D}${PTEST_PATH}/cachegrind/tests/cgout-test
- mv ${D}${PTEST_PATH}/config_h ${D}${PTEST_PATH}/config.h
# find *_annotate in ${bindir} for yocto build
sed -i s:\.\./\.\./cachegrind/cg_annotate:${bindir}/cg_annotate: ${D}${PTEST_PATH}/cachegrind/tests/ann1.vgtest
@@ -184,9 +198,7 @@ do_install_ptest() {
sed -i s:\.\./\.\./callgrind/callgrind_annotate:${bindir}/callgrind_annotate: ${D}${PTEST_PATH}/callgrind/tests/ann1.vgtest
sed -i s:\.\./\.\./callgrind/callgrind_annotate:${bindir}/callgrind_annotate: ${D}${PTEST_PATH}/callgrind/tests/ann2.vgtest
- # needed by massif tests
- cp ${B}/massif/ms_print ${D}${PTEST_PATH}/massif/ms_print
-
# handle multilib
sed -i s:@libdir@:${libdir}:g ${D}${PTEST_PATH}/run-ptest
+ sed -i s:@bindir@:${bindir}:g ${D}${PTEST_PATH}/run-ptest
}
--
2.22.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [v2 4/4] valgrind: disable 256 ptests for aarch64
2019-09-10 21:41 [v2 1/4] valgrind: enable ~500 more ptests Randy MacLeod
2019-09-10 21:41 ` [v2 2/4] valgrind: make a few more ptests pass Randy MacLeod
2019-09-10 21:41 ` [v2 3/4] valgrind: ptest improvements to run-ptest and more Randy MacLeod
@ 2019-09-10 21:41 ` Randy MacLeod
2019-09-11 12:32 ` Adrian Bunk
2 siblings, 1 reply; 9+ messages in thread
From: Randy MacLeod @ 2019-09-10 21:41 UTC (permalink / raw)
To: openembedded-core
On qemuarm64 systems, about half of the valgrind tests fail and
often result in defunct processes, eg:
root 819 818 25 00:12 pts/0 00:01:52 /usr/bin/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --track-origins=
root 861 420 0 00:13 pts/0 00:00:00 [sh] <defunct>
Eventually these processes use so much memory that the
out of memory killer runs.
Hide the tests that fail as a horrid work-around until the
root cause has been resolved since this at least allows the
ptest run to complete. This work-around is done in the run-ptest
script using a sorted list of tests so that they can be easily
restored one by one without a rebuild during testing.
With core-image-minimal on qemuarm64:
Recipe | Passed | Failed | Skipped | Time(s)
valgrind | 333 | 49 | 17 | 7637
Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
---
.../valgrind/valgrind/remove-for-aarch64 | 236 ++++++++++++++++++
.../valgrind/valgrind/run-ptest | 16 ++
.../valgrind/valgrind_3.15.0.bb | 2 +
3 files changed, 254 insertions(+)
create mode 100644 meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64
diff --git a/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64 b/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64
new file mode 100644
index 0000000000..acf4fd1bc1
--- /dev/null
+++ b/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64
@@ -0,0 +1,236 @@
+cachegrind/tests/ann1
+callgrind/tests/simwork1
+callgrind/tests/simwork2
+callgrind/tests/simwork3
+callgrind/tests/simwork-both
+callgrind/tests/simwork-cache
+callgrind/tests/threads
+callgrind/tests/threads-use
+drd/tests/annotate_barrier
+drd/tests/annotate_barrier_xml
+drd/tests/annotate_hbefore
+drd/tests/annotate_hb_err
+drd/tests/annotate_hb_race
+drd/tests/annotate_ignore_read
+drd/tests/annotate_ignore_rw
+drd/tests/annotate_ignore_rw2
+drd/tests/annotate_ignore_write
+drd/tests/annotate_ignore_write2
+drd/tests/annotate_order_1
+drd/tests/annotate_order_2
+drd/tests/annotate_order_3
+drd/tests/annotate_publish_hg
+drd/tests/annotate_rwlock
+drd/tests/annotate_rwlock_hg
+drd/tests/annotate_sem
+drd/tests/annotate_smart_pointer
+drd/tests/annotate_smart_pointer2
+drd/tests/annotate_spinlock
+drd/tests/annotate_static
+drd/tests/annotate_trace_memory
+drd/tests/annotate_trace_memory_xml
+drd/tests/atomic_var
+drd/tests/bar_bad
+drd/tests/bar_bad_xml
+drd/tests/bar_trivial
+drd/tests/bug-235681
+drd/tests/bug322621
+drd/tests/circular_buffer
+drd/tests/concurrent_close
+drd/tests/custom_alloc
+drd/tests/custom_alloc_fiw
+drd/tests/dlopen
+drd/tests/fork-parallel
+drd/tests/fork-serial
+drd/tests/fp_race
+drd/tests/fp_race2
+drd/tests/fp_race_xml
+drd/tests/free_is_write
+drd/tests/free_is_write2
+drd/tests/hg01_all_ok
+drd/tests/hg02_deadlock
+drd/tests/hg03_inherit
+drd/tests/hg04_race
+drd/tests/hg05_race2
+drd/tests/hg06_readshared
+drd/tests/hold_lock_1
+drd/tests/hold_lock_2
+drd/tests/linuxthreads_det
+drd/tests/matinv
+drd/tests/memory_allocation
+drd/tests/monitor_example
+drd/tests/new_delete
+drd/tests/pth_barrier
+drd/tests/pth_barrier2
+drd/tests/pth_barrier3
+drd/tests/pth_barrier_race
+drd/tests/pth_barrier_reinit
+drd/tests/pth_barrier_thr_cr
+drd/tests/pth_broadcast
+drd/tests/pth_cancel_locked
+drd/tests/pth_cleanup_handler
+drd/tests/pth_cond_race
+drd/tests/pth_cond_race2
+drd/tests/pth_detached2
+drd/tests/pth_detached3
+drd/tests/pth_detached_sem
+drd/tests/pth_inconsistent_cond_wait
+drd/tests/pth_mutex_reinit
+drd/tests/pth_once
+drd/tests/pth_process_shared_mutex
+drd/tests/pth_spinlock
+drd/tests/pth_uninitialized_cond
+drd/tests/read_and_free_race
+drd/tests/recursive_mutex
+drd/tests/rwlock_race
+drd/tests/rwlock_test
+drd/tests/rwlock_type_checking
+drd/tests/sem_as_mutex
+drd/tests/sem_as_mutex2
+drd/tests/sem_as_mutex3
+drd/tests/sem_open
+drd/tests/sem_open2
+drd/tests/sem_open3
+drd/tests/sem_open_traced
+drd/tests/sem_wait
+drd/tests/sigalrm
+drd/tests/sigaltstack
+drd/tests/std_atomic
+drd/tests/std_string
+drd/tests/std_thread
+drd/tests/std_thread2
+drd/tests/str_tester
+drd/tests/tc01_simple_race
+drd/tests/tc02_simple_tls
+drd/tests/tc03_re_excl
+drd/tests/tc04_free_lock
+drd/tests/tc05_simple_race
+drd/tests/tc06_two_races
+drd/tests/tc07_hbl1
+drd/tests/tc08_hbl2
+drd/tests/tc09_bad_unlock
+drd/tests/tc10_rec_lock
+drd/tests/tc11_XCHG
+drd/tests/tc12_rwl_trivial
+drd/tests/tc13_laog1
+drd/tests/tc15_laog_lockdel
+drd/tests/tc16_byterace
+drd/tests/tc17_sembar
+drd/tests/tc18_semabuse
+drd/tests/tc19_shadowmem
+drd/tests/tc21_pthonce
+drd/tests/tc22_exit_w_lock
+drd/tests/tc23_bogus_condwait
+helgrind/tests/annotate_rwlock
+helgrind/tests/annotate_smart_pointer
+helgrind/tests/bar_bad
+helgrind/tests/bar_trivial
+helgrind/tests/bug322621
+helgrind/tests/cond_init_destroy
+helgrind/tests/cond_timedwait_invalid
+helgrind/tests/cond_timedwait_test
+helgrind/tests/free_is_write
+helgrind/tests/hg01_all_ok
+helgrind/tests/hg03_inherit
+helgrind/tests/hg04_race
+helgrind/tests/hg05_race2
+helgrind/tests/hg06_readshared
+helgrind/tests/locked_vs_unlocked1_fwd
+helgrind/tests/locked_vs_unlocked1_rev
+helgrind/tests/locked_vs_unlocked2
+helgrind/tests/locked_vs_unlocked3
+helgrind/tests/pth_barrier1
+helgrind/tests/pth_barrier2
+helgrind/tests/pth_barrier3
+helgrind/tests/pth_destroy_cond
+helgrind/tests/rwlock_race
+helgrind/tests/rwlock_test
+helgrind/tests/shmem_abits
+helgrind/tests/stackteardown
+helgrind/tests/t2t_laog
+helgrind/tests/tc01_simple_race
+helgrind/tests/tc02_simple_tls
+helgrind/tests/tc03_re_excl
+helgrind/tests/tc04_free_lock
+helgrind/tests/tc05_simple_race
+helgrind/tests/tc06_two_races
+helgrind/tests/tc06_two_races_xml
+helgrind/tests/tc07_hbl1
+helgrind/tests/tc08_hbl2
+helgrind/tests/tc09_bad_unlock
+helgrind/tests/tc10_rec_lock
+helgrind/tests/tc11_XCHG
+helgrind/tests/tc12_rwl_trivial
+helgrind/tests/tc13_laog1
+helgrind/tests/tc14_laog_dinphils
+helgrind/tests/tc15_laog_lockdel
+helgrind/tests/tc16_byterace
+helgrind/tests/tc17_sembar
+helgrind/tests/tc18_semabuse
+helgrind/tests/tc19_shadowmem
+helgrind/tests/tc20_verifywrap
+helgrind/tests/tc21_pthonce
+helgrind/tests/tc22_exit_w_lock
+helgrind/tests/tc23_bogus_condwait
+helgrind/tests/tc24_nonzero_sem
+helgrind/tests/tls_threads
+memcheck/tests/accounting
+memcheck/tests/addressable
+memcheck/tests/arm64-linux/scalar
+memcheck/tests/atomic_incs
+memcheck/tests/badaddrvalue
+memcheck/tests/badfree
+memcheck/tests/badfree-2trace
+memcheck/tests/badfree3
+memcheck/tests/badjump
+memcheck/tests/badjump2
+memcheck/tests/badloop
+memcheck/tests/badpoll
+memcheck/tests/badrw
+memcheck/tests/big_blocks_freed_list
+memcheck/tests/brk2
+memcheck/tests/dw4
+memcheck/tests/err_disable4
+memcheck/tests/err_disable_arange1
+memcheck/tests/leak-autofreepool-5
+memcheck/tests/leak_cpp_interior
+memcheck/tests/linux/lsframe1
+memcheck/tests/linux/lsframe2
+memcheck/tests/linux/with-space
+memcheck/tests/origin5-bz2
+memcheck/tests/origin6-fp
+memcheck/tests/overlap
+memcheck/tests/partial_load_dflt
+memcheck/tests/pdb-realloc2
+memcheck/tests/sh-mem
+memcheck/tests/sh-mem-random
+memcheck/tests/sigaltstack
+memcheck/tests/sigkill
+memcheck/tests/signal2
+memcheck/tests/supp_unknown
+memcheck/tests/threadname
+memcheck/tests/threadname_xml
+memcheck/tests/unit_oset
+memcheck/tests/varinfo1
+memcheck/tests/varinfo2
+memcheck/tests/varinfo3
+memcheck/tests/varinfo4
+memcheck/tests/varinfo5
+memcheck/tests/varinfo6
+memcheck/tests/varinforestrict
+memcheck/tests/vcpu_bz2
+memcheck/tests/vcpu_fbench
+memcheck/tests/vcpu_fnfns
+memcheck/tests/wcs
+memcheck/tests/wrap1
+memcheck/tests/wrap2
+memcheck/tests/wrap3
+memcheck/tests/wrap4
+memcheck/tests/wrap5
+memcheck/tests/wrap6
+memcheck/tests/wrap7
+memcheck/tests/wrap8
+memcheck/tests/wrapmalloc
+memcheck/tests/wrapmallocstatic
+memcheck/tests/writev1
+memcheck/tests/xml1
diff --git a/meta/recipes-devtools/valgrind/valgrind/run-ptest b/meta/recipes-devtools/valgrind/valgrind/run-ptest
index 5b3ad2a2ed..97b0a85dbf 100755
--- a/meta/recipes-devtools/valgrind/valgrind/run-ptest
+++ b/meta/recipes-devtools/valgrind/valgrind/run-ptest
@@ -17,6 +17,14 @@ EXP_TOOLS="exp-bbv exp-dhat exp-sgcheck"
GDB_BIN=@bindir@/gdb
cd ${VALGRIND_LIB}/ptest && ./gdbserver_tests/make_local_links ${GDB_BIN}
+arch=`arch`
+if [ "$arch" = "aarch64" ]; then
+ echo "Aarch64: Hide valgrind tests that result in defunct process and then out of memory"
+ for i in `cat remove-for-aarch64`; do
+ mv $i.vgtest $i.IGNORE;
+ done
+fi
+
cd ${VALGRIND_LIB}/ptest && ./tests/vg_regtest \
--valgrind=${VALGRIND_BIN} \
--valgrind-lib=${VALGRIND_LIB} \
@@ -29,6 +37,14 @@ cd ${VALGRIND_LIB}/ptest && \
gdbserver_tests ${TOOLS} ${EXP_TOOLS} \
2>&1|tee -a ${LOG}
+if [ "$arch" = "aarch64" ]; then
+ echo "Aarch64: Restore valgrind tests that result in defunct process and then out of memory"
+ for i in `cat remove-for-aarch64`; do
+ mv $i.IGNORE $i.vgtest;
+ done
+fi
+
+
passed=`grep PASS: ${LOG}|wc -l`
failed=`grep FAIL: ${LOG}|wc -l`
skipped=`grep SKIP: ${LOG}|wc -l`
diff --git a/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb b/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb
index 6d47b6d01d..63f972945d 100644
--- a/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb
+++ b/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb
@@ -15,6 +15,7 @@ SRC_URI = "https://sourceware.org/pub/valgrind/valgrind-${PV}.tar.bz2 \
file://fixed-perl-path.patch \
file://Added-support-for-PPC-instructions-mfatbu-mfatbl.patch \
file://run-ptest \
+ file://remove-for-aarch64 \
file://0004-Fix-out-of-tree-builds.patch \
file://0005-Modify-vg_test-wrapper-to-support-PTEST-formats.patch \
file://0001-Remove-tests-that-fail-to-build-on-some-PPC32-config.patch \
@@ -165,6 +166,7 @@ do_install_ptest() {
# The scripts reference config.h so add it to the top ptest dir.
cp ${B}/config.h ${D}${PTEST_PATH}
+ install -D ${WORKDIR}/remove-for-aarch64 ${D}${PTEST_PATH}
# Add an executable need by none/tests/bigcode
mkdir ${D}${PTEST_PATH}/perf
--
2.22.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [v2 4/4] valgrind: disable 256 ptests for aarch64
2019-09-10 21:41 ` [v2 4/4] valgrind: disable 256 ptests for aarch64 Randy MacLeod
@ 2019-09-11 12:32 ` Adrian Bunk
2019-09-11 13:38 ` Randy MacLeod
0 siblings, 1 reply; 9+ messages in thread
From: Adrian Bunk @ 2019-09-11 12:32 UTC (permalink / raw)
To: Randy MacLeod; +Cc: openembedded-core
On Tue, Sep 10, 2019 at 05:41:36PM -0400, Randy MacLeod wrote:
> On qemuarm64 systems, about half of the valgrind tests fail and
> often result in defunct processes, eg:
> root 819 818 25 00:12 pts/0 00:01:52 /usr/bin/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --track-origins=
> root 861 420 0 00:13 pts/0 00:00:00 [sh] <defunct>
> Eventually these processes use so much memory that the
> out of memory killer runs.
>
> Hide the tests that fail as a horrid work-around until the
> root cause has been resolved since this at least allows the
> ptest run to complete.
>...
I can reproduce this on hardware, and I have the bad feeling that noone
will work on resolving the root cause if this is workarounded in ptest.
IMHO this should instead be listed as M3 blocker,
similar to "strace ptest timeout".
cu
Adrian
--
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [v2 4/4] valgrind: disable 256 ptests for aarch64
2019-09-11 12:32 ` Adrian Bunk
@ 2019-09-11 13:38 ` Randy MacLeod
2019-09-11 14:00 ` Adrian Bunk
0 siblings, 1 reply; 9+ messages in thread
From: Randy MacLeod @ 2019-09-11 13:38 UTC (permalink / raw)
To: Adrian Bunk; +Cc: openembedded-core
On 9/11/19 8:32 AM, Adrian Bunk wrote:
> On Tue, Sep 10, 2019 at 05:41:36PM -0400, Randy MacLeod wrote:
>> On qemuarm64 systems, about half of the valgrind tests fail and
>> often result in defunct processes, eg:
>> root 819 818 25 00:12 pts/0 00:01:52 /usr/bin/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --track-origins=
>> root 861 420 0 00:13 pts/0 00:00:00 [sh] <defunct>
>> Eventually these processes use so much memory that the
>> out of memory killer runs.
>>
>> Hide the tests that fail as a horrid work-around until the
>> root cause has been resolved since this at least allows the
>> ptest run to complete.
>> ...
>
> I can reproduce this on hardware,
Ah good, I was wondering if it was just happening on qemu.
> and I have the bad feeling that no one
> will work on resolving the root cause if this is work-arounded in ptest.
>
> IMHO this should instead be listed as M3 blocker,
> similar to "strace ptest timeout".
Well, I've enabled 100s of tests that were not being run before
and most of them pass for qemux86-64 so I don't think it
should be an M3 blocker like strace since it isn't a regression.
I did start to debug valgrind but it's a bit of a complicated
program and will take time so this work-around makes sense to
me. If no one else gets to it before me, I'll come back to
debugging this issue but likely not before early 3.1.
Thanks,
../Randy
>
> cu
> Adrian
>
--
# Randy MacLeod
# Wind River Linux
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [v2 4/4] valgrind: disable 256 ptests for aarch64
2019-09-11 13:38 ` Randy MacLeod
@ 2019-09-11 14:00 ` Adrian Bunk
2019-09-11 18:01 ` Randy MacLeod
0 siblings, 1 reply; 9+ messages in thread
From: Adrian Bunk @ 2019-09-11 14:00 UTC (permalink / raw)
To: Randy MacLeod; +Cc: openembedded-core
On Wed, Sep 11, 2019 at 09:38:53AM -0400, Randy MacLeod wrote:
> On 9/11/19 8:32 AM, Adrian Bunk wrote:
> > On Tue, Sep 10, 2019 at 05:41:36PM -0400, Randy MacLeod wrote:
> > > On qemuarm64 systems, about half of the valgrind tests fail and
> > > often result in defunct processes, eg:
> > > root 819 818 25 00:12 pts/0 00:01:52 /usr/bin/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --track-origins=
> > > root 861 420 0 00:13 pts/0 00:00:00 [sh] <defunct>
> > > Eventually these processes use so much memory that the
> > > out of memory killer runs.
> > >
> > > Hide the tests that fail as a horrid work-around until the
> > > root cause has been resolved since this at least allows the
> > > ptest run to complete.
> > > ...
> >
> > I can reproduce this on hardware,
>
> Ah good, I was wondering if it was just happening on qemu.
>
> > and I have the bad feeling that no one
> > will work on resolving the root cause if this is work-arounded in ptest.
> >
> > IMHO this should instead be listed as M3 blocker,
> > similar to "strace ptest timeout".
>
> Well, I've enabled 100s of tests that were not being run before
> and most of them pass for qemux86-64 so I don't think it
> should be an M3 blocker like strace since it isn't a regression.
I just tried to reproduce in warrior and it did,
so it doesn't seem to be a regression.
> I did start to debug valgrind but it's a bit of a complicated
> program and will take time so this work-around makes sense to
> me. If no one else gets to it before me, I'll come back to
> debugging this issue but likely not before early 3.1.
It would be good if you could also open a bug, so that people can see
that there is a problem with this package on an important architecture.
> Thanks,
> ../Randy
Thanks
Adrian
--
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [v2 4/4] valgrind: disable 256 ptests for aarch64
2019-09-11 14:00 ` Adrian Bunk
@ 2019-09-11 18:01 ` Randy MacLeod
2019-09-12 8:13 ` Adrian Bunk
0 siblings, 1 reply; 9+ messages in thread
From: Randy MacLeod @ 2019-09-11 18:01 UTC (permalink / raw)
To: Adrian Bunk; +Cc: openembedded-core
On 9/11/19 10:00 AM, Adrian Bunk wrote:
> On Wed, Sep 11, 2019 at 09:38:53AM -0400, Randy MacLeod wrote:
>> On 9/11/19 8:32 AM, Adrian Bunk wrote:
>>> On Tue, Sep 10, 2019 at 05:41:36PM -0400, Randy MacLeod wrote:
>>>> On qemuarm64 systems, about half of the valgrind tests fail and
>>>> often result in defunct processes, eg:
>>>> root 819 818 25 00:12 pts/0 00:01:52 /usr/bin/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --track-origins=
>>>> root 861 420 0 00:13 pts/0 00:00:00 [sh] <defunct>
>>>> Eventually these processes use so much memory that the
>>>> out of memory killer runs.
>>>>
>>>> Hide the tests that fail as a horrid work-around until the
>>>> root cause has been resolved since this at least allows the
>>>> ptest run to complete.
>>>> ...
>>>
>>> I can reproduce this on hardware,
>>
>> Ah good, I was wondering if it was just happening on qemu.
>>
>>> and I have the bad feeling that no one
>>> will work on resolving the root cause if this is work-arounded in ptest.
>>>
>>> IMHO this should instead be listed as M3 blocker,
>>> similar to "strace ptest timeout".
>>
>> Well, I've enabled 100s of tests that were not being run before
>> and most of them pass for qemux86-64 so I don't think it
>> should be an M3 blocker like strace since it isn't a regression.
>
> I just tried to reproduce in warrior and it did,
> so it doesn't seem to be a regression.
>
>> I did start to debug valgrind but it's a bit of a complicated
>> program and will take time so this work-around makes sense to
>> me. If no one else gets to it before me, I'll come back to
>> debugging this issue but likely not before early 3.1.
>
> It would be good if you could also open a bug, so that people can see
> that there is a problem with this package on an important architecture.
Done:
many valgrind tests fail for arm64
https://bugzilla.yoctoproject.org/show_bug.cgi?id=13520
../Randy
>
>> Thanks,
>> ../Randy
>
> Thanks
> Adrian
>
--
# Randy MacLeod
# Wind River Linux
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [v2 4/4] valgrind: disable 256 ptests for aarch64
2019-09-11 18:01 ` Randy MacLeod
@ 2019-09-12 8:13 ` Adrian Bunk
0 siblings, 0 replies; 9+ messages in thread
From: Adrian Bunk @ 2019-09-12 8:13 UTC (permalink / raw)
To: Randy MacLeod; +Cc: openembedded-core
On Wed, Sep 11, 2019 at 02:01:00PM -0400, Randy MacLeod wrote:
> On 9/11/19 10:00 AM, Adrian Bunk wrote:
>...
> > It would be good if you could also open a bug, so that people can see
> > that there is a problem with this package on an important architecture.
>
> Done:
>
> many valgrind tests fail for arm64
> https://bugzilla.yoctoproject.org/show_bug.cgi?id=13520
Thanks!
> ../Randy
cu
Adrian
--
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2019-09-12 8:13 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-10 21:41 [v2 1/4] valgrind: enable ~500 more ptests Randy MacLeod
2019-09-10 21:41 ` [v2 2/4] valgrind: make a few more ptests pass Randy MacLeod
2019-09-10 21:41 ` [v2 3/4] valgrind: ptest improvements to run-ptest and more Randy MacLeod
2019-09-10 21:41 ` [v2 4/4] valgrind: disable 256 ptests for aarch64 Randy MacLeod
2019-09-11 12:32 ` Adrian Bunk
2019-09-11 13:38 ` Randy MacLeod
2019-09-11 14:00 ` Adrian Bunk
2019-09-11 18:01 ` Randy MacLeod
2019-09-12 8:13 ` Adrian Bunk
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.