Request for reviews (M): 6947341: JVM Crash running Oracle ATG CRMDemo
Vladimir Kozlov
vladimir.kozlov at oracle.com
Tue Jun 22 11:05:47 PDT 2010
Tom Rodriguez wrote:
>>
>>> Why does one of the cases return instead of falling through as if the allocation failed?
>> Because if it did not return it will fall into next code which will do regular allocation (without large pages). I want it to return so an other attempt could be made with different requested address and with large pages.
>
> How do you guarantee that it will terminate successfully?
There are only 2 attempts to allocate at the requested address. If they fail the requested_address is set to NULL and this new code will not be executed.
Vladimir
>
> tom
>
>> Vladimir
>>
>>> tom
>>> On Jun 22, 2010, at 8:46 AM, Vladimir Kozlov wrote:
>>>> http://cr.openjdk.java.net/~kvn/6947341/webrev
>>>>
>>>> Fixed 6947341: JVM Crash running Oracle ATG CRMDemo
>>>>
>>>> Missing protected page below heap with compressed oops
>>>> which use narrow_oop_base and implicit null check.
>>>> It is caused by ReservedSpace code misses checks that OS
>>>> reserved heap at requested address.
>>>>
>>>> Before 6951686 fix Linux will reserve heap memory at address
>>>> which is not requested for compressed oops VM (usually above
>>>> 32Gb virtual address: 0x00002aaaae200000). But VM thinks
>>>> it did reserve at requested address and it does not need
>>>> protected page below heap, so the code in protect_noaccess_prefix()
>>>> is not executed.
>>>>
>>>> Solution:
>>>> Add missing checks. I also added few asserts and prints
>>>> to make sure memory reservation done correctly for
>>>> compressed oops.
>>>>
>>>> Verified with CRMDemo.
>>>>
>>>>
>>>>
>>>>
>
More information about the hotspot-compiler-dev
mailing list