RFR (S): 8209700: Remove HeapRegionSetBase::RegionSetKind for a more flexible approach

Kim Barrett kim.barrett at oracle.com
Tue Aug 21 15:44:03 UTC 2018


> On Aug 21, 2018, at 11:11 AM, Hohensee, Paul <hohensee at amazon.com> wrote:
> 
> I'd probably keep the HeapRegionSetChecker subclass declarations/definitions in heapRegionSet.* rather than moving them to g1CollectedHeap.cpp and heapRegionManager.cpp. heapRegionSet.* is where the base class is defined, and future refactoring might require moving them out of g1CollectedHeap.cpp and heapRegionManager.cpp. If they stay in heapRegionSet.*, that'd be unnecessary. But, it's your call.

I prefer the new code arrangement.  And if we used anonymous
namespaces, I'd put these checker classes in such, in the only file
where they are used.

> In heapRegionManager.cpp:
> 
> #include "heapRegionManager.hpp"
> =>
> #include "gc/g1/heapRegionManager.hpp"
> 
> This #include isn't strictly necessary given that there already is
> 
> #include "gc/g1/heapRegionManager.inline.hpp"
> 
> In heapRegionSet.hpp:
> 
> Since you've replaced _mt_safety_checker with _verifier, you might want to change the corresponding formal parameter names from mt_safety_checker to verifier, e.g., in the HeapRegionSetBase, HeapRegionSet, and FreeRegionList constructors.

Looks good to me, with these other changes Paul suggested.

> 
> Paul
> 
> On 8/21/18, 4:53 AM, "hotspot-gc-dev on behalf of Thomas Schatzl" <hotspot-gc-dev-bounces at openjdk.java.net on behalf of thomas.schatzl at oracle.com> wrote:
> 
>    Hi all,
> 
>      in the review for JDK-8208498 there has been a discussion about using
>    enums to indicate which types of regions can be added to a given
>    HeapRegionSet; looking at the code, ultimately this enum is only used
>    for verification, i.e. if the HeapRegionSet contains the right kind of
>    regions or not.
> 
>    Instead of adding random enum values every time you need a new
>    HeapRegionSet, I refactored the code so that the existing
>    HRSMtSafeChecker passed to HeapRegionSet instances also gets methods
>    for other verification, and implemented them.
> 
>    I also moved the various HRSMtSafeChecker instances to their point of
>    use in cpp files to imho reduce the clutter in hpp files a bit (i.e.
>    hide them completely in cpp files).
> 
>    CR:
>    https://bugs.openjdk.java.net/browse/JDK-8209700
>    Webrev:
>    http://cr.openjdk.java.net/~tschatzl/8209700/webrev/
>    Testing:
>    hs-tier1-3
> 
>    This change is based on JDK-8208498 that is also out for review.
> 
>    Thanks,
>      Thomas





More information about the hotspot-gc-dev mailing list