|
From: Carl E. L. <ce...@us...> - 2015-05-14 22:07:31
|
On Mon, 2015-05-11 at 12:14 -0500, Will Schmidt wrote:
> Add a .exp for the tc06_two_races_xml for power.
> This is specifically to cover the last line of output as
> seen on ppc64BE, which is "ERROR SUMMARY: X errors from 3 contexts",
> where X is 6, versus 3 as seen on other architectures.
> The additional errors show up on BE during the "Thread #1: pthread_cond
> _destroy: destruction of condition variable being waited upon."
>
> Signed-off-by: Will Schmidt <wil...@vn...>
>
> --
>
> I did do some experimentation with filters for this change. Though I could
> squash the 3/6 values down to 0 to match, it would affect a number of other
> tests, and seemed rather invasive. I'm going with this as the most
> straightforward fix.
> ---
> helgrind/tests/Makefile.am | 1
> .../tests/pth_cond_destroy_busy.stderr.exp-ppc64 | 50 ++++++++++++++++++++
Will:
The first line of your message says "Add a .exp for the
tc06_two_races_xml.." but the expect file you are adding is for
"pth_cond_destroy_busy.stderr.exp-ppc64" I am guessing the first line
of your message was in error?
Just want to make sure I am not missing something here.
Carl Love
> 2 files changed, 51 insertions(+)
> create mode 100644 helgrind/tests/pth_cond_destroy_busy.stderr.exp-ppc64
>
> diff --git a/helgrind/tests/Makefile.am b/helgrind/tests/Makefile.am
> index e3dff80..c8409e1 100644
> --- a/helgrind/tests/Makefile.am
> +++ b/helgrind/tests/Makefile.am
> @@ -46,6 +46,7 @@ EXTRA_DIST = \
> pth_destroy_cond.vgtest \
> pth_destroy_cond.stdout.exp pth_destroy_cond.stderr.exp \
> pth_cond_destroy_busy.vgtest pth_cond_destroy_busy.stderr.exp \
> + pth_cond_destroy_busy.stderr.exp-ppc64 \
> pth_spinlock.vgtest pth_spinlock.stdout.exp pth_spinlock.stderr.exp \
> rwlock_race.vgtest rwlock_race.stdout.exp rwlock_race.stderr.exp \
> rwlock_test.vgtest rwlock_test.stdout.exp rwlock_test.stderr.exp \
> diff --git a/helgrind/tests/pth_cond_destroy_busy.stderr.exp-ppc64 b/helgrind/tests/pth_cond_destroy_busy.stderr.exp-ppc64
> new file mode 100644
> index 0000000..2da688e
> --- /dev/null
> +++ b/helgrind/tests/pth_cond_destroy_busy.stderr.exp-ppc64
> @@ -0,0 +1,50 @@
> +
> +---Thread-Announcement------------------------------------------
> +
> +Thread #x is the program's root thread
> +
> +---Thread-Announcement------------------------------------------
> +
> +Thread #x was created
> + ...
> + by 0x........: pthread_create@* (hg_intercepts.c:...)
> + by 0x........: main (pth_cond_destroy_busy.c:45)
> +
> +----------------------------------------------------------------
> +
> +Possible data race during read of size 1 at 0x........ by thread #x
> +Locks held: none
> + at 0x........: my_memcmp (hg_intercepts.c:...)
> + by 0x........: pthread_cond_destroy_WRK (hg_intercepts.c:...)
> + by 0x........: pthread_cond_destroy@* (hg_intercepts.c:...)
> + by 0x........: main (pth_cond_destroy_busy.c:52)
> +
> +This conflicts with a previous write of size 4 by thread #x
> +Locks held: none
> + ...
> + by 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
> + by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
> + by 0x........: thread_func (pth_cond_destroy_busy.c:31)
> + by 0x........: mythread_wrapper (hg_intercepts.c:...)
> + ...
> + Address 0x........ is 4 bytes inside data symbol "s_cond"
> +
> +----------------------------------------------------------------
> +
> +Thread #x: pthread_cond_destroy: destruction of condition variable being waited upon
> + at 0x........: pthread_cond_destroy_WRK (hg_intercepts.c:...)
> + by 0x........: pthread_cond_destroy@* (hg_intercepts.c:...)
> + by 0x........: main (pth_cond_destroy_busy.c:52)
> +
> +----------------------------------------------------------------
> +
> +Thread #x's call to pthread_cond_destroy failed
> + with error code 16 (EBUSY: Device or resource busy)
> + at 0x........: pthread_cond_destroy_WRK (hg_intercepts.c:...)
> + by 0x........: pthread_cond_destroy@* (hg_intercepts.c:...)
> + by 0x........: main (pth_cond_destroy_busy.c:52)
> +
> +First pthread_cond_destroy() call returned EBUSY.
> +Second pthread_cond_destroy() call returned success.
> +
> +ERROR SUMMARY: 6 errors from 3 contexts (suppressed: 0 from 0)
>
|