arm64: userspace broken with jemalloc 4.0.0
Julien Grall
julien.grall at citrix.com
Sun Aug 30 22:21:51 UTC 2015
On 30/08/2015 13:51, Julien Grall wrote:
> Hi Jason,
>
> On 30/08/2015 07:14, Jason Evans wrote:
>> On Aug 29, 2015, at 3:05 PM, Julien Grall <julien.grall at citrix.com>
>> wrote:
>>> I've built the latest freebsd master (r287263) for arm64 today. While
>>> trying to use the userspace I hit some ASSERT in jemalloc:
>>>
>>> # ls
>>> <jemalloc>:
>>> /usr/src/freebsd/lib/libc/../../contrib/jemalloc/include/jemalloc/internal/arena.h:571:
>>> Failed assertion: "pageind >= map_bias"
>>> pid 21 (ls), uid 0: exited on signal 6
>>> Abort trap
>>>
>>> It's happening every time with the command "ls".
>>>
>>> I tried to use the previous version of jemalloc (i.e reverting
>>> all the patches up to "Update jemalloc to version 4.0.0" included)
>>> and everything is working.
>>>
>>> Note that I'm using Freebsd as a Xen ARM guest although the only
>>> difference is the version of jemalloc (4.0.0 vs 3.6.0).
>>>
>>> Does anyone using arm64 have seen a similar ASSERT?
>>>
>>> BTW, is there any way to rebuild only the libc rather than doing
>>> make buildworld everytime I modified the jemalloc code?
>>
>> What is the page size on arm64?
>
> The page size is 4KB. I could give a try just in case when you have
> integrated the patch.
So I figured out the problem today. ls is linked to 2 libraries using
local thread storage: libxo and libc. Somehow the 2 libraries are using
the same base pointer for the storage.
When libxo will try to realloc a pointer living in the thread storage,
jemalloc will throw an exception (the ASSERT mentioned earlier) because
the pointer is invalid. The pointer was expected to be NULL but it has
been overwritten by jemalloc earlier.
So I don't think this is because of jemalloc and going back to an older
version appears to hide the problem.
I still need to figure out why jemalloc and libxo are sharing the same
base pointer for the thread local storage. I'm not sure where I should look.
Regards,
--
Julien Grall
More information about the freebsd-arm
mailing list