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

Merge lworld #530

Closed
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
6e1da64
8270908: TestParallelRefProc fails on single core machines
mychris Jul 28, 2021
5fcf720
8271352: Extend jcc erratum mitigation to additional processors
Jul 28, 2021
c8ae7e5
8271174: runtime/ClassFile/UnsupportedClassFileVersion.java can be ru…
iignatev Jul 28, 2021
dcdb1b6
8137101: [TEST_BUG] javax/swing/plaf/basic/BasicHTML/4251579/bug42515…
prsadhuk Jul 28, 2021
6878b05
8271251: JavaThread::java_suspend() fails with "fatal error: Illegal …
pchilano Jul 28, 2021
60c11fe
8261088: Repeatable annotations without @Target cannot have container…
cushon Jul 28, 2021
9711033
8209776: Refactor jdk/security/JavaDotSecurity/ifdefs.sh to plain jav…
fguallini Jul 28, 2021
034788a
8270925: replay dump using CICrashAt does not include inlining data
dean-long Jul 28, 2021
7bf72ce
8271412: ProblemList javax/sound/midi/Sequencer/Looping.java
Jul 28, 2021
357947a
8270061: Change parameter order of ResourceHashtable
iklam Jul 28, 2021
41b4c19
8271353: PerfDataManager::destroy crashes in VM_Exit
Jul 28, 2021
e593e3d
8271402: mark hotspot runtime/os tests which ignore external VM flags
iignatev Jul 28, 2021
20d2dc1
8271403: mark hotspot runtime/memory tests which ignore external VM f…
iignatev Jul 28, 2021
25f00d7
8269851: OperatingSystemMXBean getProcessCpuLoad reports incorrect pr…
Jul 28, 2021
2ec45dc
8225082: Remove IdenTrust certificate that is expiring in September 2021
rhalade Jul 29, 2021
a0504cf
Merge
JesperIRL Jul 29, 2021
6afcf5f
8270886: Crash in PhaseIdealLoop::verify_strip_mined_scheduling
rwestrel Jul 29, 2021
489e5fd
8268019: C2: assert(no_dead_loop) failed: dead loop detected
chhagedorn Jul 29, 2021
d09b028
8271396: Spelling errors
ebourg Jul 29, 2021
286d313
8271489: (doc) Clarify Filter Factory example
Jul 29, 2021
048fb2c
Merge
JesperIRL Jul 29, 2021
a1b5b81
8271507: ProblemList SA tests that are failing with ZGC due to JDK-82…
plummercj Jul 30, 2021
77fbd99
8270341: Test serviceability/dcmd/gc/HeapDumpAllTest.java timed-out
plummercj Jul 30, 2021
6180cf1
8271512: ProblemList serviceability/sa/sadebugd/DebugdConnectTest.jav…
plummercj Jul 30, 2021
4f42eb6
8269523: runtime/Safepoint/TestAbortOnVMOperationTimeout.java failed …
Jul 30, 2021
e351de3
8271272: C2: assert(!had_error) failed: bad dominance
rwestrel Jul 30, 2021
b59418f
8270060: (jdeprscan) tools/jdeprscan/tests/jdk/jdeprscan/TestRelease.…
lahodaj Jul 30, 2021
9856ace
8268963: [IR Framework] Some default regexes matching on PrintOptoAss…
chhagedorn Jul 30, 2021
89f5c96
8232066: Remove outdated code/methods from PKIX implementation
seanjmullan Jul 30, 2021
baf7797
8049301: Suspicious use of string identity checks in JComponent.setUI…
prsadhuk Jul 30, 2021
5b3c418
8270321: Startup regressions in 18-b5 caused by JDK-8266310
sercher Jul 30, 2021
cd7e30e
8271242: Add Arena regression tests
tstuefe Jul 30, 2021
6c68ce2
8270947: AArch64: C1: use zero_words to initialize all objects
Jul 30, 2021
71ca0c0
8270848: Redundant unsafe opmask register allocation in some instruct…
Jul 30, 2021
d6bb846
8248899: security/infra/java/security/cert/CertPathValidator/certific…
rhalade Jul 30, 2021
4bc9b04
8263059: security/infra/java/security/cert/CertPathValidator/certific…
rhalade Jul 30, 2021
7cc1eb3
Merge
JesperIRL Jul 30, 2021
72145f3
8269665: Clean-up toString() methods of some primitive wrappers
stsypanov Aug 2, 2021
6c4c48f
8266972: Use String.concat() in j.l.Class where invokedynamic-based S…
stsypanov Aug 2, 2021
2536e43
8270160: Remove redundant bounds check from AbstractStringBuilder.cha…
stsypanov Aug 2, 2021
6a3f834
8268113: Re-use Long.hashCode() where possible
stsypanov Aug 2, 2021
249d641
8263561: Re-examine uses of LinkedList
stsypanov Aug 2, 2021
e74537f
8271605: Update JMH devkit to 1.32
shipilev Aug 2, 2021
7a4c754
8271611: Use SecurityConstants.ACCESS_PERMISSION in MethodHandles
cl4es Aug 2, 2021
3e3051e
8251329: (zipfs) Files.walkFileTree walks infinitely if zip has dir n…
Aug 2, 2021
db950ca
8271348: Add stronger sanity check of thread state when polling for s…
Aug 2, 2021
0a85236
8193559: ugly DO_JAVA_THREADS macro should be replaced
Aug 2, 2021
f8fb571
8271150: Remove EA from JDK 17 version string starting with Initial R…
Aug 2, 2021
ada58d1
8067223: [TESTBUG] Rename Whitebox API package
iignatev Aug 2, 2021
e621cff
8271627: Use local field access in favor of Class.getClassLoader0
cl4es Aug 2, 2021
0b95394
8271624: Avoid unnecessary ThreadGroup.checkAccess calls when creatin…
cl4es Aug 2, 2021
84f0231
8271419: Refactor test code for modifying CDS archive contents
yminqi Aug 2, 2021
c8add22
Merge
JesperIRL Aug 3, 2021
b217a6c
8271609: Misleading message for AbortVMOnVMOperationTimeoutDelay
albertnetymk Aug 3, 2021
bdb50ca
8270347: ZGC: Adopt release-acquire ordering for forwarding table access
weixlu Aug 3, 2021
f15d6cb
8271506: Add ResourceHashtable support for deleting selected entries
coleenp Aug 3, 2021
6594d3a
8271711: Remove WorkArounds.isSynthetic
jddarcy Aug 3, 2021
0199b03
8271344: Windows product version issue
Aug 3, 2021
a840870
8271616: oddPart in MutableBigInteger::mutableModInverse contains inf…
wangweij Aug 4, 2021
43a6ba9
8271726: JFR: should use equal() to check event fields in tests
D-D-H Aug 4, 2021
3435d29
8271003: hs_err improvement: handle CLASSPATH env setting longer than…
calvinccheung Aug 4, 2021
d3b40cb
8271826: mark hotspot runtime/condy tests which ignore external VM flags
iignatev Aug 4, 2021
659498a
8271829: mark hotspot runtime/Throwable tests which ignore external V…
iignatev Aug 4, 2021
7e518f4
8269934: RunThese24H.java failed with EXCEPTION_ACCESS_VIOLATION in j…
Aug 4, 2021
34ba70a
8269037: jsig/Testjsig.java doesn't have to be restricted to linux only
iignatev Aug 4, 2021
68dd828
8271224: runtime/EnclosingMethodAttr/EnclMethodAttr.java doesn't chec…
iignatev Aug 4, 2021
66c653c
8271721: Split gc/g1/TestMixedGCLiveThreshold into separate tests
tstuefe Aug 4, 2021
b48f31d
8271743: mark hotspot runtime/jni tests which ignore external VM flags
iignatev Aug 4, 2021
33ec3a4
8271744: mark hotspot runtime/getSysPackage tests which ignore extern…
iignatev Aug 4, 2021
3d40cac
8271821: mark hotspot runtime/MinimalVM tests which ignore external V…
iignatev Aug 4, 2021
68f7847
8271825: mark hotspot runtime/LoadClass tests which ignore external V…
iignatev Aug 4, 2021
e49b7d9
8271828: mark hotspot runtime/classFileParserBug tests which ignore e…
iignatev Aug 4, 2021
9e76909
8271824: mark hotspot runtime/CompressedOops tests which ignore exter…
iignatev Aug 4, 2021
04134fc
8264543: Cross modify fence optimization for x86
Aug 4, 2021
e13315a
8271528: [lworld] [TESTBUG] Several C2 IR tests fail on AArch64
nick-arm Aug 4, 2021
977b8c4
8271836: runtime/ErrorHandling/ClassPathEnvVar.java fails with releas…
DamonFool Aug 4, 2021
efcdcc7
8270893: IndexOutOfBoundsException while reading large TIFF file
jayathirthrao Aug 4, 2021
dcfafdb
8271710: [lworld] Unsafe compareAndSet/Exchange C2 intrinsics should …
TobiHartmann Aug 4, 2021
4df1bc4
6350025: API documentation for JOptionPane using deprecated methods.
prsadhuk Aug 4, 2021
eec64f5
8256844: Make NMT late-initializable
tstuefe Aug 4, 2021
0a27f26
8265057: G1: Investigate removal of maintenance of two BOT thresholds
Aug 4, 2021
bdaa4af
Merge jdk
Aug 5, 2021
14723f9
8271924: [lworld] Crashes in ZBarrierSetRuntime::load_barrier_on_oop_…
TobiHartmann Aug 5, 2021
a8994ba
8272041: [lworld] CDS heap dump fails with primitive objects
iklam Aug 6, 2021
d775b1c
Merge lworld
vicente-romero-oracle Aug 13, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 0 additions & 27 deletions make/data/cacerts/identrustdstx3

