Request for reviews (M): 6947341: JVM Crash running Oracle ATG CRMDemo
Paul Hohensee
paul.hohensee at oracle.com
Tue Jun 22 17:50:17 PDT 2010
Ok.
Paul
On 6/22/10 8:37 PM, Vladimir Kozlov wrote:
> Thank you, Tom
>
> Vladimir
>
> Tom Rodriguez wrote:
>> Looks good.
>>
>> tom
>>
>> On Jun 22, 2010, at 12:02 PM, Vladimir Kozlov wrote:
>>
>>> Thank you, Tom and Paul
>>>
>>> I updated webrev
>>>
>>> http://cr.openjdk.java.net/~kvn/6947341/webrev.02
>>>
>>> Vladimir
>>>
>>> Tom Rodriguez wrote:
>>>> Ok. Sounds good.
>>>> tom
>>>> On Jun 22, 2010, at 11:05 AM, Vladimir Kozlov wrote:
>>>>> 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