From: "Khem Raj" <raj.khem@gmail.com>
To: Stacy Gaikovaia <Stacy.Gaikovaia@windriver.com>,
openembedded-core@lists.openembedded.org
Subject: Re: [OE-core] [PATCH] valgrind: drd: fix pthread intercept test failures
Date: Fri, 9 Oct 2020 17:42:52 -0700 [thread overview]
Message-ID: <c30dd6a8-ba13-c450-cc54-ce45ec1641e8@gmail.com> (raw)
In-Reply-To: <20201009204431.681565-1-stacy.gaikovaia@windriver.com>
On 10/9/20 1:44 PM, Stacy Gaikovaia wrote:
> From: Stacy Gaikovaia <Stacy.Gaikovaia@windriver.com>
>
> After glibc uprev 2.31 -> 2.32, the following drd ptests
> fail with the error "condition variable has not been initialized".
>
> drd/tests/annotate_hb_err
> drd/tests/annotate_sem
> drd/tests/annotate_rwlock
> drd/tests/annotate_order_2
> drd/tests/annotate_smart_pointer
> drd/tests/annotate_spinlock
> drd/tests/monitor_example
> drd/tests/pth_cond_race
> drd/tests/pth_inconsistent_cond_wait
>
> In glibc 2.32, the POSIX thread functions are in both
> libc and libpthread, causing valgrind to misinterpert
> test behaviour. This patch tells valgrind to intercept
> both the libc and the libpthread functions, resolving
> these ptest failures.
>
> Here are the latest test results on qemux86-64:
> === Test Summary === TOTAL: 728
> PASSED: 688
> FAILED: 1
> SKIPPED: 39
>
> The failed test is in helgrind:
> FAIL: helgrind/tests/pth_destroy_cond
>
> Patch can be removed once we uprev valgrind.
> See valgrind commit 15330adf7c2471fbaa6a0818db07078d81dbff97.
>
> Signed-off-by: Stacy Gaikovaia <Stacy.Gaikovaia@windriver.com>
> ---
> .../valgrind/0001-drd-Port-to-Fedora-33.patch | 48 +++++++++++++++++++
> .../valgrind/valgrind_3.16.1.bb | 1 +
> 2 files changed, 49 insertions(+)
> create mode 100644 meta/recipes-devtools/valgrind/valgrind/0001-drd-Port-to-Fedora-33.patch
>
> diff --git a/meta/recipes-devtools/valgrind/valgrind/0001-drd-Port-to-Fedora-33.patch b/meta/recipes-devtools/valgrind/valgrind/0001-drd-Port-to-Fedora-33.patch
> new file mode 100644
> index 0000000000..693403a29d
> --- /dev/null
> +++ b/meta/recipes-devtools/valgrind/valgrind/0001-drd-Port-to-Fedora-33.patch
> @@ -0,0 +1,48 @@
> +From 15330adf7c2471fbaa6a0818db07078d81dbff97 Mon Sep 17 00:00:00 2001
> +From: Bart Van Assche <bvanassche@acm.org>
> +Date: Sat, 19 Sep 2020 08:08:59 -0700
> +Subject: [PATCH] drd: Port to Fedora 33
> +
> +Apparently on Fedora 33 the POSIX thread functions exist in both libc and
> +libpthread. Hence this patch that intercepts the pthread functions in
> +libc. See also https://bugs.kde.org/show_bug.cgi?id=426144 .
> +
> +Signed-off-by: Bart Van Assche <bvanassche@acm.org>
> +
> +This patch was imported from the valgrind sourceware server
> +(https://sourceware.org/git/?p=valgrind.git), commit id
> +15330adf7c2471fbaa6a0818db07078d81dbff97. It was modified to
> +remove the changes to the valgrind NEWS file, as these are difficult to
> +maintain and don't impact the valgrind code itself.
> +
> +Upstream-Status: Backport
add relevant link to above. This helps with context in next upgrades
otherwise this patch is fine
> +
> +Signed-off-by: Stacy Gaikovaia <stacy.gaikovaia@windriver.com>
> +---
> + drd/drd_pthread_intercepts.c | 9 +++++++++
> + 1 file changed, 10 insertions(+)
> +
> +diff --git a/drd/drd_pthread_intercepts.c b/drd/drd_pthread_intercepts.c
> +index 58c45aaec..c2882e5ab 100644
> +--- a/drd/drd_pthread_intercepts.c
> ++++ b/drd/drd_pthread_intercepts.c
> +@@ -174,7 +174,16 @@ static int never_true;
> + ret_ty VG_WRAP_FUNCTION_ZZ(VG_Z_LIBC_SONAME,zf) argl_decl \
> + { return implf argl; }
> + #else
> ++/*
> ++ * On Linux, intercept both the libc and the libpthread functions. At
> ++ * least glibc 2.32.9000 (Fedora 34) has an implementation of all pthread
> ++ * functions in both libc and libpthread. Older glibc versions only have an
> ++ * implementation of the pthread functions in libpthread.
> ++ */
> + #define PTH_FUNC(ret_ty, zf, implf, argl_decl, argl) \
> ++ ret_ty VG_WRAP_FUNCTION_ZZ(VG_Z_LIBC_SONAME,zf) argl_decl; \
> ++ ret_ty VG_WRAP_FUNCTION_ZZ(VG_Z_LIBC_SONAME,zf) argl_decl \
> ++ { return implf argl; } \
> + ret_ty VG_WRAP_FUNCTION_ZZ(VG_Z_LIBPTHREAD_SONAME,zf) argl_decl; \
> + ret_ty VG_WRAP_FUNCTION_ZZ(VG_Z_LIBPTHREAD_SONAME,zf) argl_decl \
> + { return implf argl; }
> +--
> +2.25.1
> +
> diff --git a/meta/recipes-devtools/valgrind/valgrind_3.16.1.bb b/meta/recipes-devtools/valgrind/valgrind_3.16.1.bb
> index d4ca1a7752..7508098b55 100644
> --- a/meta/recipes-devtools/valgrind/valgrind_3.16.1.bb
> +++ b/meta/recipes-devtools/valgrind/valgrind_3.16.1.bb
> @@ -40,6 +40,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-drd-Port-to-Fedora-33.patch \
> "
> SRC_URI[md5sum] = "d1b153f1ab17cf1f311705e7a83ef589"
> SRC_URI[sha256sum] = "c91f3a2f7b02db0f3bc99479861656154d241d2fdb265614ba918cc6720a33ca"
>
>
>
>
>
next prev parent reply other threads:[~2020-10-10 0:42 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-09 20:44 [PATCH] valgrind: drd: fix pthread intercept test failures Stacy Gaikovaia
2020-10-10 0:42 ` Khem Raj [this message]
-- strict thread matches above, loose matches on Subject: below --
2020-10-13 14:44 Stacy Gaikovaia
2020-10-16 6:15 ` [OE-core] " Khem Raj
2020-10-16 11:03 ` Richard Purdie
2020-10-09 17:44 Stacy Gaikovaia
2020-10-09 20:14 ` [OE-core] " Randy MacLeod
2020-10-09 20:21 ` Stacy Gaikovaia
2020-10-09 21:22 ` Randy MacLeod
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=c30dd6a8-ba13-c450-cc54-ce45ec1641e8@gmail.com \
--to=raj.khem@gmail.com \
--cc=Stacy.Gaikovaia@windriver.com \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox