|
From: Will S. <wil...@vn...> - 2015-05-15 15:09:15
|
On Thu, 2015-05-14 at 15:07 -0700, Carl E. Love wrote: > 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. I must've messed that up when I was refreshing the patch descriptions. The body/contents are correct. If something still seems fishy I'll resubmit next time around. Thanks, -Will > > 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) > > > > |