Skip to content

Commit 7dd19af

Browse files
committedJul 21, 2021
8270803: Reduce CDS API verbosity
Reviewed-by: minqi, ccheung
1 parent 6346793 commit 7dd19af

17 files changed

+198
-210
lines changed
 

‎src/hotspot/share/cds/archiveBuilder.cpp

+10-10
Original file line numberDiff line numberDiff line change
@@ -1080,16 +1080,16 @@ void ArchiveBuilder::write_archive(FileMapInfo* mapinfo,
10801080
bitmap_size_in_bytes);
10811081

10821082
if (closed_heap_regions != NULL) {
1083-
_total_closed_heap_region_size = mapinfo->write_archive_heap_regions(
1083+
_total_closed_heap_region_size = mapinfo->write_heap_regions(
10841084
closed_heap_regions,
10851085
closed_heap_oopmaps,
1086-
MetaspaceShared::first_closed_archive_heap_region,
1087-
MetaspaceShared::max_closed_archive_heap_region);
1088-
_total_open_heap_region_size = mapinfo->write_archive_heap_regions(
1086+
MetaspaceShared::first_closed_heap_region,
1087+
MetaspaceShared::max_closed_heap_region);
1088+
_total_open_heap_region_size = mapinfo->write_heap_regions(
10891089
open_heap_regions,
10901090
open_heap_oopmaps,
1091-
MetaspaceShared::first_open_archive_heap_region,
1092-
MetaspaceShared::max_open_archive_heap_region);
1091+
MetaspaceShared::first_open_heap_region,
1092+
MetaspaceShared::max_open_heap_region);
10931093
}
10941094

10951095
print_region_stats(mapinfo, closed_heap_regions, open_heap_regions);
@@ -1155,12 +1155,12 @@ void ArchiveBuilder::print_bitmap_region_stats(size_t size, size_t total_size) {
11551155
size, size/double(total_size)*100.0, size);
11561156
}
11571157

