RFR (M): 8016749: -XX:+UseISM fails an assert(obj->is_oop()) when running SPECjbb2005
Vladimir Kozlov
vladimir.kozlov at oracle.com
Tue Jul 2 08:14:13 PDT 2013
On 7/2/13 8:07 AM, Vladimir Kozlov wrote:
> Albert,
>
> reserve_memory_special() had assert which indicated that it is only called with UseISM.
> Look on code in runtime/virtualspace.cpp - os::reserve_memory_special() is only call when
> os::can_commit_large_page_memory() return false. With your changes it always return 'true' (which is correct).
> I think you can replace whole body of reserve_memory_special() with fatal("this obsolete method should not be called on
> Solaris"); or something.
Remove 'obsolete' from the message sine the method is not obsolete on other platforms.
Vladimir
> The same is for release_memory_special() but, please, verify.
>
> Thanks,
> Vladimir
>
> On 7/2/13 6:41 AM, Albert Noll wrote:
>> Christian, Vladimir, thanks for your feedback.
>>
>> I added the removed flags to the ObsoleteFlag list.
>>
>> Vladimir, you are right. Removing all mpss-related code does not allow to use large pages anymore. I followed your
>> suggestions and replaced 'UseMPSS' with 'UseLargePages'. I also checked if large pages work with 'pmap -xs' when the
>> changes in webrev.01 (see below).
>>
>> Here is the new webrev:
>> http://cr.openjdk.java.net/~anoll/8016749/webrev.01/ <http://cr.openjdk.java.net/%7Eanoll/8016749/webrev.01/>
>>
>> A jprt run with the above changes was successful.
>>
>> Thanks again,
>> Albert
>>
>> On 02.07.2013 04:28, Vladimir Kozlov wrote:
>>> Albert,
>>>
>>> I don't think it is incorrect changes. Only UseISM is deprecated. We still use MPSS for large pages:
>>>
>>> // UseLargePages UseMPSS UseISM
>>> // true true false => JVM will use MPSS for large page memory.
>>> // This is the default behavior.
>>>
>>> // true false false => Unless future Solaris provides other
>>> // mechanism to use large page memory, this
>>> // combination is equivalent to -UseLargePages,
>>> // VM will not use large page memory
>>>
>>>
>>> UseMPSS is true by default and most likely it will not work without it. So you should leave current functionality but
>>> replace UseMPSS with UseLargePages flag checks in os_solaris.cpp.
>>>
>>> Also verify that large pages are used by java (pmap -xs) after your changes.
>>>
>>> thanks,
>>> Vladimir
>>>
>>> On 7/1/13 8:35 AM, Albert Noll wrote:
>>>> Hi,
>>>>
>>>> thanks for reviewing this patch:
>>>>
>>>> jbs: https://jbs.oracle.com/bugs/browse/JDK-8016749
>>>> webrev: http://cr.openjdk.java.net/~anoll/8016749/webrev.00/
>>>> <http://cr.openjdk.java.net/%7Eanoll/8016749/webrev.00/>
>>>>
>>>> Problem: ISM and MPSS are part of Solaris 9, and we do not support this
>>>> version of Solaris anymore. Instead, we use LargePages for Solaris 10+.
>>>>
>>>> Solution: Remove all code that relates to ISM and MPSS (i.e., code that
>>>> relates to the 'UseISM' and 'UseMPSS' flags).
>>>>
>>>> Testing: the following jprt run passes successfully.
>>>>
>>>> jprt submit -stree . -ot 'solaris.*' -emailalbert.noll at oracle.com
>>>>
>>>> Best,
>>>> Albert
>>
More information about the hotspot-compiler-dev
mailing list