Comment 11 for bug 1091186

Revision history for this message
Mark Rutland (mark-rutland) wrote :

Originally, when we ran a 32bit mallocstress under a 64bit kernel on an ARM fast model, mallocstress would deadlock (even with relatively small numbers of threads and loops). Will Deacon looked into this, and saw that all threads were waiting for the same futex. We believe the non-atomic eglibc locking implementation issue was to blame for the threads getting into this state.

I've installed the following packages dervived from the proposed eglibc (as described in http://launchpad.net/ubuntu/+source/eglibc/2.15-0ubuntu20.1) onto a quantal core image:
* libc-dev-bin
* libc6-dev
* libc-bin
* libc6
* multiarch-support

With these installed, I no longer experience deadlock in mallocstress.

I note the updated package contains another related bug fix: https://bugs.launchpad.net/ubuntu/quantal/+source/eglibc/+bug/1081734, which is supposed to fix this issue by changing the internal structure of malloc/calloc. Due to this, I'm unable to say which change actually fixes the issue.

I took the liberty to run a larger selection of LTP tests, and have not experienced any regressions with the updated packages, so having both doesn't seem to be harmful, at least.