Fwd: Re: Request for Review (s) - 8133023: ParallelGCThreads is not calculated correctly

Jon Masamitsu jon.masamitsu at oracle.com
Mon Nov 30 17:00:41 UTC 2015



On 11/25/2015 06:11 PM, David Holmes wrote:
> Hi Jon,
>
> We already have VM_Version::early_initialize() that can/should be used 
> for this if possible.

David,

Thanks for looking at this.  I tried to use early_initialize() but found
that I needed to add empty early_initialize() methods for nearly
all the platforms. The code I wanted to move was in os_solaris.cpp
(from the os_init() to the early_initialize()), which made me add an
early_initialize() for solaris x86 which seemed to require I add
an early_initialize() to vm_version_x86.hpp which lead me to
add empty early_initialize()  for all the x86 platforms.

You can look at my first attempt at

http://cr.openjdk.java.net/~jmasa/8133023/webrev.01/

Jon
>
> Thanks,
> David
>
> On 26/11/2015 8:50 AM, Jon Masamitsu wrote:
>> Widening the review request.  This fixed changed the order
>> of some VM initialization for solaris-sparc with hopefully
>> the minimum change for other platforms.
>>
>> Thanks.
>>
>> Jon
>>
>> -------- Forwarded Message --------
>> Subject:     Re: Request for Review (s) - 8133023: ParallelGCThreads is
>> not calculated correctly
>> Date:     Wed, 25 Nov 2015 14:10:36 -0800
>> From:     Jon Masamitsu <jon.masamitsu at oracle.com>
>> Organization:     Oracle Corporation
>> To:     hotspot-gc-dev at openjdk.java.net
>>
>>
>>
>> I have a new fix for this bug.  My previous fix broke solaris-x86 (I
>> had not defined an early_initialize() for x86).  This fix is slightly
>> smaller and has the virtue of moving the required initialization
>> closer to where it is used.
>>
>> http://cr.openjdk.java.net/~jmasa/8133023/webrev.03/index.html
>>
>> Testing: JPRT build on all platforms, checked by hand that the correct
>> number
>> of GC worker threads are created on later Niagara platforms.
>>
>> Thanks.
>>
>> Jon
>>
>> On 11/12/2015 1:31 PM, Jon Masamitsu wrote:
>>> GC calls VM_Version::calc_parallel_worker_threads() to determine
>>> the number of GC threads to create.  On Sparc it checks for newer
>>> Niagara hardware to decide the proper scaling of the GC threads with
>>> the hardware threads. calc_parallel_worker_threads() was being called
>>> before enough information was gathered to determine the Sparc hardware.
>>>
>>> Moved the gathering of information needed to earlier in the JVM
>>> initialization.
>>>
>>> http://cr.openjdk.java.net/~jmasa/8133023/webrev.00/
>>>
>>> https://bugs.openjdk.java.net/browse/JDK-8133023
>>>
>>> Thanks.
>>>
>>> Jon
>>
>>
>>



More information about the hotspot-dev mailing list