jemalloc 3.5.0 regressions on i586
jasone at canonware.com
Mon Feb 3 16:01:28 PST 2014
On Jan 29, 2014, at 11:36 AM, İsmail Dönmez <ismail at donmez.ws> wrote:
> On Wed, Jan 29, 2014 at 9:24 PM, Jason Evans <jasone at canonware.com> wrote:
> On Jan 29, 2014, at 11:17 AM, İsmail Dönmez <ismail at donmez.ws> wrote:
>> On Wed, Jan 29, 2014 at 9:09 PM, Jason Evans <jasone at canonware.com> wrote:
>> On Jan 29, 2014, at 4:28 AM, İsmail Dönmez <ismail at donmez.ws> wrote:
>> > I have 2 new failures:
>> > thd_start:test/unit/prof_accum.c:83: Failed assertion: (bt_count_prev+(i-i_prev)) <= (bt_count) --> 6 > 1: thd_start
>> I'm guessing that this is due to the compiler being especially intelligent regarding mutual recursion for alloc_(), and I just added noinline attributes for those functions:
>> However, if the compiler is being that smart, it may also be smart enough to do tail call optimization despite an attempt in the code to thwart optimization. It appears that the gcc flag to disable this is -fno-optimize-sibling-calls, but I'm reluctant to resort to that unless the noinline attribute fails to do the job.
>> This one is still failing, also adding -fno-optimize-sibling-calls to CFLAGS didn't fix it.
> Did -fno-optimize-sibling-calls make it through to the compilation commands? If not, try using EXTRA_CFLAGS instead. Assuming -fno-optimize-sibling-calls is actually getting used, I'm out of ideas as to how this is failing, and I may need to set up an equivalent environment to dig in further.
> Its there: CFLAGS : -O2 -fno-optimize-sibling-calls -std=gnu99 -fvisibility=hidden , just removing the -O2 fixes the problem. So its indeed an optimization problem, so how about compiling the tests with -O0 instead?
I gave some more thought to how to fix this problem, and eventually came to the realization that breaking the test into multiple compilation units is likely to be the most reliable long term solution. Here's the issue I'm tracking this bug with:
I haven't dug into how to gracefully implement this in the build system yet, but I'll get it sorted out prior to the next release.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the jemalloc-discuss