[ZGC] [aarch64] Unable to allocate heap for certain Linux kernel configurations
Stefan Karlsson
stefan.karlsson at oracle.com
Mon Aug 31 09:45:18 UTC 2020
Hi Florian,
On 2020-08-28 22:21, Florian Weimer wrote:
> * Stefan Karlsson:
>
>> Maybe I misunderstand this point, but we use fixed addresses when we
>> probe the address space, but we don't use MAP_FIXED:
>>
>> static bool map(uintptr_t start, size_t size) {
>> const void* const res = mmap((void*)start, size, PROT_NONE,
>> MAP_ANONYMOUS|MAP_PRIVATE|MAP_NORESERVE, -1, 0)
>>
>> bool ZVirtualMemoryManager::reserve_contiguous_platform(uintptr_t
>> start, size_t size) {
>> // Reserve address views
>> const uintptr_t marked0 = ZAddress::marked0(start);
>> const uintptr_t marked1 = ZAddress::marked1(start);
>> const uintptr_t remapped = ZAddress::remapped(start);
>>
>> if (!map(marked0, size)) {
>
> Note that you can speed this up a little bit on recent-ish kernels if
> you use MAP_FIXED_NOREPLACE.
I didn't realize that this would make the probing faster. I tested this
by blocking out the address ranges we probe with:
reserve_contiguous_platform(ZAddress::marked0(0), ZAddressOffsetMax);
reserve_contiguous_platform(ZAddress::marked1(0), ZAddressOffsetMax);
reserve_contiguous_platform(ZAddress::remapped(0), ZAddressOffsetMax);
and ran with and without MAP_FIXED_NOREPLACE. I could see a decrease in
in the worst-case times. Is this something you want to provide a patch
for? If not, I can create a JBS entry and send out a patch for review.
Thanks,
StefanK
>
> Thanks,
> Florian
>
More information about the hotspot-gc-dev
mailing list