diff options
| author | Randy MacLeod <Randy.MacLeod@windriver.com> | 2019-09-10 17:41:36 -0400 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-09-16 23:02:44 +0100 |
| commit | 09cfb218cbd2416b179721bc5198d24ee5b61a44 (patch) | |
| tree | 87aa0ed859b539e4556d3a6d1e2e236fa1028a06 | |
| parent | 997d91f608ca5f866f9800c52a4d2ebbbce70cd2 (diff) | |
| download | poky-09cfb218cbd2416b179721bc5198d24ee5b61a44.tar.gz | |
valgrind: disable 256 ptests for aarch64
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
(From OE-Core rev: 208023f8fcbf4aee34544a80f962ae25f25ffb8d)
Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| -rw-r--r-- | meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64 | 236 | ||||
| -rwxr-xr-x | meta/recipes-devtools/valgrind/valgrind/run-ptest | 16 | ||||
| -rw-r--r-- | meta/recipes-devtools/valgrind/valgrind_3.15.0.bb | 2 |
3 files changed, 254 insertions, 0 deletions
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 @@ | |||
| 1 | cachegrind/tests/ann1 | ||
| 2 | callgrind/tests/simwork1 | ||
| 3 | callgrind/tests/simwork2 | ||
| 4 | callgrind/tests/simwork3 | ||
| 5 | callgrind/tests/simwork-both | ||
| 6 | callgrind/tests/simwork-cache | ||
| 7 | callgrind/tests/threads | ||
| 8 | callgrind/tests/threads-use | ||
| 9 | drd/tests/annotate_barrier | ||
| 10 | drd/tests/annotate_barrier_xml | ||
| 11 | drd/tests/annotate_hbefore | ||
| 12 | drd/tests/annotate_hb_err | ||
| 13 | drd/tests/annotate_hb_race | ||
| 14 | drd/tests/annotate_ignore_read | ||
| 15 | drd/tests/annotate_ignore_rw | ||
| 16 | drd/tests/annotate_ignore_rw2 | ||
| 17 | drd/tests/annotate_ignore_write | ||
| 18 | drd/tests/annotate_ignore_write2 | ||
| 19 | drd/tests/annotate_order_1 | ||
| 20 | drd/tests/annotate_order_2 | ||
| 21 | drd/tests/annotate_order_3 | ||
| 22 | drd/tests/annotate_publish_hg | ||
| 23 | drd/tests/annotate_rwlock | ||
| 24 | drd/tests/annotate_rwlock_hg | ||
| 25 | drd/tests/annotate_sem | ||
| 26 | drd/tests/annotate_smart_pointer | ||
| 27 | drd/tests/annotate_smart_pointer2 | ||
| 28 | drd/tests/annotate_spinlock | ||
| 29 | drd/tests/annotate_static | ||
| 30 | drd/tests/annotate_trace_memory | ||
| 31 | drd/tests/annotate_trace_memory_xml | ||
| 32 | drd/tests/atomic_var | ||
| 33 | drd/tests/bar_bad | ||
| 34 | drd/tests/bar_bad_xml | ||
| 35 | drd/tests/bar_trivial | ||
| 36 | drd/tests/bug-235681 | ||
| 37 | drd/tests/bug322621 | ||
| 38 | drd/tests/circular_buffer | ||
| 39 | drd/tests/concurrent_close | ||
| 40 | drd/tests/custom_alloc | ||
| 41 | drd/tests/custom_alloc_fiw | ||
| 42 | drd/tests/dlopen | ||
| 43 | drd/tests/fork-parallel | ||
| 44 | drd/tests/fork-serial | ||
| 45 | drd/tests/fp_race | ||
| 46 | drd/tests/fp_race2 | ||
| 47 | drd/tests/fp_race_xml | ||
| 48 | drd/tests/free_is_write | ||
| 49 | drd/tests/free_is_write2 | ||
| 50 | drd/tests/hg01_all_ok | ||
| 51 | drd/tests/hg02_deadlock | ||
| 52 | drd/tests/hg03_inherit | ||
| 53 | drd/tests/hg04_race | ||
| 54 | drd/tests/hg05_race2 | ||
| 55 | drd/tests/hg06_readshared | ||
| 56 | drd/tests/hold_lock_1 | ||
| 57 | drd/tests/hold_lock_2 | ||
| 58 | drd/tests/linuxthreads_det | ||
| 59 | drd/tests/matinv | ||
| 60 | drd/tests/memory_allocation | ||
| 61 | drd/tests/monitor_example | ||
| 62 | drd/tests/new_delete | ||
| 63 | drd/tests/pth_barrier | ||
| 64 | drd/tests/pth_barrier2 | ||
| 65 | drd/tests/pth_barrier3 | ||
| 66 | drd/tests/pth_barrier_race | ||
| 67 | drd/tests/pth_barrier_reinit | ||
| 68 | drd/tests/pth_barrier_thr_cr | ||
| 69 | drd/tests/pth_broadcast | ||
| 70 | drd/tests/pth_cancel_locked | ||
| 71 | drd/tests/pth_cleanup_handler | ||
| 72 | drd/tests/pth_cond_race | ||
| 73 | drd/tests/pth_cond_race2 | ||
| 74 | drd/tests/pth_detached2 | ||
| 75 | drd/tests/pth_detached3 | ||
| 76 | drd/tests/pth_detached_sem | ||
| 77 | drd/tests/pth_inconsistent_cond_wait | ||
| 78 | drd/tests/pth_mutex_reinit | ||
| 79 | drd/tests/pth_once | ||
| 80 | drd/tests/pth_process_shared_mutex | ||
| 81 | drd/tests/pth_spinlock | ||
| 82 | drd/tests/pth_uninitialized_cond | ||
| 83 | drd/tests/read_and_free_race | ||
| 84 | drd/tests/recursive_mutex | ||
| 85 | drd/tests/rwlock_race | ||
| 86 | drd/tests/rwlock_test | ||
| 87 | drd/tests/rwlock_type_checking | ||
| 88 | drd/tests/sem_as_mutex | ||
| 89 | drd/tests/sem_as_mutex2 | ||
| 90 | drd/tests/sem_as_mutex3 | ||
| 91 | drd/tests/sem_open | ||
| 92 | drd/tests/sem_open2 | ||
| 93 | drd/tests/sem_open3 | ||
| 94 | drd/tests/sem_open_traced | ||
| 95 | drd/tests/sem_wait | ||
| 96 | drd/tests/sigalrm | ||
| 97 | drd/tests/sigaltstack | ||
| 98 | drd/tests/std_atomic | ||
| 99 | drd/tests/std_string | ||
| 100 | drd/tests/std_thread | ||
| 101 | drd/tests/std_thread2 | ||
| 102 | drd/tests/str_tester | ||
| 103 | drd/tests/tc01_simple_race | ||
| 104 | drd/tests/tc02_simple_tls | ||
| 105 | drd/tests/tc03_re_excl | ||
| 106 | drd/tests/tc04_free_lock | ||
| 107 | drd/tests/tc05_simple_race | ||
| 108 | drd/tests/tc06_two_races | ||
| 109 | drd/tests/tc07_hbl1 | ||
| 110 | drd/tests/tc08_hbl2 | ||
| 111 | drd/tests/tc09_bad_unlock | ||
| 112 | drd/tests/tc10_rec_lock | ||
| 113 | drd/tests/tc11_XCHG | ||
| 114 | drd/tests/tc12_rwl_trivial | ||
| 115 | drd/tests/tc13_laog1 | ||
| 116 | drd/tests/tc15_laog_lockdel | ||
| 117 | drd/tests/tc16_byterace | ||
| 118 | drd/tests/tc17_sembar | ||
| 119 | drd/tests/tc18_semabuse | ||
| 120 | drd/tests/tc19_shadowmem | ||
| 121 | drd/tests/tc21_pthonce | ||
| 122 | drd/tests/tc22_exit_w_lock | ||
| 123 | drd/tests/tc23_bogus_condwait | ||
| 124 | helgrind/tests/annotate_rwlock | ||
| 125 | helgrind/tests/annotate_smart_pointer | ||
| 126 | helgrind/tests/bar_bad | ||
| 127 | helgrind/tests/bar_trivial | ||
| 128 | helgrind/tests/bug322621 | ||
| 129 | helgrind/tests/cond_init_destroy | ||
| 130 | helgrind/tests/cond_timedwait_invalid | ||
| 131 | helgrind/tests/cond_timedwait_test | ||
| 132 | helgrind/tests/free_is_write | ||
| 133 | helgrind/tests/hg01_all_ok | ||
| 134 | helgrind/tests/hg03_inherit | ||
| 135 | helgrind/tests/hg04_race | ||
| 136 | helgrind/tests/hg05_race2 | ||
| 137 | helgrind/tests/hg06_readshared | ||
| 138 | helgrind/tests/locked_vs_unlocked1_fwd | ||
| 139 | helgrind/tests/locked_vs_unlocked1_rev | ||
| 140 | helgrind/tests/locked_vs_unlocked2 | ||
| 141 | helgrind/tests/locked_vs_unlocked3 | ||
| 142 | helgrind/tests/pth_barrier1 | ||
| 143 | helgrind/tests/pth_barrier2 | ||
| 144 | helgrind/tests/pth_barrier3 | ||
| 145 | helgrind/tests/pth_destroy_cond | ||
| 146 | helgrind/tests/rwlock_race | ||
| 147 | helgrind/tests/rwlock_test | ||
| 148 | helgrind/tests/shmem_abits | ||
| 149 | helgrind/tests/stackteardown | ||
| 150 | helgrind/tests/t2t_laog | ||
| 151 | helgrind/tests/tc01_simple_race | ||
| 152 | helgrind/tests/tc02_simple_tls | ||
| 153 | helgrind/tests/tc03_re_excl | ||
| 154 | helgrind/tests/tc04_free_lock | ||
| 155 | helgrind/tests/tc05_simple_race | ||
| 156 | helgrind/tests/tc06_two_races | ||
| 157 | helgrind/tests/tc06_two_races_xml | ||
| 158 | helgrind/tests/tc07_hbl1 | ||
| 159 | helgrind/tests/tc08_hbl2 | ||
| 160 | helgrind/tests/tc09_bad_unlock | ||
| 161 | helgrind/tests/tc10_rec_lock | ||
| 162 | helgrind/tests/tc11_XCHG | ||
| 163 | helgrind/tests/tc12_rwl_trivial | ||
| 164 | helgrind/tests/tc13_laog1 | ||
| 165 | helgrind/tests/tc14_laog_dinphils | ||
| 166 | helgrind/tests/tc15_laog_lockdel | ||
| 167 | helgrind/tests/tc16_byterace | ||
| 168 | helgrind/tests/tc17_sembar | ||
| 169 | helgrind/tests/tc18_semabuse | ||
| 170 | helgrind/tests/tc19_shadowmem | ||
| 171 | helgrind/tests/tc20_verifywrap | ||
| 172 | helgrind/tests/tc21_pthonce | ||
| 173 | helgrind/tests/tc22_exit_w_lock | ||
| 174 | helgrind/tests/tc23_bogus_condwait | ||
| 175 | helgrind/tests/tc24_nonzero_sem | ||
| 176 | helgrind/tests/tls_threads | ||
| 177 | memcheck/tests/accounting | ||
| 178 | memcheck/tests/addressable | ||
| 179 | memcheck/tests/arm64-linux/scalar | ||
| 180 | memcheck/tests/atomic_incs | ||
| 181 | memcheck/tests/badaddrvalue | ||
| 182 | memcheck/tests/badfree | ||
| 183 | memcheck/tests/badfree-2trace | ||
| 184 | memcheck/tests/badfree3 | ||
| 185 | memcheck/tests/badjump | ||
| 186 | memcheck/tests/badjump2 | ||
| 187 | memcheck/tests/badloop | ||
| 188 | memcheck/tests/badpoll | ||
| 189 | memcheck/tests/badrw | ||
| 190 | memcheck/tests/big_blocks_freed_list | ||
| 191 | memcheck/tests/brk2 | ||
| 192 | memcheck/tests/dw4 | ||
| 193 | memcheck/tests/err_disable4 | ||
| 194 | memcheck/tests/err_disable_arange1 | ||
| 195 | memcheck/tests/leak-autofreepool-5 | ||
| 196 | memcheck/tests/leak_cpp_interior | ||
| 197 | memcheck/tests/linux/lsframe1 | ||
| 198 | memcheck/tests/linux/lsframe2 | ||
| 199 | memcheck/tests/linux/with-space | ||
| 200 | memcheck/tests/origin5-bz2 | ||
| 201 | memcheck/tests/origin6-fp | ||
| 202 | memcheck/tests/overlap | ||
| 203 | memcheck/tests/partial_load_dflt | ||
| 204 | memcheck/tests/pdb-realloc2 | ||
| 205 | memcheck/tests/sh-mem | ||
| 206 | memcheck/tests/sh-mem-random | ||
| 207 | memcheck/tests/sigaltstack | ||
| 208 | memcheck/tests/sigkill | ||
| 209 | memcheck/tests/signal2 | ||
| 210 | memcheck/tests/supp_unknown | ||
| 211 | memcheck/tests/threadname | ||
| 212 | memcheck/tests/threadname_xml | ||
| 213 | memcheck/tests/unit_oset | ||
| 214 | memcheck/tests/varinfo1 | ||
| 215 | memcheck/tests/varinfo2 | ||
| 216 | memcheck/tests/varinfo3 | ||
| 217 | memcheck/tests/varinfo4 | ||
| 218 | memcheck/tests/varinfo5 | ||
| 219 | memcheck/tests/varinfo6 | ||
| 220 | memcheck/tests/varinforestrict | ||
| 221 | memcheck/tests/vcpu_bz2 | ||
| 222 | memcheck/tests/vcpu_fbench | ||
| 223 | memcheck/tests/vcpu_fnfns | ||
| 224 | memcheck/tests/wcs | ||
| 225 | memcheck/tests/wrap1 | ||
| 226 | memcheck/tests/wrap2 | ||
| 227 | memcheck/tests/wrap3 | ||
| 228 | memcheck/tests/wrap4 | ||
| 229 | memcheck/tests/wrap5 | ||
| 230 | memcheck/tests/wrap6 | ||
| 231 | memcheck/tests/wrap7 | ||
| 232 | memcheck/tests/wrap8 | ||
| 233 | memcheck/tests/wrapmalloc | ||
| 234 | memcheck/tests/wrapmallocstatic | ||
| 235 | memcheck/tests/writev1 | ||
| 236 | 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" | |||
| 17 | GDB_BIN=@bindir@/gdb | 17 | GDB_BIN=@bindir@/gdb |
| 18 | cd ${VALGRIND_LIB}/ptest && ./gdbserver_tests/make_local_links ${GDB_BIN} | 18 | cd ${VALGRIND_LIB}/ptest && ./gdbserver_tests/make_local_links ${GDB_BIN} |
| 19 | 19 | ||
| 20 | arch=`arch` | ||
| 21 | if [ "$arch" = "aarch64" ]; then | ||
| 22 | echo "Aarch64: Hide valgrind tests that result in defunct process and then out of memory" | ||
| 23 | for i in `cat remove-for-aarch64`; do | ||
| 24 | mv $i.vgtest $i.IGNORE; | ||
| 25 | done | ||
| 26 | fi | ||
| 27 | |||
| 20 | cd ${VALGRIND_LIB}/ptest && ./tests/vg_regtest \ | 28 | cd ${VALGRIND_LIB}/ptest && ./tests/vg_regtest \ |
| 21 | --valgrind=${VALGRIND_BIN} \ | 29 | --valgrind=${VALGRIND_BIN} \ |
| 22 | --valgrind-lib=${VALGRIND_LIB} \ | 30 | --valgrind-lib=${VALGRIND_LIB} \ |
| @@ -29,6 +37,14 @@ cd ${VALGRIND_LIB}/ptest && \ | |||
| 29 | gdbserver_tests ${TOOLS} ${EXP_TOOLS} \ | 37 | gdbserver_tests ${TOOLS} ${EXP_TOOLS} \ |
| 30 | 2>&1|tee -a ${LOG} | 38 | 2>&1|tee -a ${LOG} |
| 31 | 39 | ||
| 40 | if [ "$arch" = "aarch64" ]; then | ||
| 41 | echo "Aarch64: Restore valgrind tests that result in defunct process and then out of memory" | ||
| 42 | for i in `cat remove-for-aarch64`; do | ||
| 43 | mv $i.IGNORE $i.vgtest; | ||
| 44 | done | ||
| 45 | fi | ||
| 46 | |||
| 47 | |||
| 32 | passed=`grep PASS: ${LOG}|wc -l` | 48 | passed=`grep PASS: ${LOG}|wc -l` |
| 33 | failed=`grep FAIL: ${LOG}|wc -l` | 49 | failed=`grep FAIL: ${LOG}|wc -l` |
| 34 | skipped=`grep SKIP: ${LOG}|wc -l` | 50 | 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 \ | |||
| 15 | file://fixed-perl-path.patch \ | 15 | file://fixed-perl-path.patch \ |
| 16 | file://Added-support-for-PPC-instructions-mfatbu-mfatbl.patch \ | 16 | file://Added-support-for-PPC-instructions-mfatbu-mfatbl.patch \ |
| 17 | file://run-ptest \ | 17 | file://run-ptest \ |
| 18 | file://remove-for-aarch64 \ | ||
| 18 | file://0004-Fix-out-of-tree-builds.patch \ | 19 | file://0004-Fix-out-of-tree-builds.patch \ |
| 19 | file://0005-Modify-vg_test-wrapper-to-support-PTEST-formats.patch \ | 20 | file://0005-Modify-vg_test-wrapper-to-support-PTEST-formats.patch \ |
| 20 | file://0001-Remove-tests-that-fail-to-build-on-some-PPC32-config.patch \ | 21 | file://0001-Remove-tests-that-fail-to-build-on-some-PPC32-config.patch \ |
| @@ -165,6 +166,7 @@ do_install_ptest() { | |||
| 165 | 166 | ||
| 166 | # The scripts reference config.h so add it to the top ptest dir. | 167 | # The scripts reference config.h so add it to the top ptest dir. |
| 167 | cp ${B}/config.h ${D}${PTEST_PATH} | 168 | cp ${B}/config.h ${D}${PTEST_PATH} |
| 169 | install -D ${WORKDIR}/remove-for-aarch64 ${D}${PTEST_PATH} | ||
| 168 | 170 | ||
| 169 | # Add an executable need by none/tests/bigcode | 171 | # Add an executable need by none/tests/bigcode |
| 170 | mkdir ${D}${PTEST_PATH}/perf | 172 | mkdir ${D}${PTEST_PATH}/perf |
