All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5] valgrind: ptests
@ 2021-12-30  1:37 Randy MacLeod
  2021-12-30  1:37 ` [PATCH 1/5] valgrind: Add util-linux-taskset ptest dependency Randy MacLeod
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Randy MacLeod @ 2021-12-30  1:37 UTC (permalink / raw)
  To: openembedded-core

Tested on khem's glibc upgrade branch:
   https://git.yoctoproject.org/poky-contrib/log/?h=kraj/poky-next
and poky master (
   9b99eb9e36 tzdata: Remove no longer relevant RCONFLICTS:${PN}

Summary:

Work-around a glibc upgrade error in a way that also works for glibc-2.34 on master.
Fix up some ptest warnings and temporarily skip the boost_thread test for arm64.


Results:

On the branch currently known as master, the ptest summary is:

qemux86-64:

=== Test Summary ===
TOTAL: 730
PASSED: 711
FAILED: 0
SKIPPED: 19
DURATION: 1052
END: /usr/lib/valgrind/ptest
2021-12-29T23:12
STOP: ptest-runner
TOTAL: 1 FAIL: 0


qemuarm64:

TOTAL: 415
PASSED: 395
FAILED: 0
SKIPPED: 20
DURATION: 4521
END: /usr/lib/valgrind/ptest
2021-12-30T00:33
STOP: ptest-runner
TOTAL: 1 FAIL: 0

and the output from running: ptest-runner valgrind has no superfluous warnings:

root@qemuarm64:~# ptest-runner -l  
Available ptests:                      
strace  /usr/lib/strace/ptest/run-ptest       
valgrind        /usr/lib/valgrind/ptest/run-ptest
root@qemuarm64:~# ptest-runner valgrind
START: ptest-runner                            
2021-12-29T23:18                             
BEGIN: /usr/lib/valgrind/ptest       
Hide valgrind tests that are non-deterministic
Reported at https://bugs.kde.org/show_bug.cgi?id=430321
Aarch64: Hide valgrind tests that result in defunct process and then out of memory
Run non-deterministic tests using taskset to limit them to a single core.
PASS: gdbserver_tests/mcblocklistsearch          
PASS: gdbserver_tests/mcbreak 
...
PASS: none/tests/vgprintf
PASS: none/tests/vgprintf_nvalgrind

...checking makefile consistency
...checking header files and include directives
Restore non-deterministic tests
Aarch64: Restore valgrind tests that result in defunct process and then out of memory
Restore valgrind tests that are non-deterministc
Failed test details...
=== Test Summary ===
TOTAL: 415
PASSED: 395
FAILED: 0
SKIPPED: 20
DURATION: 4521
END: /usr/lib/valgrind/ptest
2021-12-30T00:33
STOP: ptest-runner
TOTAL: 1 FAIL: 0


../Randy


Randy MacLeod (5):
  valgrind: Add util-linux-taskset ptest dependency
  valgrind: backport rseq work-around
  valgrind: remove duplicate and skipped tests from remove-for-aarch64
  valgrind: skip boost_thread for aarch64 ptests
  valgrind: make run-ptest better

 ...plement-linux-rseq-syscall-as-ENOSYS.patch | 198 ++++++++++++++++++
 .../valgrind/valgrind/remove-for-aarch64      |   9 +-
 .../valgrind/valgrind/run-ptest               |  23 +-
 .../valgrind/valgrind_3.18.1.bb               |   4 +-
 4 files changed, 216 insertions(+), 18 deletions(-)
 create mode 100644 meta/recipes-devtools/valgrind/valgrind/0001-Implement-linux-rseq-syscall-as-ENOSYS.patch

-- 
2.31.1



^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/5] valgrind: Add util-linux-taskset ptest dependency
  2021-12-30  1:37 [PATCH 0/5] valgrind: ptests Randy MacLeod
@ 2021-12-30  1:37 ` Randy MacLeod
  2021-12-30  1:37 ` [PATCH 2/5] valgrind: backport rseq work-around Randy MacLeod
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Randy MacLeod @ 2021-12-30  1:37 UTC (permalink / raw)
  To: openembedded-core

We are using taskset to improve the reproducability of tests listed in:
   meta/recipes-devtools/valgrind/valgrind/taskset_nondeterministic_tests
so we need to have the ptests depend on util-linux-taskset.

Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
---
 meta/recipes-devtools/valgrind/valgrind_3.18.1.bb | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/meta/recipes-devtools/valgrind/valgrind_3.18.1.bb b/meta/recipes-devtools/valgrind/valgrind_3.18.1.bb
index e825f83d5c..d8f82a4100 100644
--- a/meta/recipes-devtools/valgrind/valgrind_3.18.1.bb
+++ b/meta/recipes-devtools/valgrind/valgrind_3.18.1.bb
@@ -133,7 +133,8 @@ RDEPENDS:${PN}-ptest += " bash coreutils curl file \
    perl-module-file-basename perl-module-file-glob perl-module-getopt-long \
    perl-module-overloading perl-module-cwd perl-module-ipc-open3 \
    perl-module-carp perl-module-symbol \
-   procps sed ${PN}-dbg ${PN}-src ${TCLIBC}-src gcc-runtime-dbg"
+   procps sed ${PN}-dbg ${PN}-src ${TCLIBC}-src gcc-runtime-dbg \
+   util-linux-taskset"
 RDEPENDS:${PN}-ptest:append:libc-glibc = " glibc-utils"
 
 # One of the tests contains a bogus interpreter path on purpose.
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/5] valgrind: backport rseq work-around
  2021-12-30  1:37 [PATCH 0/5] valgrind: ptests Randy MacLeod
  2021-12-30  1:37 ` [PATCH 1/5] valgrind: Add util-linux-taskset ptest dependency Randy MacLeod
