Comment 8 for bug 1641241

Revision history for this message
bugproxy (bugproxy) wrote : Comment bridged from LTC Bugzilla

------- Comment From <email address hidden> 2016-11-15 17:41 EDT-------
To be clear... The successful runs we have so far have been achieved by building from Canonicals glibc sources (apt-get source libc6) with just the following patch:

--- glibc-2.23.orig/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c
+++ glibc-2.23/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c
@@ -28,13 +28,12 @@ __lll_unlock_elision (int *lock, short *
__libc_tend (0);
else
{
- lll_unlock ((*lock), pshared);
-
/* Update the adapt count AFTER completing the critical section.
Doing this here prevents unneeded stalling when entering
a critical section. Saving about 8% runtime on P8. */
if (*adapt_count > 0)
(*adapt_count)--;
+ lll_unlock ((*lock), pshared);
}
return 0;
}

And swapping in just the resulting libpthread library into the test setup. We'll continue testing with that for now. We're happy to try something from -proposed (or whatever) if you like.

And we'll keep testing with the change to prove the problem via distinct adapt_count value. (I _think_ I've seen the expected signature in a crash with that code already, but want to recreate with a testcase that will give clearer results. That testcase also runs much longer before crashing.)