RFR: 8224871: os::attempt_reserve_memory_at() tries too hard

Erik Österlund erik.osterlund at oracle.com
Tue Jun 4 08:38:36 UTC 2019


Hi Thomas,

Thanks for the review.

/Erik

On 2019-06-04 10:23, Thomas Stüfe wrote:
> Yes please. Looks good.
>
> Internally we had this coding disabled since 2015 to no adverse affect.
>
> If it did not work the first time, it wont work on the second try 
> neither, even if there is an overlap.
>
> Cheers, Thomas
>
> On Tue, May 28, 2019 at 3:07 PM Erik Österlund 
> <erik.osterlund at oracle.com <mailto:erik.osterlund at oracle.com>> wrote:
>
>     Hi,
>
>     The os::attempt_reserve_memory_at() function on BSD, linux and
>     Solaris
>     all try a bit too hard. They first try to mmap memory at a given
>     address. If that failed, rather than giving up as expected, it
>     tries in
>     a loop to mmap random memory (without address hints), and looks if
>     it so
>     happens to be that it can from these completely random and arbitrary
>     address ranges find overlapping ranges that happen to cross over the
>     exact range that was requested, and then cuts out the excess and
>     returns
>     that. We really should just give up instead if the OS refused to hand
>     out memory at the requested address.
>
>     Bug:
>     https://bugs.openjdk.java.net/browse/JDK-8224871
>
>     Webrev:
>     http://cr.openjdk.java.net/~eosterlund/8224871/webrev.00/
>
>     Thanks,
>     /Erik
>



More information about the hotspot-runtime-dev mailing list