Skip to content

Commit

Permalink
8283555: G1: Concurrent mark accesses uninitialized BOT of closed arc…
Browse files Browse the repository at this point in the history
…hive regions

Reviewed-by: ayang, iwalulya
  • Loading branch information
Thomas Schatzl committed Mar 24, 2022
1 parent 929b6a3 commit 19f01ab
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions src/hotspot/share/cds/filemap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2330,6 +2330,11 @@ void FileMapInfo::fixup_mapped_heap_regions() {
"Null closed_heap_regions array with non-zero count");
G1CollectedHeap::heap()->fill_archive_regions(closed_heap_regions,
num_closed_heap_regions);
// G1 marking uses the BOT for object chunking during marking in
// G1CMObjArrayProcessor::process_slice(); for this reason we need to
// initialize the BOT for closed archive regions too.
G1CollectedHeap::heap()->populate_archive_regions_bot_part(closed_heap_regions,
num_closed_heap_regions);
}

// do the same for mapped open archive heap regions
Expand All @@ -2342,11 +2347,6 @@ void FileMapInfo::fixup_mapped_heap_regions() {
// fast G1BlockOffsetTablePart::block_start operations for any given address
// within the open archive regions when trying to find start of an object
// (e.g. during card table scanning).
//
// This is only needed for open archive regions but not the closed archive
// regions, because objects in closed archive regions never reference objects
// outside the closed archive regions and they are immutable. So we never
// need their BOT during garbage collection.
G1CollectedHeap::heap()->populate_archive_regions_bot_part(open_heap_regions,
num_open_heap_regions);
}
Expand Down

1 comment on commit 19f01ab

@openjdk-notifier
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.