RFR: JDK-8263884: Clean up os::is_allocatable() across Posix platforms

Stefan Karlsson stefank at openjdk.java.net
Wed Mar 24 07:53:39 UTC 2021


On Fri, 19 Mar 2021 16:20:32 GMT, Thomas Stuefe <stuefe at openjdk.org> wrote:

> There exists a function `os::is_allocatable()` which is really only used on 32bit platforms if AggressiveHeap is set. That function tests if a given memory size can be mapped. A variant of this function exists for every os_cpu variant. They don't really differ much. Some of the 64bit only variants (eg ppc) never bothered to implement this.
> 
> I am not sure how much worth this function has, but it could at least be unified across POSIX platforms, and it should not use os::reserve_memory but plain raw mmap. There is no need for it to go through our whole reservation layer (eg NMT) if it just immediately releases the memory again.
> 
> I also would like NMT to be kept out of this since I work on NMT late stage initialization (JDK-8256844) and would like to avoid calling any of our reservation APIs before NMT initialization ran.

Looks good

src/hotspot/os/posix/os_posix.cpp line 559:

> 557:   void* p = ::mmap(NULL, s, PROT_NONE,
> 558:                    MAP_PRIVATE | MAP_NORESERVE | MAP_ANONYMOUS, -1, 0);
> 559:   if (p == (void*)MAP_FAILED) {

No need to cast here, right?

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

Marked as reviewed by stefank (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/3092


More information about the hotspot-runtime-dev mailing list