Skip to content

Commit 1f8869b

Browse files
Merge branch 'master' into JDK-8333664+JDK-8353196-full
2 parents 717979e + 52f56e6 commit 1f8869b

File tree

60 files changed

+3806
-854
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+3806
-854
lines changed

src/hotspot/share/cds/aotClassInitializer.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,7 @@ bool AOTClassInitializer::can_archive_initialized_mirror(InstanceKlass* ik) {
303303
{"java/lang/invoke/MethodHandles"},
304304
{"java/lang/invoke/SimpleMethodHandle"},
305305
{"java/lang/invoke/StringConcatFactory"},
306+
{"java/lang/invoke/VarHandleGuards"},
306307
{"java/util/Collections"},
307308
{"java/util/stream/Collectors"},
308309
{"jdk/internal/constant/ConstantUtils"},

src/hotspot/share/gc/shenandoah/shenandoahConcurrentGC.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -684,10 +684,6 @@ void ShenandoahConcurrentGC::op_init_mark() {
684684
assert(!heap->has_forwarded_objects(), "No forwarded objects on this path");
685685

686686
if (heap->mode()->is_generational()) {
687-
if (_generation->is_young()) {
688-
ShenandoahGCPhase phase(ShenandoahPhaseTimings::init_swap_rset);
689-
_generation->swap_card_tables();
690-
}
691687

692688
if (_generation->is_global()) {
693689
heap->old_generation()->cancel_gc();
@@ -698,6 +694,14 @@ void ShenandoahConcurrentGC::op_init_mark() {
698694
ShenandoahGCPhase phase(ShenandoahPhaseTimings::init_transfer_satb);
699695
heap->old_generation()->transfer_pointers_from_satb();
700696
}
697+
{
698+
// After we swap card table below, the write-table is all clean, and the read table holds
699+
// cards dirty prior to the start of GC. Young and bootstrap collection will update
700+
// the write card table as a side effect of remembered set scanning. Global collection will
701+
// update the card table as a side effect of global marking of old objects.
702+
ShenandoahGCPhase phase(ShenandoahPhaseTimings::init_swap_rset);
703+
_generation->swap_card_tables();
704+
}
701705
}
702706

703707
if (ShenandoahVerify) {

src/hotspot/share/gc/shenandoah/shenandoahFullGC.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1157,6 +1157,9 @@ void ShenandoahFullGC::phase5_epilog() {
11571157

11581158
heap->free_set()->finish_rebuild(young_cset_regions, old_cset_regions, num_old);
11591159

1160+
// Set mark incomplete because the marking bitmaps have been reset except pinned regions.
1161+
heap->global_generation()->set_mark_incomplete();
1162+
11601163
heap->clear_cancelled_gc(true /* clear oom handler */);
11611164
}
11621165

src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1055,9 +1055,15 @@ void ShenandoahVerifier::verify_generic(VerifyOption vo) {
10551055
}
10561056

10571057
void ShenandoahVerifier::verify_before_concmark() {
1058-
verify_at_safepoint(
1058+
VerifyRememberedSet verify_remembered_set = _verify_remembered_before_marking;
1059+
if (_heap->mode()->is_generational() &&
1060+
!_heap->old_generation()->is_mark_complete()) {
1061+
// Before marking in generational mode, remembered set can't be verified w/o complete old marking.
1062+
verify_remembered_set = _verify_remembered_disable;
1063+
}
1064+
verify_at_safepoint(
10591065
"Before Mark",
1060-
_verify_remembered_before_marking,
1066+
verify_remembered_set,
10611067
// verify read-only remembered set from bottom() to top()
10621068
_verify_forwarded_none, // UR should have fixed up
10631069
_verify_marked_disable, // do not verify marked: lots ot time wasted checking dead allocations
@@ -1114,9 +1120,14 @@ void ShenandoahVerifier::verify_before_evacuation() {
11141120
}
11151121

11161122
void ShenandoahVerifier::verify_before_update_refs() {
1123+
VerifyRememberedSet verify_remembered_set = _verify_remembered_before_updating_references;
1124+
if (_heap->mode()->is_generational() &&
1125+
!_heap->old_generation()->is_mark_complete()) {
1126+
verify_remembered_set = _verify_remembered_disable;
1127+
}
11171128
verify_at_safepoint(
11181129
"Before Updating References",
1119-
_verify_remembered_before_updating_references, // verify read-write remembered set
1130+
verify_remembered_set, // verify read-write remembered set
11201131
_verify_forwarded_allow, // forwarded references allowed
11211132
_verify_marked_complete, // bitmaps might be stale, but alloc-after-mark should be well
11221133
_verify_cset_forwarded, // all cset refs are fully forwarded
@@ -1276,17 +1287,14 @@ class ShenandoahVerifyRemSetClosure : public BasicOopIterateClosure {
12761287
void do_oop(oop* p) override { work(p); }
12771288
};
12781289

1279-
ShenandoahMarkingContext* ShenandoahVerifier::get_marking_context_for_old() {
1280-
shenandoah_assert_generations_reconciled();
1281-
if (_heap->old_generation()->is_mark_complete() || _heap->gc_generation()->is_global()) {
1282-
return _heap->complete_marking_context();
1283-
}
1284-
return nullptr;
1285-
}
1286-
12871290
template<typename Scanner>
1288-
void ShenandoahVerifier::help_verify_region_rem_set(Scanner* scanner, ShenandoahHeapRegion* r, ShenandoahMarkingContext* ctx,
1291+
void ShenandoahVerifier::help_verify_region_rem_set(Scanner* scanner, ShenandoahHeapRegion* r,
12891292
HeapWord* registration_watermark, const char* message) {
1293+
shenandoah_assert_generations_reconciled();
1294+
ShenandoahOldGeneration* old_gen = _heap->old_generation();
1295+
assert(old_gen->is_mark_complete() || old_gen->is_parsable(), "Sanity");
1296+
1297+
ShenandoahMarkingContext* ctx = old_gen->is_mark_complete() ?old_gen->complete_marking_context() : nullptr;
12901298
ShenandoahVerifyRemSetClosure<Scanner> check_interesting_pointers(scanner, message);
12911299
HeapWord* from = r->bottom();
12921300
HeapWord* obj_addr = from;
@@ -1357,7 +1365,6 @@ void ShenandoahVerifier::verify_rem_set_before_mark() {
13571365
shenandoah_assert_safepoint();
13581366
shenandoah_assert_generational();
13591367

1360-
ShenandoahMarkingContext* ctx = get_marking_context_for_old();
13611368
ShenandoahOldGeneration* old_generation = _heap->old_generation();
13621369

13631370
log_debug(gc)("Verifying remembered set at %s mark", old_generation->is_doing_mixed_evacuations() ? "mixed" : "young");
@@ -1366,7 +1373,7 @@ void ShenandoahVerifier::verify_rem_set_before_mark() {
13661373
for (size_t i = 0, n = _heap->num_regions(); i < n; ++i) {
13671374
ShenandoahHeapRegion* r = _heap->get_region(i);
13681375
if (r->is_old() && r->is_active()) {
1369-
help_verify_region_rem_set(scanner, r, ctx, r->end(), "Verify init-mark remembered set violation");
1376+
help_verify_region_rem_set(scanner, r, r->end(), "Verify init-mark remembered set violation");
13701377
}
13711378
}
13721379
}
@@ -1379,7 +1386,7 @@ void ShenandoahVerifier::verify_rem_set_after_full_gc() {
13791386
for (size_t i = 0, n = _heap->num_regions(); i < n; ++i) {
13801387
ShenandoahHeapRegion* r = _heap->get_region(i);
13811388
if (r->is_old() && !r->is_cset()) {
1382-
help_verify_region_rem_set(&scanner, r, nullptr, r->top(), "Remembered set violation at end of Full GC");
1389+
help_verify_region_rem_set(&scanner, r, r->top(), "Remembered set violation at end of Full GC");
13831390
}
13841391
}
13851392
}
@@ -1392,12 +1399,11 @@ void ShenandoahVerifier::verify_rem_set_before_update_ref() {
13921399
shenandoah_assert_safepoint();
13931400
shenandoah_assert_generational();
13941401

1395-
ShenandoahMarkingContext* ctx = get_marking_context_for_old();
13961402
ShenandoahWriteTableScanner scanner(_heap->old_generation()->card_scan());
13971403
for (size_t i = 0, n = _heap->num_regions(); i < n; ++i) {
13981404
ShenandoahHeapRegion* r = _heap->get_region(i);
13991405
if (r->is_old() && !r->is_cset()) {
1400-
help_verify_region_rem_set(&scanner, r, ctx, r->get_update_watermark(), "Remembered set violation at init-update-references");
1406+
help_verify_region_rem_set(&scanner, r, r->get_update_watermark(), "Remembered set violation at init-update-references");
14011407
}
14021408
}
14031409
}

src/hotspot/share/gc/shenandoah/shenandoahVerifier.hpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -229,14 +229,12 @@ class ShenandoahVerifier : public CHeapObj<mtGC> {
229229
void verify_before_rebuilding_free_set();
230230
private:
231231
template<typename Scanner>
232-
void help_verify_region_rem_set(Scanner* scanner, ShenandoahHeapRegion* r, ShenandoahMarkingContext* ctx,
232+
void help_verify_region_rem_set(Scanner* scanner, ShenandoahHeapRegion* r,
233233
HeapWord* update_watermark, const char* message);
234234

235235
void verify_rem_set_before_mark();
236236
void verify_rem_set_before_update_ref();
237237
void verify_rem_set_after_full_gc();
238-
239-
ShenandoahMarkingContext* get_marking_context_for_old();
240238
};
241239

242240
#endif // SHARE_GC_SHENANDOAH_SHENANDOAHVERIFIER_HPP

src/java.base/share/classes/java/security/SecureClassLoader.java

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 1997, 2025, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -25,8 +25,6 @@
2525

2626
package java.security;
2727

28-
import sun.security.util.Debug;
29-
3028
import java.util.Map;
3129
import java.util.Objects;
3230
import java.util.concurrent.ConcurrentHashMap;
@@ -181,13 +179,6 @@ protected PermissionCollection getPermissions(CodeSource codesource)
181179
return new Permissions(); // ProtectionDomain defers the binding
182180
}
183181

184-
/*
185-
* holder class for the static field "debug" to delay its initialization
186-
*/
187-
private static class DebugHolder {
188-
private static final Debug debug = Debug.getInstance("scl");
189-
}
190-
191182
/*
192183
* Returned cached ProtectionDomain for the specified CodeSource.
193184
*/
@@ -209,10 +200,6 @@ public ProtectionDomain apply(CodeSourceKey key) {
209200
= SecureClassLoader.this.getPermissions(key.cs);
210201
ProtectionDomain pd = new ProtectionDomain(
211202
key.cs, perms, SecureClassLoader.this, null);
212-
if (DebugHolder.debug != null) {
213-
DebugHolder.debug.println(" getPermissions " + pd);
214-
DebugHolder.debug.println("");
215-
}
216203
return pd;
217204
}
218205
});

0 commit comments

Comments
 (0)