RFR (S): 8134631: G1DummyRegionsPerGC fires assert of assert(words <= filler_array_max_size()) failed: too big for a single object
Tom Benson
tom.benson at oracle.com
Mon Nov 9 21:10:02 UTC 2015
Hi Sangheon,
Rather than changing all the product-version uses, couldn't you change
_filler_array_max_size to _humongous_object_threshold_in_words around
the special debug-only call to fill_with_object instead? I think it
would be better to have the special-case hack there in the testing code
(only used when the G1DummyRegionsPerGC option is specified). Then you
don't need the new alternate entry point and only change
g1CollectedHeap.cpp.
I'm not sure the objects allocate_dummy_regions creates really MUST be
humongous - its stated purpose is just to "artificially expand the heap
by allocating a number of dead regions." But it would take more
changes to allocate_dummy_regions to allocate regions and then fill with
non-humongous objects, possibly not worth it for this case.
Tom
On 11/9/2015 2:28 PM, sangheon.kim wrote:
> Hi all,
>
> Can I get some reviews for this change for fixing this assert?
>
> Previous patch(8042668: GC Support for shared heap ranges in CDS)
> limited _filler_array_max_size of G1CollectedHeap to be less than
> humongous threshold.
> And this change led this assert as this flag is trying to fill the
> rest of regions with humongous object.
>
> As a fix, I removed the limitation to allow humongous filler and added
> a wrapper function, fill_with_non_humongous_objects().
> And replace it with current fill_with_object().
>
> CR:
> https://bugs.openjdk.java.net/browse/JDK-8134631
> Webrev:
> http://cr.openjdk.java.net/~sangheki/8134631/webrev.00/
> Test:
> JPRT
>
> Thanks,
> Sangheon
>
More information about the hotspot-gc-dev
mailing list