From: Bart Van Assche Date: Sat, 24 Dec 2022 22:43:40 +0000 (-0800) Subject: drd: Improve barrier support X-Git-Tag: VALGRIND_3_21_0~264 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=72b556ab15f120d6ffe5eecaed2f0e2c3f9dc975;p=thirdparty%2Fvalgrind.git drd: Improve barrier support Make test drd/tests/pth_barrier_thr_cr pass on Fedora 38. --- diff --git a/NEWS b/NEWS index 4dd33a364e..e1befb56f5 100644 --- a/NEWS +++ b/NEWS @@ -26,6 +26,7 @@ are not entered into bugzilla tend to get forgotten about or ignored. 351857 confusing error message about valid command line option 444110 priv/guest_ppc_toIR.c:36198:31: warning: duplicated 'if' condition. 444488 Use glibc.pthread.stack_cache_size tunable +444568 drd/tests/pth_barrier_thr_cr fails on Fedora 38 459476 vgdb: allow address reuse to avoid "address already in use" errorsuse" errors 462830 WARNING: unhandled amd64-freebsd syscall: 474 463027 broken check for MPX instruction support in assembler diff --git a/drd/drd_barrier.c b/drd/drd_barrier.c index 4602837244..0d6d2136ae 100644 --- a/drd/drd_barrier.c +++ b/drd/drd_barrier.c @@ -431,25 +431,6 @@ void DRD_(barrier_post_wait)(const DrdThreadId tid, const Addr barrier, oset = p->oset[p->post_iteration & 1]; q = VG_(OSetGen_Lookup)(oset, &word_tid); - if (p->pre_iteration - p->post_iteration > 1) { - BarrierErrInfo bei = { DRD_(thread_get_running_tid)(), p->a1, 0, 0 }; - VG_(maybe_record_error)(VG_(get_running_tid)(), - BarrierErr, - VG_(get_IP)(VG_(get_running_tid)()), - "Number of concurrent pthread_barrier_wait()" - " calls exceeds the barrier count", - &bei); - } else if (q == NULL) { - BarrierErrInfo bei = { DRD_(thread_get_running_tid)(), p->a1, 0, 0 }; - VG_(maybe_record_error)(VG_(get_running_tid)(), - BarrierErr, - VG_(get_IP)(VG_(get_running_tid)()), - "Error in barrier implementation" - " -- barrier_wait() started before" - " barrier_destroy() and finished after" - " barrier_destroy()", - &bei); - } if (q == NULL) { q = VG_(OSetGen_AllocNode)(oset, sizeof(*q)); DRD_(barrier_thread_initialize)(q, tid);