All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.