RFR: 8306836: Remove pinned tag for G1 heap regions [v5]
Thomas Schatzl
tschatzl at openjdk.org
Tue May 2 16:47:36 UTC 2023
On Tue, 2 May 2023 15:53:17 GMT, Thomas Schatzl <tschatzl at openjdk.org> wrote:
>> Hi all,
>>
>> please review this change that removes the pinned tag from `HeapRegion`.
>>
>> So that "pinned" tag for G1 heap regions indicates that the region should not move during (young) gc. This applies to now removed archive regions and humongous objects/regions.
>>
>> With "real" g1 region pinning to deal with gclocker in g1 once and for all upcoming we need a refcount, a single bit is not sufficient anymore. Further there will be a naming conflict as this kind of "pinning" is different to g1 region pinning "pinning". The former indicates "contents can not be moved, but can be reclaimed", while the latter means "contents can not be moved and not reclaimed".
>>
>> The (current) pinned flag is surprisingly little used, only for policy decisions.
>>
>> The suggestion this change implements is to remove the "pinned" tag as it is, and reserve it for future g1 region pinning (that needs to store the pinning attribute differently as a refcount anyway).
>>
>> Testing: tier1-3, gha
>>
>> Thanks,
>> Thomas
>
> Thomas Schatzl has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains seven commits:
>
> - Merge branch 'master' into 8306836-remove-pinned-tag
> - remove is_young_gc_movable in full gc code
> - cplummer review
> - ayang review
> - Fix hsdb
> - compilation fixes
> - Initial implementation
I removed the `young_gc_is_movable()` predicate; it is probably the wrong time to introduce more abstract concepts like this in this change.
Moved off the refactoring of the `G1CollectionSetChooser::should_add()` and its caller to sometime else too - it's not relevant to this change either.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/13643#issuecomment-1531806113
More information about the serviceability-dev
mailing list