This file was deleted.

4 changes: 2 additions & 2 deletions make/devkit/createJMHBundle.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash -e
#
# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,7 @@
# Create a bundle in the build directory, containing what's needed to
# build and run JMH microbenchmarks from the OpenJDK build.

JMH_VERSION=1.28
JMH_VERSION=1.32
COMMONS_MATH3_VERSION=3.2
JOPT_SIMPLE_VERSION=4.6

4 changes: 2 additions & 2 deletions make/test/JtregNativeHotspot.gmk
Original file line number Diff line number Diff line change
@@ -864,15 +864,15 @@ ifeq ($(call isTargetOs, linux), true)
BUILD_HOTSPOT_JTREG_EXECUTABLES_LIBS_exeFPRegs := -ldl
BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libAsyncGetCallTraceTest := -ldl
else
BUILD_HOTSPOT_JTREG_EXCLUDE += libtest-rw.c libtest-rwx.c libTestJNI.c \
BUILD_HOTSPOT_JTREG_EXCLUDE += libtest-rw.c libtest-rwx.c \
exeinvoke.c exestack-gap.c exestack-tls.c libAsyncGetCallTraceTest.cpp
endif

BUILD_HOTSPOT_JTREG_EXECUTABLES_LIBS_exesigtest := -ljvm

