RFR(s): 8077417: Cleanup of Universe::initialize_heap()
Kim Barrett
kim.barrett at oracle.com
Thu Apr 16 03:36:06 UTC 2015
On Apr 15, 2015, at 12:58 PM, Per Liden <per.liden at oracle.com> wrote:
>
>> On 13 Apr 2015, at 07:42, Kim Barrett <kim.barrett at oracle.com> wrote:
>> ------------------------------------------------------------------------------
>> src/share/vm/memory/universe.cpp
>> 727 else { // UseSerialGC
>>
>> Add a guarantee that UseSerialGC is true here?
>
> It turns out that we have cases were no gc it selected, and then we fall back to using serial. There's a bug to fix that:
>
> JDK-8068582: UseSerialGC not always set up properly
>
> I'll add a comment in the code to say that we can't assert there. Will also add a comment to that bug to add an assert/guarantee when that bug is fixed.
Oh, right. I’d forgotten about that bug. Yes to your action plan.
>> src/share/vm/memory/universe.cpp
>> 735 ThreadLocalAllocBuffer::set_max_size(Universe::heap()->max_tlab_size());
>>
>> This used to be done before Universe::heap()->initialize(). Now it is
>> being called after the heap initialization. Is that change of order
>> ok?
>>
>> I looked at it and it seems ok, in which case I think the change of
>> order is actually an improvement.
>
> I looked at when I did the patch and concluded that it was ok. In fact, it seemed a bit strange to set that up before calling initialize().
That’s what I thought too.
>> While I was looking around I noticed what might be a separate problem.
>> It seems possible with a sufficiently large heap that G1's
>> max_tlab_size computation might exceed the int[Integer.MAX_VALUE] size
>> limit discussed in CollectedHeap::max_tlab_size. I'm not sure whether
>> that limit is actually relevant to G1 though. If it is relevant then
>> a new CR should be filed.
>
> I don't think there's a problem there, G1's max_tlab_size will return (region_size_in_words / 2) - 1 words, and G1's region size at most 32M at the moment. Should be way below JINT_MAX.
After looking further, I agree there’s not a problem there.
More information about the hotspot-gc-dev
mailing list