RFR: Add a limition to allocate object heap in aarch64 with tsan enabled.

Man Cao manc at openjdk.java.net
Tue Apr 21 19:10:46 UTC 2020


On Mon, 20 Apr 2020 08:29:17 GMT, Jie He <github.com+10233373+jhe33 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.

Changes requested by manc (Reviewer).

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.

-------------

PR: https://git.openjdk.java.net/tsan/pull/6


More information about the tsan-dev mailing list