Request for Review (s) - 8133023: ParallelGCThreads is not calculated correctly
Jon Masamitsu
jon.masamitsu at oracle.com
Mon Nov 30 17:20:53 UTC 2015
Kim,
On 11/26/2015 02:34 PM, Kim Barrett wrote:
> On Nov 25, 2015, at 5:10 PM, Jon Masamitsu <jon.masamitsu at oracle.com> wrote:
>> 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.
> ------------------------------------------------------------------------------
> The new location for this setup (from os::init_before_ergo) is better
> than the earlier proposed change, which had it in
> VM_version::early_initialize. The latter is incorrect, because
> determine_features (sparc) examines some command-line arguments, and
> those aren't parsed until a later stage of Threads::create_vm.
>
> Specifically, determine_features (sparc) is presently looking at two
> CLAs: UseV8InstrsOnly (develop) and UseNiagaraInstrs (product). I
> suspect UseV8InstrsOnly has served its purpose and could be purged.
> But moving the call to determine_features before argument parsing
> would have unintentionally ignored UseNiagaraInstrs.
>
> The new location doesn't have this problem. Sorry I missed this in my
> earlier review.
>
> ------------------------------------------------------------------------------
> src/cpu/x86/vm/vm_version_x86.hpp
> 595 static void vm_init_before_ergo() {};
>
> Trailing semi-colon is not needed.
Fixed.
>
> ------------------------------------------------------------------------------
> src/cpu/sparc/vm/vm_version_sparc.cpp
> 39 guarantee(VM_Version::has_v9(), "only SPARC v9 is supported");
> 40 assert(_features != VM_Version::unknown_m, "System pre-initialization is not complete.");
>
> I think the assert should be first. The test performed by the
> guarantee is really only valid if the pre-initialization has been
> performed.
Agreed. Fixed.
>
> ------------------------------------------------------------------------------
> src/share/vm/runtime/os.cpp
> 319 VM_Version::vm_init_before_ergo();
>
> This call is in generic code, but only two definitions have been
> provided, for sparc and x86. Missing are aarch64, ppc, and zero.
Add vm_init_before_ergo() for those even though JPRT does not
build them? I don't need to be convinced to do it. Just
encouraged. Say "do it" and I'll do it.
Jon
>
> ------------------------------------------------------------------------------
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/hotspot-gc-dev/attachments/20151130/86a65ae3/attachment.htm>
More information about the hotspot-gc-dev
mailing list