RFR (M): 8016749: -XX:+UseISM fails an assert(obj->is_oop()) when running SPECjbb2005
Albert Noll
albert.noll at oracle.com
Wed Jul 3 00:41:31 PDT 2013
Hi Valdimir,
you are right. These methods should not be called when there is no
support for ISM. I added the fatal(#method_name should not be called on
Solaris). In addition, I found more code in os_solaris.cpp that is only
there to provide support for Solaris 8. I removed that code as well.
A jprt run was successul. I also checked that large pages can still be used.
Many thanks for your help,
Albert
Here is the new webrev:
http://cr.openjdk.java.net/~anoll/8016749/webrev.02/
<http://cr.openjdk.java.net/%7Eanoll/8016749/webrev.02/>
On 02.07.2013 17:14, Vladimir Kozlov wrote:
> 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
>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20130703/c221449e/attachment-0001.html
More information about the hotspot-compiler-dev
mailing list