Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

8300769: Remove G1CollectionSet::_inc_bytes_used_before #12113

Closed
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
29 changes: 1 addition & 28 deletions src/hotspot/share/gc/g1/g1CollectionSet.cpp
Expand Up @@ -59,10 +59,8 @@ G1CollectionSet::G1CollectionSet(G1CollectedHeap* g1h, G1Policy* policy) :
_collection_set_cur_length(0),
_collection_set_max_length(0),
_num_optional_regions(0),
_bytes_used_before(0),
_inc_build_state(Inactive),
_inc_part_start(0),
_inc_bytes_used_before(0) {
_inc_part_start(0) {
}

G1CollectionSet::~G1CollectionSet() {
Expand Down Expand Up @@ -114,7 +112,6 @@ void G1CollectionSet::add_old_region(HeapRegion* hr) {
assert(_collection_set_cur_length < _collection_set_max_length, "Collection set now larger than maximum size.");
_collection_set_regions[_collection_set_cur_length++] = hr->hrm_index();

_bytes_used_before += hr->used();
_old_region_length++;

_g1h->old_set_remove(hr);
Expand All @@ -133,8 +130,6 @@ void G1CollectionSet::start_incremental_building() {
assert(_collection_set_cur_length == 0, "Collection set must be empty before starting a new collection set.");
assert(_inc_build_state == Inactive, "Precondition");

_inc_bytes_used_before = 0;

update_incremental_marker();
}

Expand Down Expand Up @@ -200,26 +195,6 @@ void G1CollectionSet::add_young_region_common(HeapRegion* hr) {
assert(hr->is_young(), "invariant");
assert(_inc_build_state == Active, "Precondition");

// This routine is used when:
// * adding survivor regions to the incremental cset at the end of an
// evacuation pause or
// * adding the current allocation region to the incremental cset
// when it is retired.
// Therefore this routine may be called at a safepoint by the
// VM thread, or in-between safepoints by mutator threads (when
// retiring the current allocation region)
// We need to clear and set the cached recorded/cached collection set
// information in the heap region here (before the region gets added
// to the collection set). An individual heap region's cached values
// are calculated, aggregated with the policy collection set info,
// and cached in the heap region here (initially) and (subsequently)
// by the Young List sampling code.
// Ignore calls to this due to retirement during full gc.

if (!_g1h->collector_state()->in_full_gc()) {
_inc_bytes_used_before += hr->used();
}

assert(!hr->in_collection_set(), "invariant");
_g1h->register_young_region_with_region_attr(hr);

Expand Down Expand Up @@ -334,8 +309,6 @@ double G1CollectionSet::finalize_young_part(double target_pause_time_ms, G1Survi

verify_young_cset_indices();

_bytes_used_before = _inc_bytes_used_before;

double predicted_base_time_ms = _policy->predict_base_time_ms(pending_cards);
// Base time already includes the whole remembered set related time, so do not add that here
// again.
Expand Down
22 changes: 0 additions & 22 deletions src/hotspot/share/gc/g1/g1CollectionSet.hpp
Expand Up @@ -156,11 +156,6 @@ class G1CollectionSet {
// correspond to the first x entries in the collection set candidates.
uint _num_optional_regions;

// The number of bytes in the collection set before the pause. Set from
// the incrementally built collection set at the start of an evacuation
// pause, and updated as more regions are added to the collection set.
size_t _bytes_used_before;

enum CSetBuildType {
Active, // We are actively building the collection set
Inactive // We are not actively building the collection set
Expand All @@ -169,15 +164,6 @@ class G1CollectionSet {
CSetBuildType _inc_build_state;
size_t _inc_part_start;

// The associated information that is maintained while the incremental
// collection set is being built with *young* regions. Used to populate
// the recorded info for the evacuation pause.

// The number of bytes in the incrementally built collection set.
// Used to set _collection_set_bytes_used_before at the start of
// an evacuation pause.
size_t _inc_bytes_used_before;

G1CollectorState* collector_state() const;
G1GCPhaseTimes* phase_times();

Expand Down Expand Up @@ -273,14 +259,6 @@ class G1CollectionSet {

void iterate_optional(HeapRegionClosure* cl) const;

size_t bytes_used_before() const {
return _bytes_used_before;
}

void reset_bytes_used_before() {
_bytes_used_before = 0;
}

// Finalize the initial collection set consisting of all young regions potentially a
// few old gen regions.
void finalize_initial_collection_set(double target_pause_time_ms, G1SurvivorRegions* survivor);
Expand Down
7 changes: 3 additions & 4 deletions src/hotspot/share/gc/g1/g1Policy.cpp
Expand Up @@ -103,8 +103,9 @@ void G1Policy::init(G1CollectedHeap* g1h, G1CollectionSet* collection_set) {
_free_regions_at_end_of_collection = _g1h->num_free_regions();

update_young_length_bounds();
// We may immediately start allocating regions and placing them on the
// collection set list. Initialize the per-collection set info

// We immediately start allocating regions placing them in the collection set.
// Initialize the collection set info.
_collection_set->start_incremental_building();
}

Expand Down Expand Up @@ -638,8 +639,6 @@ void G1Policy::record_young_collection_start() {

phase_times()->record_cur_collection_start_sec(now.seconds());

_collection_set->reset_bytes_used_before();

// do that for any other surv rate groups
_eden_surv_rate_group->stop_adding_regions();
_survivors_age_table.clear();
Expand Down
1 change: 0 additions & 1 deletion src/hotspot/share/gc/g1/g1YoungCollector.cpp
Expand Up @@ -1020,7 +1020,6 @@ void G1YoungCollector::post_evacuate_collection_set(G1EvacInfo* evacuation_info,

_g1h->record_obj_copy_mem_stats();

evacuation_info->set_collectionset_used_before(collection_set()->bytes_used_before());
evacuation_info->set_bytes_used(_g1h->bytes_used_during_gc());

_g1h->start_new_collection_set();
Expand Down
1 change: 1 addition & 0 deletions src/hotspot/share/gc/g1/g1YoungGCPostEvacuateTasks.cpp
Expand Up @@ -465,6 +465,7 @@ class FreeCSetStats {

void report(G1CollectedHeap* g1h, G1EvacInfo* evacuation_info) {
evacuation_info->set_regions_freed(_regions_freed);
evacuation_info->set_collectionset_used_before(_after_used_bytes + _before_used_bytes);
evacuation_info->increment_collectionset_used_after(_after_used_bytes);

g1h->decrement_summary_bytes(_before_used_bytes);
Expand Down