RFR: Add a limition to allocate object heap in aarch64 with tsan enabled.
Jie He
github.com+10233373+jhe33 at openjdk.java.net
Wed Apr 22 03:05:21 UTC 2020
On Tue, 21 Apr 2020 19:03:22 GMT, Man Cao <manc at openjdk.org> wrote:
>> Vm will calculate max heap size according to the physical ram if user
>> doesn't specify the size(-Xmx). However, with tsan 48-bits memory
>> mapping of aarch64, it's hard to allocate the large continuous vm
>> space. Heap allocation often fail in this case, thus, add a limitation
>> at the end of the heap size calculation to prevent to exceed the
>> avaiable size. Currently, only support 48-bits address space.
>>
>> Can reproduce the behavior by launching "java --version" in a machine
>> with huge physical memory.
>
> src/hotspot/share/runtime/arguments.cpp line 1864:
>
>> 1863: #if defined(AARCH64)
>> 1864: #define MAX_AVAILABLE_VM_SPACE_IN_AARCH64 (1024ULL * 1024ULL * 1024ULL * 16ULL) //16GB
>> 1865: #define MSB_IN_AARCH64 (47) // Only support 48-bits space now.
>
> The macros could be moved to tsan.hpp, and prefixed with "TSAN_", e.g. "TSAN_MSB_IN_AARCH64".
> Or we could just use C++ const variable inline.
>
> "__FUNCTION__" could also be used directly inline.
I just see other functions have similar style, which define and use the Macros or const variables locally, due to
merely one use place.
-------------
PR: https://git.openjdk.java.net/tsan/pull/6
More information about the tsan-dev
mailing list