On Jan 29, 2014, at 11:36 AM, İsmail Dönmez <ism...@donmez.ws> wrote:
> On Wed, Jan 29, 2014 at 9:24 PM, Jason Evans <jas...@canonware.com> wrote:
> On Jan 29, 2014, at 11:17 AM, İsmail Dönmez <ism...@donmez.ws> wrote:
>> On Wed, Jan 29, 2014 at 9:09 PM, Jason Evans <jas...@canonware.com> wrote:
>> On Jan 29, 2014, at 4:28 AM, İsmail Dönmez <ism...@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_[01](), and I just added noinline 
>> attributes for those functions:
>> 
>>         
>> https://github.com/jemalloc/jemalloc/commit/526e4a59a2fe39e4f8bdf1ec0c0d2a5a557c3f62
>> 
>> 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:

        https://github.com/jemalloc/jemalloc/issues/49

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.

Thanks,
Jason
_______________________________________________
jemalloc-discuss mailing list
jemalloc-discuss@canonware.com
http://www.canonware.com/mailman/listinfo/jemalloc-discuss

Reply via email to