ifeq ($(call isTargetOs, windows), true)
BUILD_HOTSPOT_JTREG_EXECUTABLES_CFLAGS_exeFPRegs := -MT
BUILD_HOTSPOT_JTREG_EXCLUDE += exesigtest.c libterminatedThread.c
BUILD_HOTSPOT_JTREG_EXCLUDE += exesigtest.c libterminatedThread.c libTestJNI.c
BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libatExit := jvm.lib
else
BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libbootclssearch_agent += -lpthread
6 changes: 3 additions & 3 deletions src/hotspot/cpu/aarch64/aarch64.ad
Original file line number Diff line number Diff line change
@@ -7521,7 +7521,7 @@ instruct loadConP(iRegPNoSp dst, immP con)

ins_cost(INSN_COST * 4);
format %{
"mov $dst, $con\t# ptr\n\t"
"mov $dst, $con\t# ptr"
%}

ins_encode(aarch64_enc_mov_p(dst, con));
@@ -15046,13 +15046,13 @@ instruct clearArray_reg_reg(iRegL_R11 cnt, iRegP_R10 base, iRegL val, Universe d
ins_pipe(pipe_class_memory);
%}

instruct clearArray_imm_reg(immL cnt, iRegP_R10 base, Universe dummy, rFlagsReg cr)
instruct clearArray_imm_reg(immL cnt, iRegP_R10 base, iRegL_R11 temp, Universe dummy, rFlagsReg cr)
%{
predicate((uint64_t)n->in(2)->get_long()
< (uint64_t)(BlockZeroingLowLimit >> LogBytesPerWord)
&& !((ClearArrayNode*)n)->word_copy_only());
match(Set dummy (ClearArray cnt base));
effect(USE_KILL base);
effect(TEMP temp, USE_KILL base, KILL cr);

ins_cost(4 * INSN_COST);
format %{ "ClearArray $cnt, $base" %}
16 changes: 8 additions & 8 deletions src/hotspot/cpu/aarch64/c1_LIRGenerator_aarch64.cpp
Original file line number Diff line number Diff line change
@@ -1146,8 +1146,8 @@ void LIRGenerator::do_NewInstance(NewInstance* x) {
LIR_Opr reg = result_register_for(x->type());
new_instance(reg, x->klass(), x->is_unresolved(),
/* allow_inline */ false,
FrameMap::r2_oop_opr,
FrameMap::r5_oop_opr,
FrameMap::r10_oop_opr,
FrameMap::r11_oop_opr,
FrameMap::r4_oop_opr,
LIR_OprFact::illegalOpr,
FrameMap::r3_metadata_opr, info);
@@ -1162,8 +1162,8 @@ void LIRGenerator::do_NewInlineTypeInstance(NewInlineTypeInstance* x) {
LIR_Opr reg = result_register_for(x->type());
new_instance(reg, x->klass(), false,
/* allow_inline */ true,
FrameMap::r2_oop_opr,
FrameMap::r5_oop_opr,
FrameMap::r10_oop_opr,
FrameMap::r11_oop_opr,
FrameMap::r4_oop_opr,
LIR_OprFact::illegalOpr,
FrameMap::r3_metadata_opr, info);
@@ -1179,8 +1179,8 @@ void LIRGenerator::do_NewTypeArray(NewTypeArray* x) {
length.load_item_force(FrameMap::r19_opr);

LIR_Opr reg = result_register_for(x->type());
LIR_Opr tmp1 = FrameMap::r2_oop_opr;
LIR_Opr tmp2 = FrameMap::r4_oop_opr;
LIR_Opr tmp1 = FrameMap::r10_oop_opr;
LIR_Opr tmp2 = FrameMap::r11_oop_opr;
LIR_Opr tmp3 = FrameMap::r5_oop_opr;
LIR_Opr tmp4 = reg;
LIR_Opr klass_reg = FrameMap::r3_metadata_opr;
@@ -1208,8 +1208,8 @@ void LIRGenerator::do_NewObjectArray(NewObjectArray* x) {
CodeEmitInfo* info = state_for(x, x->state());

LIR_Opr reg = result_register_for(x->type());
LIR_Opr tmp1 = FrameMap::r2_oop_opr;
LIR_Opr tmp2 = FrameMap::r4_oop_opr;
LIR_Opr tmp1 = FrameMap::r10_oop_opr;
LIR_Opr tmp2 = FrameMap::r11_oop_opr;
LIR_Opr tmp3 = FrameMap::r5_oop_opr;
LIR_Opr tmp4 = reg;
LIR_Opr klass_reg = FrameMap::r3_metadata_opr;
64 changes: 18 additions & 46 deletions src/hotspot/cpu/aarch64/c1_MacroAssembler_aarch64.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*
* Copyright (c) 1999, 2021, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2014, Red Hat Inc. All rights reserved.
* Copyright (c) 2014, 2021, Red Hat Inc. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -194,20 +194,24 @@ void C1_MacroAssembler::initialize_header(Register obj, Register klass, Register
}

// preserves obj, destroys len_in_bytes
void C1_MacroAssembler::initialize_body(Register obj, Register len_in_bytes, int hdr_size_in_bytes, Register t1) {
//
// Scratch registers: t1 = r10, t2 = r11
//
void C1_MacroAssembler::initialize_body(Register obj, Register len_in_bytes, int hdr_size_in_bytes, Register t1, Register t2) {
assert(hdr_size_in_bytes >= 0, "header size must be positive or 0");
assert(t1 == r10 && t2 == r11, "must be");

Label done;

// len_in_bytes is positive and ptr sized
subs(len_in_bytes, len_in_bytes, hdr_size_in_bytes);
br(Assembler::EQ, done);

// Preserve obj
if (hdr_size_in_bytes)
add(obj, obj, hdr_size_in_bytes);
zero_memory(obj, len_in_bytes, t1);
if (hdr_size_in_bytes)
sub(obj, obj, hdr_size_in_bytes);
// zero_words() takes ptr in r10 and count in words in r11
mov(rscratch1, len_in_bytes);
lea(t1, Address(obj, hdr_size_in_bytes));
lsr(t2, rscratch1, LogBytesPerWord);
zero_words(t1, t2);

bind(done);
}
@@ -222,6 +226,7 @@ void C1_MacroAssembler::allocate_object(Register obj, Register t1, Register t2,
initialize_object(obj, klass, noreg, object_size * HeapWordSize, t1, t2, UseTLAB);
}

// Scratch registers: t1 = r10, t2 = r11
void C1_MacroAssembler::initialize_object(Register obj, Register klass, Register var_size_in_bytes, int con_size_in_bytes, Register t1, Register t2, bool is_tlab_allocated) {
assert((con_size_in_bytes & MinObjAlignmentInBytesMask) == 0,
"con_size_in_bytes is not multiple of alignment");
@@ -232,45 +237,13 @@ void C1_MacroAssembler::initialize_object(Register obj, Register klass, Register
if (!(UseTLAB && ZeroTLAB && is_tlab_allocated)) {
// clear rest of allocated space
const Register index = t2;
const int threshold = 16 * BytesPerWord; // approximate break even point for code size (see comments below)
if (var_size_in_bytes != noreg) {
mov(index, var_size_in_bytes);
initialize_body(obj, index, hdr_size_in_bytes, t1);
} else if (con_size_in_bytes <= threshold) {
// use explicit null stores
int i = hdr_size_in_bytes;
if (i < con_size_in_bytes && (con_size_in_bytes % (2 * BytesPerWord))) {
str(zr, Address(obj, i));
i += BytesPerWord;
}
for (; i < con_size_in_bytes; i += 2 * BytesPerWord)
stp(zr, zr, Address(obj, i));
initialize_body(obj, index, hdr_size_in_bytes, t1, t2);
} else if (con_size_in_bytes > hdr_size_in_bytes) {
block_comment("zero memory");
// use loop to null out the fields

int words = (con_size_in_bytes - hdr_size_in_bytes) / BytesPerWord;
mov(index, words / 8);

const int unroll = 8; // Number of str(zr) instructions we'll unroll
int remainder = words % unroll;
lea(rscratch1, Address(obj, hdr_size_in_bytes + remainder * BytesPerWord));

Label entry_point, loop;
b(entry_point);

bind(loop);
sub(index, index, 1);
for (int i = -unroll; i < 0; i++) {
if (-i == remainder)
bind(entry_point);
str(zr, Address(rscratch1, i * wordSize));
}
if (remainder == 0)
bind(entry_point);
add(rscratch1, rscratch1, unroll * wordSize);
cbnz(index, loop);

con_size_in_bytes -= hdr_size_in_bytes;
lea(t1, Address(obj, hdr_size_in_bytes));
zero_words(t1, con_size_in_bytes / BytesPerWord);
}
}

@@ -306,8 +279,7 @@ void C1_MacroAssembler::allocate_array(Register obj, Register len, Register t1,
initialize_header(obj, klass, len, t1, t2);

// clear rest of allocated space
const Register len_zero = len;
initialize_body(obj, arr_size, header_size * BytesPerWord, len_zero);
initialize_body(obj, arr_size, header_size * BytesPerWord, t1, t2);

membar(StoreStore);

4 changes: 2 additions & 2 deletions src/hotspot/cpu/aarch64/c1_MacroAssembler_aarch64.hpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*
* Copyright (c) 1999, 2021, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2014, 2015, Red Hat Inc. All rights reserved.
* Copyright (c) 2014, 2021, Red Hat Inc. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -48,7 +48,7 @@ using MacroAssembler::null_check;
);

void initialize_header(Register obj, Register klass, Register len, Register t1, Register t2);
void initialize_body(Register obj, Register len_in_bytes, int hdr_size_in_bytes, Register t1);
void initialize_body(Register obj, Register len_in_bytes, int hdr_size_in_bytes, Register t1, Register t2);

void float_cmp(bool is_float, int unordered_result,
FloatRegister f0, FloatRegister f1,
16 changes: 8 additions & 8 deletions src/hotspot/cpu/aarch64/c1_Runtime1_aarch64.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*
* Copyright (c) 1999, 2021, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2014, Red Hat Inc. All rights reserved.
* Copyright (c) 2014, 2021, Red Hat Inc. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -659,9 +659,9 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
if ((id == fast_new_instance_id || id == fast_new_instance_init_check_id) &&
!UseTLAB && Universe::heap()->supports_inline_contig_alloc()) {
Label slow_path;
Register obj_size = r2;
Register t1 = r19;
Register t2 = r4;
Register obj_size = r19;
Register t1 = r10;
Register t2 = r11;
assert_different_registers(klass, obj, obj_size, t1, t2);

__ stp(r19, zr, Address(__ pre(sp, -2 * wordSize)));
@@ -796,9 +796,9 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
// allocations.
// Otherwise, just go to the slow path.
if (!UseTLAB && Universe::heap()->supports_inline_contig_alloc()) {
Register arr_size = r4;
Register t1 = r2;
Register t2 = r5;
Register arr_size = r5;
Register t1 = r10;
Register t2 = r11;
Label slow_path;
assert_different_registers(length, klass, obj, arr_size, t1, t2);

@@ -828,7 +828,7 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
__ andr(t1, t1, Klass::_lh_header_size_mask);
__ sub(arr_size, arr_size, t1); // body length
__ add(t1, t1, obj); // body start
__ initialize_body(t1, arr_size, 0, t2);
__ initialize_body(t1, arr_size, 0, t1, t2);
__ membar(Assembler::StoreStore);
__ verify_oop(obj);

Loading