1158-
void ArchiveBuilder::print_heap_region_stats(GrowableArray<MemRegion> *heap_mem,
1158+
void ArchiveBuilder::print_heap_region_stats(GrowableArray<MemRegion>* regions,
11591159
const char *name, size_t total_size) {
1160-
int arr_len = heap_mem == NULL ? 0 : heap_mem->length();
1160+
int arr_len = regions == NULL ? 0 : regions->length();
11611161
for (int i = 0; i < arr_len; i++) {
1162-
char* start = (char*)heap_mem->at(i).start();
1163-
size_t size = heap_mem->at(i).byte_size();
1162+
char* start = (char*)regions->at(i).start();
1163+
size_t size = regions->at(i).byte_size();
11641164
char* top = start + size;
11651165
log_debug(cds)("%s%d space: " SIZE_FORMAT_W(9) " [ %4.1f%% of total] out of " SIZE_FORMAT_W(9) " bytes [100.0%% used] at " INTPTR_FORMAT,
11661166
name, i, size, size/double(total_size)*100.0, size, p2i(start));

‎src/hotspot/share/cds/archiveBuilder.hpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ class ArchiveBuilder : public StackObj {
216216
GrowableArray<MemRegion>* closed_heap_regions,
217217
GrowableArray<MemRegion>* open_heap_regions);
218218
void print_bitmap_region_stats(size_t size, size_t total_size);
219-
void print_heap_region_stats(GrowableArray<MemRegion> *heap_mem,
219+
void print_heap_region_stats(GrowableArray<MemRegion>* regions,
220220
const char *name, size_t total_size);
221221

222222
// For global access.

‎src/hotspot/share/cds/archiveUtils.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -307,12 +307,12 @@ void ReadClosure::do_tag(int tag) {
307307

308308
void ReadClosure::do_oop(oop *p) {
309309
narrowOop o = CompressedOops::narrow_oop_cast(nextPtr());
310-
if (CompressedOops::is_null(o) || !HeapShared::open_archive_heap_region_mapped()) {
310+
if (CompressedOops::is_null(o) || !HeapShared::open_regions_mapped()) {
311311
*p = NULL;
312312
} else {
313313
assert(HeapShared::is_heap_object_archiving_allowed(),
314314
"Archived heap object is not allowed");
315-
assert(HeapShared::open_archive_heap_region_mapped(),
315+
assert(HeapShared::open_regions_mapped(),
316316
"Open archive heap region is not mapped");
317317
*p = HeapShared::decode_from_archive(o);
318318
}

‎src/hotspot/share/cds/filemap.cpp

+78-79
Large diffs are not rendered by default.

‎src/hotspot/share/cds/filemap.hpp

+9-9
Original file line numberDiff line numberDiff line change
@@ -460,19 +460,19 @@ class FileMapInfo : public CHeapObj<mtInternal> {
460460
GrowableArray<ArchiveHeapOopmapInfo>* closed_oopmaps,
461461
GrowableArray<ArchiveHeapOopmapInfo>* open_oopmaps,
462462
size_t &size_in_bytes);
463-
size_t write_archive_heap_regions(GrowableArray<MemRegion> *heap_mem,
464-
GrowableArray<ArchiveHeapOopmapInfo> *oopmaps,
465-
int first_region_id, int max_num_regions);
463+
size_t write_heap_regions(GrowableArray<MemRegion>* regions,
464+
GrowableArray<ArchiveHeapOopmapInfo>* oopmaps,
465+
int first_region_id, int max_num_regions);
466466
void write_bytes(const void* buffer, size_t count);
467467
void write_bytes_aligned(const void* buffer, size_t count);
468468
size_t read_bytes(void* buffer, size_t count);
469469
MapArchiveResult map_regions(int regions[], int num_regions, char* mapped_base_address, ReservedSpace rs);
470470
void unmap_regions(int regions[], int num_regions);
471471
void map_heap_regions() NOT_CDS_JAVA_HEAP_RETURN;
472472
void fixup_mapped_heap_regions() NOT_CDS_JAVA_HEAP_RETURN;
473-
void patch_archived_heap_embedded_pointers() NOT_CDS_JAVA_HEAP_RETURN;
474-
void patch_archived_heap_embedded_pointers(MemRegion* ranges, int num_ranges,
475-
int first_region_idx) NOT_CDS_JAVA_HEAP_RETURN;
473+
void patch_heap_embedded_pointers() NOT_CDS_JAVA_HEAP_RETURN;
474+
void patch_heap_embedded_pointers(MemRegion* regions, int num_regions,
475+
int first_region_idx) NOT_CDS_JAVA_HEAP_RETURN;
476476
bool has_heap_regions() NOT_CDS_JAVA_HEAP_RETURN_(false);
477477
MemRegion get_heap_regions_range_with_current_oop_encoding_mode() NOT_CDS_JAVA_HEAP_RETURN_(MemRegion());
478478
void unmap_region(int i);
@@ -570,10 +570,10 @@ class FileMapInfo : public CHeapObj<mtInternal> {
570570
GrowableArray<const char*>* rp_array) NOT_CDS_RETURN_(false);
571571
bool validate_boot_class_paths() NOT_CDS_RETURN_(false);
572572
bool validate_app_class_paths(int shared_app_paths_len) NOT_CDS_RETURN_(false);
573-
bool map_heap_data(MemRegion **heap_mem, int first, int max, int* num,
574-
bool is_open = false) NOT_CDS_JAVA_HEAP_RETURN_(false);
573+
bool map_heap_regions(int first, int max, bool is_open_archive,
574+
MemRegion** regions_ret, int* num_regions_ret) NOT_CDS_JAVA_HEAP_RETURN_(false);
575575
bool region_crc_check(char* buf, size_t size, int expected_crc) NOT_CDS_RETURN_(false);
576-
void dealloc_archive_heap_regions(MemRegion* regions, int num) NOT_CDS_JAVA_HEAP_RETURN;
576+
void dealloc_heap_regions(MemRegion* regions, int num) NOT_CDS_JAVA_HEAP_RETURN;
577577
void map_heap_regions_impl() NOT_CDS_JAVA_HEAP_RETURN;
578578
char* map_bitmap_region();
579579
MapArchiveResult map_region(int i, intx addr_delta, char* mapped_base_address, ReservedSpace rs);

‎src/hotspot/share/cds/heapShared.cpp

+21-23
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,8 @@
6767

6868
#if INCLUDE_CDS_JAVA_HEAP
6969

70-
bool HeapShared::_closed_archive_heap_region_mapped = false;
71-
bool HeapShared::_open_archive_heap_region_mapped = false;
72-
bool HeapShared::_archive_heap_region_fixed = false;
70+
bool HeapShared::_closed_regions_mapped = false;
71+
bool HeapShared::_open_regions_mapped = false;
7372
address HeapShared::_narrow_oop_base;
7473
int HeapShared::_narrow_oop_shift;
7574
DumpedInternedStrings *HeapShared::_dumped_interned_strings = NULL;
@@ -122,10 +121,9 @@ OopHandle HeapShared::_roots;
122121
// Java heap object archiving support
123122
//
124123
////////////////////////////////////////////////////////////////
125-
void HeapShared::fixup_mapped_heap_regions() {
124+
void HeapShared::fixup_mapped_regions() {
126125
FileMapInfo *mapinfo = FileMapInfo::current_info();
127126
mapinfo->fixup_mapped_heap_regions();
128-
set_archive_heap_region_fixed();
129127
if (is_mapped()) {
130128
_roots = OopHandle(Universe::vm_global(), decode_from_archive(_roots_narrow));
131129
if (!MetaspaceShared::use_full_module_graph()) {
@@ -213,7 +211,7 @@ objArrayOop HeapShared::roots() {
213211

214212
void HeapShared::set_roots(narrowOop roots) {
215213
assert(UseSharedSpaces, "runtime only");
216-
assert(open_archive_heap_region_mapped(), "must be");
214+
assert(open_regions_mapped(), "must be");
217215
_roots_narrow = roots;
218216
}
219217

@@ -238,7 +236,7 @@ oop HeapShared::get_root(int index, bool clear) {
238236
void HeapShared::clear_root(int index) {
239237
assert(index >= 0, "sanity");
240238
assert(UseSharedSpaces, "must be");
241-
if (open_archive_heap_region_mapped()) {
239+
if (open_regions_mapped()) {
242240
if (log_is_enabled(Debug, cds, heap)) {
243241
oop old = roots()->obj_at(index);
244242
log_debug(cds, heap)("Clearing root %d: was " PTR_FORMAT, index, p2i(old));
@@ -247,7 +245,7 @@ void HeapShared::clear_root(int index) {
247245
}
248246
}
249247

250-
oop HeapShared::archive_heap_object(oop obj) {
248+
oop HeapShared::archive_object(oop obj) {
251249
assert(DumpSharedSpaces, "dump-time only");
252250

253251
oop ao = find_archived_heap_object(obj);
@@ -333,8 +331,8 @@ void HeapShared::run_full_gc_in_vm_thread() {
333331
}
334332
}
335333

336-
void HeapShared::archive_java_heap_objects(GrowableArray<MemRegion>* closed,
337-
GrowableArray<MemRegion>* open) {
334+
void HeapShared::archive_objects(GrowableArray<MemRegion>* closed_regions,
335+
GrowableArray<MemRegion>* open_regions) {
338336

339337
G1HeapVerifier::verify_ready_for_archiving();
340338

@@ -347,19 +345,18 @@ void HeapShared::archive_java_heap_objects(GrowableArray<MemRegion>* closed,
347345
log_info(cds)("Heap range = [" PTR_FORMAT " - " PTR_FORMAT "]",
348346
p2i(CompressedOops::begin()), p2i(CompressedOops::end()));
349347
log_info(cds)("Dumping objects to closed archive heap region ...");
350-
copy_closed_archive_heap_objects(closed);
348+
copy_closed_objects(closed_regions);
351349

352350
log_info(cds)("Dumping objects to open archive heap region ...");
353-
copy_open_archive_heap_objects(open);
351+
copy_open_objects(open_regions);
354352

355353
destroy_archived_object_cache();
356354
}
357355

358356
G1HeapVerifier::verify_archive_regions();
359357
}
360358

361-
void HeapShared::copy_closed_archive_heap_objects(
362-
GrowableArray<MemRegion> * closed_archive) {
359+
void HeapShared::copy_closed_objects(GrowableArray<MemRegion>* closed_regions) {
363360
assert(is_heap_object_archiving_allowed(), "Cannot archive java heap objects");
364361

365362
G1CollectedHeap::heap()->begin_archive_alloc_range();
@@ -372,12 +369,11 @@ void HeapShared::copy_closed_archive_heap_objects(
372369
true /* is_closed_archive */,
373370
false /* is_full_module_graph */);
374371

375-
G1CollectedHeap::heap()->end_archive_alloc_range(closed_archive,
372+
G1CollectedHeap::heap()->end_archive_alloc_range(closed_regions,
376373
os::vm_allocation_granularity());
377374
}
378375

379-
void HeapShared::copy_open_archive_heap_objects(
380-
GrowableArray<MemRegion> * open_archive) {
376+
void HeapShared::copy_open_objects(GrowableArray<MemRegion>* open_regions) {
381377
assert(is_heap_object_archiving_allowed(), "Cannot archive java heap objects");
382378

383379
G1CollectedHeap::heap()->begin_archive_alloc_range(true /* open */);
@@ -400,7 +396,7 @@ void HeapShared::copy_open_archive_heap_objects(
400396

401397
copy_roots();
402398

403-
G1CollectedHeap::heap()->end_archive_alloc_range(open_archive,
399+
G1CollectedHeap::heap()->end_archive_alloc_range(open_regions,
404400
os::vm_allocation_granularity());
405401
}
406402

@@ -908,7 +904,7 @@ class WalkOopAndArchiveClosure: public BasicOopIterateClosure {
908904
}
909905
};
910906

911-
void HeapShared::check_closed_archive_heap_region_object(InstanceKlass* k) {
907+
void HeapShared::check_closed_region_object(InstanceKlass* k) {
912908
// Check fields in the object
913909
for (JavaFieldStream fs(k); !fs.done(); fs.next()) {
914910
if (!fs.access_flags().is_static()) {
@@ -990,7 +986,7 @@ oop HeapShared::archive_reachable_objects_from(int level,
990986
bool record_klasses_only = (archived_obj != NULL);
991987
if (archived_obj == NULL) {
992988
++_num_new_archived_objs;
993-
archived_obj = archive_heap_object(orig_obj);
989+
archived_obj = archive_object(orig_obj);
994990
if (archived_obj == NULL) {
995991
// Skip archiving the sub-graph referenced from the current entry field.
996992
ResourceMark rm;
@@ -1031,7 +1027,7 @@ oop HeapShared::archive_reachable_objects_from(int level,
10311027
subgraph_info, orig_obj, archived_obj);
10321028
orig_obj->oop_iterate(&walker);
10331029
if (is_closed_archive && orig_k->is_instance_klass()) {
1034-
check_closed_archive_heap_region_object(InstanceKlass::cast(orig_k));
1030+
check_closed_region_object(InstanceKlass::cast(orig_k));
10351031
}
10361032
return archived_obj;
10371033
}
@@ -1433,8 +1429,10 @@ class PatchEmbeddedPointers: public BitMapClosure {
14331429
}
14341430
};
14351431

1436-
void HeapShared::patch_archived_heap_embedded_pointers(MemRegion region, address oopmap,
1437-
size_t oopmap_size_in_bits) {
1432+
// Patch all the non-null pointers that are embedded in the archived heap objects
1433+
// in this region
1434+
void HeapShared::patch_embedded_pointers(MemRegion region, address oopmap,
1435+
size_t oopmap_size_in_bits) {
14381436
BitMapView bm((BitMap::bm_word_t*)oopmap, oopmap_size_in_bits);
14391437

14401438
#ifndef PRODUCT

‎src/hotspot/share/cds/heapShared.hpp

+22-30
Original file line numberDiff line numberDiff line change
@@ -143,9 +143,8 @@ class HeapShared: AllStatic {
143143
private:
144144

145145
#if INCLUDE_CDS_JAVA_HEAP
146-
static bool _closed_archive_heap_region_mapped;
147-
static bool _open_archive_heap_region_mapped;
148-
static bool _archive_heap_region_fixed;
146+
static bool _closed_regions_mapped;
147+
static bool _open_regions_mapped;
149148
static DumpedInternedStrings *_dumped_interned_strings;
150149

151150
public:
@@ -200,7 +199,7 @@ class HeapShared: AllStatic {
200199
static DumpTimeKlassSubGraphInfoTable* _dump_time_subgraph_info_table;
201200
static RunTimeKlassSubGraphInfoTable _run_time_subgraph_info_table;
202201

203-
static void check_closed_archive_heap_region_object(InstanceKlass* k);
202+
static void check_closed_region_object(InstanceKlass* k);
204203

205204
static void archive_object_subgraphs(ArchivableStaticFieldInfo fields[],
206205
int num,
@@ -297,21 +296,14 @@ class HeapShared: AllStatic {
297296
}
298297

299298
static oop find_archived_heap_object(oop obj);
300-
static oop archive_heap_object(oop obj);
299+
static oop archive_object(oop obj);
301300

302301
static void archive_klass_objects();
303302

304-
static void set_archive_heap_region_fixed() {
305-
_archive_heap_region_fixed = true;
306-
}
307-
static bool archive_heap_region_fixed() {
308-
return _archive_heap_region_fixed;
309-
}
310-
311-
static void archive_java_heap_objects(GrowableArray<MemRegion> *closed,
312-
GrowableArray<MemRegion> *open);
313-
static void copy_closed_archive_heap_objects(GrowableArray<MemRegion> * closed_archive);
314-
static void copy_open_archive_heap_objects(GrowableArray<MemRegion> * open_archive);
303+
static void archive_objects(GrowableArray<MemRegion>* closed_regions,
304+
GrowableArray<MemRegion>* open_regions);
305+
static void copy_closed_objects(GrowableArray<MemRegion>* closed_regions);
306+
static void copy_open_objects(GrowableArray<MemRegion>* open_regions);
315307

316308
static oop archive_reachable_objects_from(int level,
317309
KlassSubGraphInfo* subgraph_info,
@@ -357,32 +349,32 @@ class HeapShared: AllStatic {
357349
}
358350

359351
static bool is_heap_region(int idx) {
360-
CDS_JAVA_HEAP_ONLY(return (idx >= MetaspaceShared::first_closed_archive_heap_region &&
361-
idx <= MetaspaceShared::last_open_archive_heap_region);)
352+
CDS_JAVA_HEAP_ONLY(return (idx >= MetaspaceShared::first_closed_heap_region &&
353+
idx <= MetaspaceShared::last_open_heap_region);)
362354
NOT_CDS_JAVA_HEAP_RETURN_(false);
363355
}
364356

365-
static void set_closed_archive_heap_region_mapped() {
366-
CDS_JAVA_HEAP_ONLY(_closed_archive_heap_region_mapped = true;)
357+
static void set_closed_regions_mapped() {
358+
CDS_JAVA_HEAP_ONLY(_closed_regions_mapped = true;)
367359
NOT_CDS_JAVA_HEAP_RETURN;
368360
}
369-
static bool closed_archive_heap_region_mapped() {
370-
CDS_JAVA_HEAP_ONLY(return _closed_archive_heap_region_mapped;)
361+
static bool closed_regions_mapped() {
362+
CDS_JAVA_HEAP_ONLY(return _closed_regions_mapped;)
371363
NOT_CDS_JAVA_HEAP_RETURN_(false);
372364
}
373-
static void set_open_archive_heap_region_mapped() {
374-
CDS_JAVA_HEAP_ONLY(_open_archive_heap_region_mapped = true;)
365+
static void set_open_regions_mapped() {
366+
CDS_JAVA_HEAP_ONLY(_open_regions_mapped = true;)
375367
NOT_CDS_JAVA_HEAP_RETURN;
376368
}
377-
static bool open_archive_heap_region_mapped() {
378-
CDS_JAVA_HEAP_ONLY(return _open_archive_heap_region_mapped;)
369+
static bool open_regions_mapped() {
370+
CDS_JAVA_HEAP_ONLY(return _open_regions_mapped;)
379371
NOT_CDS_JAVA_HEAP_RETURN_(false);
380372
}
381373
static bool is_mapped() {
382-
return closed_archive_heap_region_mapped() && open_archive_heap_region_mapped();
374+
return closed_regions_mapped() && open_regions_mapped();
383375
}
384376

385-
static void fixup_mapped_heap_regions() NOT_CDS_JAVA_HEAP_RETURN;
377+
static void fixup_mapped_regions() NOT_CDS_JAVA_HEAP_RETURN;
386378

387379
inline static bool is_archived_object(oop p) NOT_CDS_JAVA_HEAP_RETURN_(false);
388380

@@ -397,8 +389,8 @@ class HeapShared: AllStatic {
397389

398390
static void init_narrow_oop_decoding(address base, int shift) NOT_CDS_JAVA_HEAP_RETURN;
399391

400-
static void patch_archived_heap_embedded_pointers(MemRegion mem, address oopmap,
401-
size_t oopmap_in_bits) NOT_CDS_JAVA_HEAP_RETURN;
392+
static void patch_embedded_pointers(MemRegion region, address oopmap,
393+
size_t oopmap_in_bits) NOT_CDS_JAVA_HEAP_RETURN;
402394

403395
static void init_for_dumping(TRAPS) NOT_CDS_JAVA_HEAP_RETURN;
404396
static void write_subgraph_info_table() NOT_CDS_JAVA_HEAP_RETURN;

0 commit comments

Comments
 (0)
Please sign in to comment.