RFR: 8295319: pending_cards_at_gc_start doesn't include cards in thread buffers
Ivan Walulya
iwalulya at openjdk.org
Mon Oct 31 08:35:06 UTC 2022
On Mon, 31 Oct 2022 07:24:17 GMT, Kim Barrett <kbarrett at openjdk.org> wrote:
> Please review this change to G1 to include the per-thread buffers in the
> number of pending cards at the start of a young GC.
>
> DCQS::concatenate_logs has been renamed to concatenate_logs_and_stats, and now
> also merges the per-thread refinement stats during the thread walk to flush
> buffers. That replaces the separate thread walk to merge and record these
> stats earlier in the GC. The merged stats and related info don't seem to be
> needed until after the buffer flushing.
>
> Also, when abandoning dirty card buffers and stats because of a full GC, fixed
> to also abandon an buffers in the paused buffers lists.
>
> Testing:
> mach5 tier1-3
> performance testing found no significant changes, as expected.
`calculate_collection_set` -> `finalize_initial_collection_set` -> `finalize_young_part`:
`size_t pending_cards = _policy->pending_cards_at_gc_start() + _g1h->hot_card_cache()->num_entries();`
called before `pre_evacuate_collection_set`
`flush_dirty_card_logs_and_stats` needs to be called before `calculate_collection_set`
-------------
PR: https://git.openjdk.org/jdk/pull/10914
More information about the hotspot-gc-dev
mailing list