@ 2021-12-30  1:37 ` Randy MacLeod
  2021-12-30  1:37 ` [PATCH 3/5] valgrind: remove duplicate and skipped tests from remove-for-aarch64 Randy MacLeod
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Randy MacLeod @ 2021-12-30  1:37 UTC (permalink / raw)
  To: openembedded-core

Using glibc-2.35-alpha, valgrind ptests mostly all fail with the error:
   WARNING: unhandled amd64-linux syscall: 334
   You may be able to write your own handler.
With this patch applied qemux86-64 ptest results were:
   TOTAL: 728
   PASSED: 709
   FAILED: 0
   SKIPPED: 19

This patch implements the Linux rseq syscall as ENOSYS while
a proper fix is being worked on as desribed in the patch
commit log.

Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
---
 ...plement-linux-rseq-syscall-as-ENOSYS.patch | 198 ++++++++++++++++++
 .../valgrind/valgrind_3.18.1.bb               |   1 +
 2 files changed, 199 insertions(+)
 create mode 100644 meta/recipes-devtools/valgrind/valgrind/0001-Implement-linux-rseq-syscall-as-ENOSYS.patch

diff --git a/meta/recipes-devtools/valgrind/valgrind/0001-Implement-linux-rseq-syscall-as-ENOSYS.patch b/meta/recipes-devtools/valgrind/valgrind/0001-Implement-linux-rseq-syscall-as-ENOSYS.patch
new file mode 100644
index 0000000000..be1536980c
--- /dev/null
+++ b/meta/recipes-devtools/valgrind/valgrind/0001-Implement-linux-rseq-syscall-as-ENOSYS.patch
@@ -0,0 +1,198 @@
+From 1024237358f01009fe233cb1294f3b8211304eaa Mon Sep 17 00:00:00 2001
+From: Mark Wielaard <mark@klomp.org>
+Date: Fri, 10 Dec 2021 17:41:59 +0100
+Subject: [PATCH] Implement linux rseq syscall as ENOSYS
+
+This implements rseq for amd64, arm, arm64, ppc32, ppc64,
+s390x and x86 linux as ENOSYS (without warning).
+
+glibc will start using rseq to accelerate sched_getcpu, if
+available. This would cause a warning from valgrind every
+time a new thread is started.
+
+Real rseq (restartable sequences) support is pretty hard, so
+for now just explicitly return ENOSYS (just like we do for clone3).
+
+Upstream-Status: Backport [ 1024237358f01009fe233cb1294f3b8211304eaa ]
+
+https://sourceware.org/pipermail/libc-alpha/2021-December/133656.html
+---
+ coregrind/m_syswrap/syswrap-amd64-linux.c | 2 ++
+ coregrind/m_syswrap/syswrap-arm-linux.c   | 1 +
+ coregrind/m_syswrap/syswrap-arm64-linux.c | 3 ++-
+ coregrind/m_syswrap/syswrap-ppc32-linux.c | 2 ++
+ coregrind/m_syswrap/syswrap-ppc64-linux.c | 2 ++
+ coregrind/m_syswrap/syswrap-s390x-linux.c | 2 ++
+ coregrind/m_syswrap/syswrap-x86-linux.c   | 2 ++
+ include/vki/vki-scnums-arm-linux.h        | 1 +
+ include/vki/vki-scnums-arm64-linux.h      | 4 +++-
+ include/vki/vki-scnums-ppc32-linux.h      | 1 +
+ include/vki/vki-scnums-ppc64-linux.h      | 1 +
+ include/vki/vki-scnums-s390x-linux.h      | 5 ++++-
+ 12 files changed, 23 insertions(+), 3 deletions(-)
+
+diff --git a/coregrind/m_syswrap/syswrap-amd64-linux.c b/coregrind/m_syswrap/syswrap-amd64-linux.c
+index 5062324a1..18b25f80a 100644
+--- a/coregrind/m_syswrap/syswrap-amd64-linux.c
++++ b/coregrind/m_syswrap/syswrap-amd64-linux.c
+@@ -862,6 +862,8 @@ static SyscallTableEntry syscall_table[] = {
+ 
+    LINXY(__NR_statx,             sys_statx),             // 332
+ 
++   GENX_(__NR_rseq,              sys_ni_syscall),        // 334
++
+    LINX_(__NR_membarrier,        sys_membarrier),        // 324
+ 
+    LINX_(__NR_copy_file_range,   sys_copy_file_range),   // 326
+diff --git a/coregrind/m_syswrap/syswrap-arm-linux.c b/coregrind/m_syswrap/syswrap-arm-linux.c
+index 556dd844b..d583cef0c 100644
+--- a/coregrind/m_syswrap/syswrap-arm-linux.c
++++ b/coregrind/m_syswrap/syswrap-arm-linux.c
+@@ -1024,6 +1024,7 @@ static SyscallTableEntry syscall_main_table[] = {
+    LINX_(__NR_pwritev2,          sys_pwritev2),         // 393
+ 
+    LINXY(__NR_statx,             sys_statx),            // 397
++   GENX_(__NR_rseq,              sys_ni_syscall),       // 398
+ 
+    LINXY(__NR_clock_gettime64,   sys_clock_gettime64),  // 403
+    LINX_(__NR_clock_settime64,   sys_clock_settime64),  // 404
+diff --git a/coregrind/m_syswrap/syswrap-arm64-linux.c b/coregrind/m_syswrap/syswrap-arm64-linux.c
+index b87107727..2066a38ea 100644
+--- a/coregrind/m_syswrap/syswrap-arm64-linux.c
++++ b/coregrind/m_syswrap/syswrap-arm64-linux.c
+@@ -823,8 +823,9 @@ static SyscallTableEntry syscall_main_table[] = {
+    //   (__NR_pkey_mprotect,     sys_ni_syscall),        // 288
+    //   (__NR_pkey_alloc,        sys_ni_syscall),        // 289
+    //   (__NR_pkey_free,         sys_ni_syscall),        // 290
++   LINXY(__NR_statx,             sys_statx),             // 291
+ 
+-   LINXY(__NR_statx,             sys_statx),             // 397
++   GENX_(__NR_rseq,              sys_ni_syscall),        // 293
+ 
+    LINXY(__NR_io_uring_setup,    sys_io_uring_setup),    // 425
+    LINXY(__NR_io_uring_enter,    sys_io_uring_enter),    // 426
+diff --git a/coregrind/m_syswrap/syswrap-ppc32-linux.c b/coregrind/m_syswrap/syswrap-ppc32-linux.c
+index 6263ab845..637b2504e 100644
+--- a/coregrind/m_syswrap/syswrap-ppc32-linux.c
++++ b/coregrind/m_syswrap/syswrap-ppc32-linux.c
+@@ -1028,6 +1028,8 @@ static SyscallTableEntry syscall_table[] = {
+ 
+    LINXY(__NR_statx,             sys_statx),            // 383
+ 
++   GENX_(__NR_rseq,              sys_ni_syscall),       // 387
++
+    LINXY(__NR_clock_gettime64,   sys_clock_gettime64),  // 403
+    LINX_(__NR_clock_settime64,   sys_clock_settime64),  // 404
+ 
+diff --git a/coregrind/m_syswrap/syswrap-ppc64-linux.c b/coregrind/m_syswrap/syswrap-ppc64-linux.c
+index a26b41c32..93956d3cc 100644
+--- a/coregrind/m_syswrap/syswrap-ppc64-linux.c
++++ b/coregrind/m_syswrap/syswrap-ppc64-linux.c
+@@ -1019,6 +1019,8 @@ static SyscallTableEntry syscall_table[] = {
+ 
+    LINXY(__NR_statx,             sys_statx),            // 383
+ 
++   GENX_(__NR_rseq,              sys_ni_syscall),       // 387
++
+    LINXY(__NR_io_uring_setup,    sys_io_uring_setup),    // 425
+    LINXY(__NR_io_uring_enter,    sys_io_uring_enter),    // 426
+    LINXY(__NR_io_uring_register, sys_io_uring_register), // 427
+diff --git a/coregrind/m_syswrap/syswrap-s390x-linux.c b/coregrind/m_syswrap/syswrap-s390x-linux.c
+index 5c9209859..73f9684c4 100644
+--- a/coregrind/m_syswrap/syswrap-s390x-linux.c
++++ b/coregrind/m_syswrap/syswrap-s390x-linux.c
+@@ -860,6 +860,8 @@ static SyscallTableEntry syscall_table[] = {
+ 
+    LINXY(__NR_statx, sys_statx),                                      // 379
+ 
++   GENX_(__NR_rseq, sys_ni_syscall),                                  // 381
++
+    LINXY(__NR_io_uring_setup, sys_io_uring_setup),                    // 425
+    LINXY(__NR_io_uring_enter, sys_io_uring_enter),                    // 426
+    LINXY(__NR_io_uring_register, sys_io_uring_register),              // 427
+diff --git a/coregrind/m_syswrap/syswrap-x86-linux.c b/coregrind/m_syswrap/syswrap-x86-linux.c
+index 1d8f45d33..8662ff501 100644
+--- a/coregrind/m_syswrap/syswrap-x86-linux.c
++++ b/coregrind/m_syswrap/syswrap-x86-linux.c
+@@ -1619,6 +1619,8 @@ static SyscallTableEntry syscall_table[] = {
+    /* Explicitly not supported on i386 yet. */
+    GENX_(__NR_arch_prctl,        sys_ni_syscall),       // 384
+ 
++   GENX_(__NR_rseq,              sys_ni_syscall),       // 386
++
+    LINXY(__NR_clock_gettime64,   sys_clock_gettime64),  // 403
+    LINX_(__NR_clock_settime64,   sys_clock_settime64),  // 404
+ 
+diff --git a/include/vki/vki-scnums-arm-linux.h b/include/vki/vki-scnums-arm-linux.h
+index ff560e19d..485db8b26 100644
+--- a/include/vki/vki-scnums-arm-linux.h
++++ b/include/vki/vki-scnums-arm-linux.h
+@@ -432,6 +432,7 @@
+ #define __NR_pkey_alloc                 395
+ #define __NR_pkey_free                  396
+ #define __NR_statx                      397
++#define __NR_rseq                       398
+ 
+ 
+ 
+diff --git a/include/vki/vki-scnums-arm64-linux.h b/include/vki/vki-scnums-arm64-linux.h
+index 9aa3b2b5f..acdfb39c6 100644
+--- a/include/vki/vki-scnums-arm64-linux.h
++++ b/include/vki/vki-scnums-arm64-linux.h
+@@ -323,9 +323,11 @@
+ #define __NR_pkey_alloc 289
+ #define __NR_pkey_free 290
+ #define __NR_statx 291
++#define __NR_io_pgetevents 291
++#define __NR_rseq 293
+ 
+ #undef __NR_syscalls
+-#define __NR_syscalls 292
++#define __NR_syscalls 294
+ 
+ ///*
+ // * All syscalls below here should go away really,
+diff --git a/include/vki/vki-scnums-ppc32-linux.h b/include/vki/vki-scnums-ppc32-linux.h
+index 6987ad941..08fa77df0 100644
+--- a/include/vki/vki-scnums-ppc32-linux.h
++++ b/include/vki/vki-scnums-ppc32-linux.h
+@@ -415,6 +415,7 @@
+ #define __NR_pkey_alloc		384
+ #define __NR_pkey_free		385
+ #define __NR_pkey_mprotect	386
++#define __NR_rseq		387
+ 
+ #endif /* __VKI_SCNUMS_PPC32_LINUX_H */
+ 
+diff --git a/include/vki/vki-scnums-ppc64-linux.h b/include/vki/vki-scnums-ppc64-linux.h
+index 6827964fd..a76fa6d32 100644
+--- a/include/vki/vki-scnums-ppc64-linux.h
++++ b/include/vki/vki-scnums-ppc64-linux.h
+@@ -407,6 +407,7 @@
+ #define __NR_pkey_alloc		384
+ #define __NR_pkey_free		385
+ #define __NR_pkey_mprotect	386
++#define __NR_rseq		387
+ 
+ #endif /* __VKI_SCNUMS_PPC64_LINUX_H */
+ 
+diff --git a/include/vki/vki-scnums-s390x-linux.h b/include/vki/vki-scnums-s390x-linux.h
+index 6487e20c9..869c04584 100644
+--- a/include/vki/vki-scnums-s390x-linux.h
++++ b/include/vki/vki-scnums-s390x-linux.h
+@@ -342,8 +342,11 @@
+ #define __NR_s390_guarded_storage	378
+ #define __NR_statx			379
+ #define __NR_s390_sthyi			380
++#define __NR_kexec_file_load		381
++#define __NR_io_pgetevents		382
++#define __NR_rseq			383
+ 
+-#define NR_syscalls 381
++#define NR_syscalls 384
+ 
+ /* 
+  * There are some system calls that are not present on 64 bit, some
+-- 
+2.30.2
+
diff --git a/meta/recipes-devtools/valgrind/valgrind_3.18.1.bb b/meta/recipes-devtools/valgrind/valgrind_3.18.1.bb
index d8f82a4100..7837034f92 100644
--- a/meta/recipes-devtools/valgrind/valgrind_3.18.1.bb
+++ b/meta/recipes-devtools/valgrind/valgrind_3.18.1.bb
@@ -42,6 +42,7 @@ SRC_URI = "https://sourceware.org/pub/valgrind/valgrind-${PV}.tar.bz2 \
            file://s390x_vec_op_t.patch \
            file://0001-none-tests-fdleak_cmsg.stderr.exp-adjust-tmp-paths.patch \
            file://0001-memcheck-tests-Fix-timerfd-syscall-test.patch \
+           file://0001-Implement-linux-rseq-syscall-as-ENOSYS.patch \
            "
 SRC_URI[sha256sum] = "00859aa13a772eddf7822225f4b46ee0d39afbe071d32778da4d99984081f7f5"
 UPSTREAM_CHECK_REGEX = "valgrind-(?P<pver>\d+(\.\d+)+)\.tar"
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 3/5] valgrind: remove duplicate and skipped tests from remove-for-aarch64
  2021-12-30  1:37 [PATCH 0/5] valgrind: ptests Randy MacLeod
  2021-12-30  1:37 ` [PATCH 1/5] valgrind: Add util-linux-taskset ptest dependency Randy MacLeod
  2021-12-30  1:37 ` [PATCH 2/5] valgrind: backport rseq work-around Randy MacLeod
@ 2021-12-30  1:37 ` Randy MacLeod
  2021-12-30  1:37 ` [PATCH 4/5] valgrind: skip boost_thread for aarch64 ptests Randy MacLeod
  2021-12-30  1:37 ` [PATCH 5/5] valgrind: make run-ptest better Randy MacLeod
  4 siblings, 0 replies; 6+ messages in thread
From: Randy MacLeod @ 2021-12-30  1:37 UTC (permalink / raw)
  To: openembedded-core

The valgrind ptest script warns about tests such as:
   mv: cannot stat 'drd/tests/bar_bad_xml.vgtest': No such file or directory

Since these tests were either in both remove-for-* lists or
were not installed since they fail everywhere as noted in:
   85a0d61025 valgrind: fix the remaining ptest failures
   984ffe3ab4 valgrind: Disable leak_cpp_interior test
remove them from the remove-for-aarch64 list

Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
---
 .../recipes-devtools/valgrind/valgrind/remove-for-aarch64 | 8 --------
 1 file changed, 8 deletions(-)

diff --git a/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64 b/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64
index 440e8bec31..ef48458c3b 100644
--- a/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64
+++ b/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64
@@ -32,7 +32,6 @@ 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
@@ -66,7 +65,6 @@ 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
@@ -109,7 +107,6 @@ 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
@@ -174,7 +171,6 @@ 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
@@ -194,13 +190,11 @@ 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
@@ -208,7 +202,6 @@ 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
@@ -236,5 +229,4 @@ memcheck/tests/wrapmallocstatic
 memcheck/tests/writev1
 memcheck/tests/xml1
 memcheck/tests/linux/stack_changes
-gdbserver_tests/hginfo
 memcheck/tests/linux/timerfd-syscall
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 4/5] valgrind: skip boost_thread for aarch64 ptests
  2021-12-30  1:37 [PATCH 0/5] valgrind: ptests Randy MacLeod
                   ` (2 preceding siblings ...)
  2021-12-30  1:37 ` [PATCH 3/5] valgrind: remove duplicate and skipped tests from remove-for-aarch64 Randy MacLeod
@ 2021-12-30  1:37 ` Randy MacLeod
  2021-12-30  1:37 ` [PATCH 5/5] valgrind: make run-ptest better Randy MacLeod
  4 siblings, 0 replies; 6+ messages in thread
From: Randy MacLeod @ 2021-12-30  1:37 UTC (permalink / raw)
  To: openembedded-core

The drd/tests/boost_thread test passes when run interactively on qemuarm64
but fails for most runs when run in qemu on an arm worker such as ubuntu1804-arm-1
from the Yocto autobuilder cluster. Skip the test until we fix the problem.

Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
---
 meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64 | 1 +
 1 file changed, 1 insertion(+)

diff --git a/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64 b/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64
index ef48458c3b..887bfd2766 100644
--- a/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64
+++ b/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64
@@ -33,6 +33,7 @@ drd/tests/annotate_trace_memory_xml
 drd/tests/atomic_var
 drd/tests/bar_bad
 drd/tests/bar_trivial
+drd/tests/boost_thread
 drd/tests/bug-235681
 drd/tests/bug322621
 drd/tests/circular_buffer
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 5/5] valgrind: make run-ptest better
  2021-12-30  1:37 [PATCH 0/5] valgrind: ptests Randy MacLeod
                   ` (3 preceding siblings ...)
  2021-12-30  1:37 ` [PATCH 4/5] valgrind: skip boost_thread for aarch64 ptests Randy MacLeod
@ 2021-12-30  1:37 ` Randy MacLeod
  4 siblings, 0 replies; 6+ messages in thread
From: Randy MacLeod @ 2021-12-30  1:37 UTC (permalink / raw)
  To: openembedded-core

There were warnings about non-existent files when there was
a duplicate in the remove-for-aarch list and the non-deterministic lists
so check if the files still exists before trying to deal with it.

Also restore the tests in the opposite order that they were hidden.

Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
---
 .../valgrind/valgrind/run-ptest               | 23 +++++++++++--------
 1 file changed, 14 insertions(+), 9 deletions(-)

diff --git a/meta/recipes-devtools/valgrind/valgrind/run-ptest b/meta/recipes-devtools/valgrind/valgrind/run-ptest
index caeae84d4f..15cf03f9d2 100755
--- a/meta/recipes-devtools/valgrind/valgrind/run-ptest
+++ b/meta/recipes-devtools/valgrind/valgrind/run-ptest
@@ -32,13 +32,16 @@ if [ "$arch" = "aarch64" ]; then
    done
 fi
 
-echo "Run flaky tests using taskset to limit them to a single core."
+echo "Run non-deterministic tests using taskset to limit them to a single core."
 for i in `cat taskset_nondeterministic_tests`; do
-   taskset 0x00000001 perl tests/vg_regtest --valgrind=${VALGRIND_BIN} --valgrind-lib=${VALGRIND_LIBEXECDIR} --yocto-ptest $i 2>&1|tee -a ${LOG}
-   mv $i.vgtest $i.IGNORE
+   # The remove-for-aarch64 and taskset_nondeterministic_tests may overlap so 
+   # check if a file exist.
+   if test -f "${i}.vgtest"; then
+      taskset 0x00000001 perl tests/vg_regtest --valgrind=${VALGRIND_BIN} --valgrind-lib=${VALGRIND_LIBEXECDIR} --yocto-ptest $i 2>&1|tee -a ${LOG}
+      mv $i.vgtest $i.IGNORE
+   fi
 done
 
-
 cd ${VALGRIND_LIB}/ptest && ./tests/vg_regtest \
     --valgrind=${VALGRIND_BIN} \
     --valgrind-lib=${VALGRIND_LIBEXECDIR} \
@@ -51,6 +54,13 @@ cd ${VALGRIND_LIB}/ptest && \
     gdbserver_tests ${TOOLS} ${EXP_TOOLS} \
     2>&1|tee -a ${LOG}
 
+echo "Restore non-deterministic tests"
+for i in `cat taskset_nondeterministic_tests`; do
+   if test -f "${i}.vgtest.IGNORE"; then
+      mv $i.IGNORE $i.vgtest;
+   fi
+done
+
 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
@@ -63,11 +73,6 @@ for i in `cat remove-for-all`; do
    mv $i.IGNORE $i.vgtest;
 done
 
-echo "Restore flaky and other non-deterministic tests"
-for i in `cat taskset_nondeterministic_tests`; do
-   mv $i.IGNORE $i.vgtest;
-done
-
 echo "Failed test details..."
 failed_tests=`grep FAIL: ${LOG} | awk '{print $2}'`
 for test in $failed_tests; do
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-12-30  1:37 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-30  1:37 [PATCH 0/5] valgrind: ptests Randy MacLeod
2021-12-30  1:37 ` [PATCH 1/5] valgrind: Add util-linux-taskset ptest dependency Randy MacLeod
2021-12-30  1:37 ` [PATCH 2/5] valgrind: backport rseq work-around Randy MacLeod
2021-12-30  1:37 ` [PATCH 3/5] valgrind: remove duplicate and skipped tests from remove-for-aarch64 Randy MacLeod
2021-12-30  1:37 ` [PATCH 4/5] valgrind: skip boost_thread for aarch64 ptests Randy MacLeod
2021-12-30  1:37 ` [PATCH 5/5] valgrind: make run-ptest better Randy MacLeod

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.