From rkennke at openjdk.org Mon Oct 2 13:22:21 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Mon, 2 Oct 2023 13:22:21 GMT Subject: [master] RFR: 8317345: [Lilliput] CDS fixes Message-ID: Sync CDS code with https://github.com/openjdk/jdk/pull/13961 to fix some JTREG failures. It also includes a bunch of test fixes for ZGC/CDS, similar to https://github.com/openjdk/lilliput-jdk21u/pull/7. The changes make tier1 cds tests clean. Testing: - [x] tier1 (+UCOH) - [x] tier1 (-UCOH) ------------- Commit messages: - 8317345: [Lilliput] CDS fixes Changes: https://git.openjdk.org/lilliput/pull/109/files Webrev: https://webrevs.openjdk.org/?repo=lilliput&pr=109&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8317345 Stats: 23 lines in 3 files changed: 22 ins; 0 del; 1 mod Patch: https://git.openjdk.org/lilliput/pull/109.diff Fetch: git fetch https://git.openjdk.org/lilliput.git pull/109/head:pull/109 PR: https://git.openjdk.org/lilliput/pull/109 From shade at openjdk.org Mon Oct 2 14:35:58 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Mon, 2 Oct 2023 14:35:58 GMT Subject: [master] RFR: 8317345: [Lilliput] CDS fixes In-Reply-To: References: Message-ID: On Mon, 2 Oct 2023 13:14:26 GMT, Roman Kennke wrote: > Sync CDS code with https://github.com/openjdk/jdk/pull/13961 to fix some JTREG failures. It also includes a bunch of test fixes for ZGC/CDS, similar to https://github.com/openjdk/lilliput-jdk21u/pull/7. The changes make tier1 cds tests clean. > > Testing: > - [x] tier1 (+UCOH) > - [x] tier1 (-UCOH) Marked as reviewed by shade (Committer). ------------- PR Review: https://git.openjdk.org/lilliput/pull/109#pullrequestreview-1652883466 From shade at openjdk.org Mon Oct 2 14:39:50 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Mon, 2 Oct 2023 14:39:50 GMT Subject: [master] RFR: 8317345: [Lilliput] CDS fixes In-Reply-To: References: Message-ID: On Mon, 2 Oct 2023 13:14:26 GMT, Roman Kennke wrote: > Sync CDS code with https://github.com/openjdk/jdk/pull/13961 to fix some JTREG failures. It also includes a bunch of test fixes for ZGC/CDS, similar to https://github.com/openjdk/lilliput-jdk21u/pull/7. The changes make tier1 cds tests clean. > > Testing: > - [x] tier1 (+UCOH) > - [x] tier1 (-UCOH) Windows builds are (weirdly) failing, though. ------------- PR Comment: https://git.openjdk.org/lilliput/pull/109#issuecomment-1743141843 From rkennke at openjdk.org Mon Oct 2 15:24:31 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Mon, 2 Oct 2023 15:24:31 GMT Subject: [master] RFR: 8317345: [Lilliput] CDS fixes [v2] In-Reply-To: References: Message-ID: <0hzhVs5W-5lBH2PghCvhMW2Ij7L2AvLMUGHVJobiGYk=.4183bdce-efde-4290-be31-5a0c31ae7fcd@github.com> > Sync CDS code with https://github.com/openjdk/jdk/pull/13961 to fix some JTREG failures. It also includes a bunch of test fixes for ZGC/CDS, similar to https://github.com/openjdk/lilliput-jdk21u/pull/7. The changes make tier1 cds tests clean. > > Testing: > - [x] tier1 (+UCOH) > - [x] tier1 (-UCOH) Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: Add proper guards ------------- Changes: - all: https://git.openjdk.org/lilliput/pull/109/files - new: https://git.openjdk.org/lilliput/pull/109/files/489be58a..a34dbd72 Webrevs: - full: https://webrevs.openjdk.org/?repo=lilliput&pr=109&range=01 - incr: https://webrevs.openjdk.org/?repo=lilliput&pr=109&range=00-01 Stats: 2 lines in 1 file changed: 2 ins; 0 del; 0 mod Patch: https://git.openjdk.org/lilliput/pull/109.diff Fetch: git fetch https://git.openjdk.org/lilliput.git pull/109/head:pull/109 PR: https://git.openjdk.org/lilliput/pull/109 From shade at openjdk.org Mon Oct 2 17:29:43 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Mon, 2 Oct 2023 17:29:43 GMT Subject: [master] RFR: 8317345: [Lilliput] CDS fixes [v2] In-Reply-To: <0hzhVs5W-5lBH2PghCvhMW2Ij7L2AvLMUGHVJobiGYk=.4183bdce-efde-4290-be31-5a0c31ae7fcd@github.com> References: <0hzhVs5W-5lBH2PghCvhMW2Ij7L2AvLMUGHVJobiGYk=.4183bdce-efde-4290-be31-5a0c31ae7fcd@github.com> Message-ID: On Mon, 2 Oct 2023 15:24:31 GMT, Roman Kennke wrote: >> Sync CDS code with https://github.com/openjdk/jdk/pull/13961 to fix some JTREG failures. It also includes a bunch of test fixes for ZGC/CDS, similar to https://github.com/openjdk/lilliput-jdk21u/pull/7. The changes make tier1 cds tests clean. >> >> Testing: >> - [x] tier1 (+UCOH) >> - [x] tier1 (-UCOH) > > Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: > > Add proper guards src/hotspot/share/cds/archiveBuilder.cpp line 728: > 726: k->remove_java_mirror(); > 727: #ifdef _LP64 > 728: #ifdef INCLUDE_CDS_JAVA_HEAP Should be `#if`, not `#ifdef`? ------------- PR Review Comment: https://git.openjdk.org/lilliput/pull/109#discussion_r1342948832 From rkennke at openjdk.org Mon Oct 2 17:35:11 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Mon, 2 Oct 2023 17:35:11 GMT Subject: [master] RFR: 8317345: [Lilliput] CDS fixes [v3] In-Reply-To: References: Message-ID: > Sync CDS code with https://github.com/openjdk/jdk/pull/13961 to fix some JTREG failures. It also includes a bunch of test fixes for ZGC/CDS, similar to https://github.com/openjdk/lilliput-jdk21u/pull/7. The changes make tier1 cds tests clean. > > Testing: > - [x] tier1 (+UCOH) > - [x] tier1 (-UCOH) Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: Fix guard ------------- Changes: - all: https://git.openjdk.org/lilliput/pull/109/files - new: https://git.openjdk.org/lilliput/pull/109/files/a34dbd72..0b2eae96 Webrevs: - full: https://webrevs.openjdk.org/?repo=lilliput&pr=109&range=02 - incr: https://webrevs.openjdk.org/?repo=lilliput&pr=109&range=01-02 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod Patch: https://git.openjdk.org/lilliput/pull/109.diff Fetch: git fetch https://git.openjdk.org/lilliput.git pull/109/head:pull/109 PR: https://git.openjdk.org/lilliput/pull/109 From shade at openjdk.org Tue Oct 3 05:47:56 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 3 Oct 2023 05:47:56 GMT Subject: [master] RFR: 8317345: [Lilliput] CDS fixes [v3] In-Reply-To: References: Message-ID: On Mon, 2 Oct 2023 17:35:11 GMT, Roman Kennke wrote: >> Sync CDS code with https://github.com/openjdk/jdk/pull/13961 to fix some JTREG failures. It also includes a bunch of test fixes for ZGC/CDS, similar to https://github.com/openjdk/lilliput-jdk21u/pull/7. The changes make tier1 cds tests clean. >> >> Testing: >> - [x] tier1 (+UCOH) >> - [x] tier1 (-UCOH) > > Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: > > Fix guard Marked as reviewed by shade (Committer). ------------- PR Review: https://git.openjdk.org/lilliput/pull/109#pullrequestreview-1654388662 From rkennke at openjdk.org Tue Oct 10 10:01:23 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Tue, 10 Oct 2023 10:01:23 GMT Subject: [master] RFR: 8317352: [Lilliput] Sync with upstreaming PRs Message-ID: This PR syncs the Lilliput mainline repo with the changes that we are proposing in the upstreaming PRs. We have accumulated a number of diversions. Ideally, the Lilliput repo should mirror what is proposed for upstreaming, except where it integrates the upstreaming PRs in various places. Notable changes: - Removed leftovers from Klass encoding removal - Removed heap object stats. This is currently better done by JOL. - Sliding GC template optimizations and fallback for G1 - Re-enabled many tests There is a remaining problem with CDS (the changes in archiveBuilder.cpp) which affect only Windows, which I am sorting out separately. Testing: - [x] All changed tests +UCOH - [x] All changed tests -UCOH - [x] tier1 x86_64 +UCOH - [x] tier1 x86_64 -UCOH - [x] tier1 aarch64 +UCOH - [x] tier1 aarch64 -UCOH - [x] tier2 x86_64 +UCOH - [x] tier2 x86_64 -UCOH - [x] tier2 aarch64 +UCOH - [x] tier2 aarch64 -UCOH ------------- Commit messages: - Fix whitespace - CDS fixes - Tests and various stuff - Gtests - JVMCI parts - SA parts - Shared code changes - x86 parts - 8317352: [Lilliput] Sync with upstreaming PRs Changes: https://git.openjdk.org/lilliput/pull/110/files Webrev: https://webrevs.openjdk.org/?repo=lilliput&pr=110&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8317352 Stats: 3091 lines in 156 files changed: 1372 ins; 1125 del; 594 mod Patch: https://git.openjdk.org/lilliput/pull/110.diff Fetch: git fetch https://git.openjdk.org/lilliput.git pull/110/head:pull/110 PR: https://git.openjdk.org/lilliput/pull/110 From rkennke at openjdk.org Tue Oct 10 20:29:34 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Tue, 10 Oct 2023 20:29:34 GMT Subject: [master] RFR: 8317352: [Lilliput] Sync with upstreaming PRs In-Reply-To: References: Message-ID: On Tue, 10 Oct 2023 17:53:08 GMT, Aleksey Shipilev wrote: >> This PR syncs the Lilliput mainline repo with the changes that we are proposing in the upstreaming PRs. We have accumulated a number of diversions. Ideally, the Lilliput repo should mirror what is proposed for upstreaming, except where it integrates the upstreaming PRs in various places. >> >> Notable changes: >> - Removed leftovers from Klass encoding removal >> - Removed heap object stats. This is currently better done by JOL. >> - Sliding GC template optimizations and fallback for G1 >> - Re-enabled many tests >> >> There is a remaining problem with CDS (the changes in archiveBuilder.cpp) which affect only Windows, which I am sorting out separately. >> >> Testing: >> - [x] All changed tests +UCOH >> - [x] All changed tests -UCOH >> - [x] tier1 x86_64 +UCOH >> - [x] tier1 x86_64 -UCOH >> - [x] tier1 aarch64 +UCOH >> - [x] tier1 aarch64 -UCOH >> - [x] tier2 x86_64 +UCOH >> - [x] tier2 x86_64 -UCOH >> - [x] tier2 aarch64 +UCOH >> - [x] tier2 aarch64 -UCOH > > src/hotspot/cpu/x86/x86_64.ad line 5336: > >> 5334: format %{ "movl $dst, $mem\t# compressed klass ptr" %} >> 5335: ins_encode %{ >> 5336: assert($mem$$disp == TypeOopPtr::klass_offset_in_bytes(), "expect correct offset 4, but got: %d", $mem$$disp); > > Haven't we decided to avoid changing `oopDesc::klass_offset_in_bytes` to `TypeOopPtr::klass_offset_in_bytes`? I remember this discussion, but cannot find the reference it it right now. Right. That was in Lilliput 21 (and/or 17). Shall we also get rid of the extra assert that the change provides us here? And also in the upstreaming PR https://github.com/openjdk/jdk/pull/13961? ------------- PR Review Comment: https://git.openjdk.org/lilliput/pull/110#discussion_r1353233214 From shade at openjdk.org Tue Oct 10 20:29:26 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 10 Oct 2023 20:29:26 GMT Subject: [master] RFR: 8317352: [Lilliput] Sync with upstreaming PRs In-Reply-To: References: Message-ID: On Mon, 9 Oct 2023 12:36:22 GMT, Roman Kennke wrote: > This PR syncs the Lilliput mainline repo with the changes that we are proposing in the upstreaming PRs. We have accumulated a number of diversions. Ideally, the Lilliput repo should mirror what is proposed for upstreaming, except where it integrates the upstreaming PRs in various places. > > Notable changes: > - Removed leftovers from Klass encoding removal > - Removed heap object stats. This is currently better done by JOL. > - Sliding GC template optimizations and fallback for G1 > - Re-enabled many tests > > There is a remaining problem with CDS (the changes in archiveBuilder.cpp) which affect only Windows, which I am sorting out separately. > > Testing: > - [x] All changed tests +UCOH > - [x] All changed tests -UCOH > - [x] tier1 x86_64 +UCOH > - [x] tier1 x86_64 -UCOH > - [x] tier1 aarch64 +UCOH > - [x] tier1 aarch64 -UCOH > - [x] tier2 x86_64 +UCOH > - [x] tier2 x86_64 -UCOH > - [x] tier2 aarch64 +UCOH > - [x] tier2 aarch64 -UCOH This looks okay, but I have a question that I think I asked before: src/hotspot/cpu/x86/x86_64.ad line 5336: > 5334: format %{ "movl $dst, $mem\t# compressed klass ptr" %} > 5335: ins_encode %{ > 5336: assert($mem$$disp == TypeOopPtr::klass_offset_in_bytes(), "expect correct offset 4, but got: %d", $mem$$disp); Haven't we decided to avoid changing `oopDesc::klass_offset_in_bytes` to `TypeOopPtr::klass_offset_in_bytes`? I remember this discussion, but cannot find the reference it it right now. ------------- Marked as reviewed by shade (Committer). PR Review: https://git.openjdk.org/lilliput/pull/110#pullrequestreview-1668500559 PR Review Comment: https://git.openjdk.org/lilliput/pull/110#discussion_r1353064909 From rkennke at openjdk.org Tue Oct 10 20:31:55 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Tue, 10 Oct 2023 20:31:55 GMT Subject: [pr/110] RFR: 8317812: [Lilliput] Make C2 LoadNKlassCompactHeader more robust Message-ID: <2wUyBmjDufL5zv3lK43C92iT4IuJMaNhndzCPYm8WBQ=.4892575e-9e50-4f25-81fa-446ec2e3cae2@github.com> Lilliput's C2 code for generating LoadNKlass currently assumes that the disp of the incoming address is klass_offset_in_bytes. It then extracts the base register and loads from the mark_offset_in_bytes instead. Sometimes (apparently very rarely) it happens that C2 emits code that pre-adds obj+klass_offset into a register, and uses that as base, but with offset 0. In this case we would trip the assert or crash in release builds. - [x] specjvm derby (which triggered the bug) - [x] tier1 x86_64 +UCOH - [x] tier1 aarch64 +UCOH ------------- Depends on: https://git.openjdk.org/lilliput/pull/110 Commit messages: - x86 parts - Fix offset - 8317812: [Lilliput] Make C2 LoadNKlassCompactHeader more robust Changes: https://git.openjdk.org/lilliput/pull/111/files Webrev: https://webrevs.openjdk.org/?repo=lilliput&pr=111&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8317812 Stats: 37 lines in 6 files changed: 25 ins; 2 del; 10 mod Patch: https://git.openjdk.org/lilliput/pull/111.diff Fetch: git fetch https://git.openjdk.org/lilliput.git pull/111/head:pull/111 PR: https://git.openjdk.org/lilliput/pull/111 From shade at openjdk.org Tue Oct 10 20:31:59 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 10 Oct 2023 20:31:59 GMT Subject: [pr/110] RFR: 8317812: [Lilliput] Make C2 LoadNKlassCompactHeader more robust In-Reply-To: <2wUyBmjDufL5zv3lK43C92iT4IuJMaNhndzCPYm8WBQ=.4892575e-9e50-4f25-81fa-446ec2e3cae2@github.com> References: <2wUyBmjDufL5zv3lK43C92iT4IuJMaNhndzCPYm8WBQ=.4892575e-9e50-4f25-81fa-446ec2e3cae2@github.com> Message-ID: On Tue, 10 Oct 2023 16:35:53 GMT, Roman Kennke wrote: > Lilliput's C2 code for generating LoadNKlass currently assumes that the disp of the incoming address is klass_offset_in_bytes. It then extracts the base register and loads from the mark_offset_in_bytes instead. > Sometimes (apparently very rarely) it happens that C2 emits code that pre-adds obj+klass_offset into a register, and uses that as base, but with offset 0. In this case we would trip the assert or crash in release builds. > > - [x] specjvm derby (which triggered the bug) > - [x] tier1 x86_64 +UCOH > - [x] tier1 aarch64 +UCOH src/hotspot/cpu/x86/x86_64.ad line 5336: > 5334: format %{ "movl $dst, $mem\t# compressed klass ptr" %} > 5335: ins_encode %{ > 5336: Register index = $mem$$index != 4 ? $mem$$index$$Register : noreg; I don't understand what`$mem$$index != 4` is supposed to check. Can't we just pass the whole register to `load_nklass_compact_c2`? Is it already `noreg` when index is not set? ------------- PR Review Comment: https://git.openjdk.org/lilliput/pull/111#discussion_r1353194927 From shade at openjdk.org Tue Oct 10 20:32:02 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 10 Oct 2023 20:32:02 GMT Subject: [pr/110] RFR: 8317812: [Lilliput] Make C2 LoadNKlassCompactHeader more robust In-Reply-To: References: <2wUyBmjDufL5zv3lK43C92iT4IuJMaNhndzCPYm8WBQ=.4892575e-9e50-4f25-81fa-446ec2e3cae2@github.com> Message-ID: On Tue, 10 Oct 2023 19:08:35 GMT, Aleksey Shipilev wrote: >> Lilliput's C2 code for generating LoadNKlass currently assumes that the disp of the incoming address is klass_offset_in_bytes. It then extracts the base register and loads from the mark_offset_in_bytes instead. >> Sometimes (apparently very rarely) it happens that C2 emits code that pre-adds obj+klass_offset into a register, and uses that as base, but with offset 0. In this case we would trip the assert or crash in release builds. >> >> - [x] specjvm derby (which triggered the bug) >> - [x] tier1 x86_64 +UCOH >> - [x] tier1 aarch64 +UCOH > > src/hotspot/cpu/x86/x86_64.ad line 5336: > >> 5334: format %{ "movl $dst, $mem\t# compressed klass ptr" %} >> 5335: ins_encode %{ >> 5336: Register index = $mem$$index != 4 ? $mem$$index$$Register : noreg; > > I don't understand what`$mem$$index != 4` is supposed to check. Can't we just pass the whole register to `load_nklass_compact_c2`? Is it already `noreg` when index is not set? Or is unset index `-1`, not `4`? ------------- PR Review Comment: https://git.openjdk.org/lilliput/pull/111#discussion_r1353197046 From rkennke at openjdk.org Tue Oct 10 20:32:04 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Tue, 10 Oct 2023 20:32:04 GMT Subject: [pr/110] RFR: 8317812: [Lilliput] Make C2 LoadNKlassCompactHeader more robust In-Reply-To: References: <2wUyBmjDufL5zv3lK43C92iT4IuJMaNhndzCPYm8WBQ=.4892575e-9e50-4f25-81fa-446ec2e3cae2@github.com> Message-ID: On Tue, 10 Oct 2023 19:09:20 GMT, Aleksey Shipilev wrote: >> src/hotspot/cpu/x86/x86_64.ad line 5336: >> >>> 5334: format %{ "movl $dst, $mem\t# compressed klass ptr" %} >>> 5335: ins_encode %{ >>> 5336: Register index = $mem$$index != 4 ? $mem$$index$$Register : noreg; >> >> I don't understand what`$mem$$index != 4` is supposed to check. Can't we just pass the whole register to `load_nklass_compact_c2`? Is it already `noreg` when index is not set? > > Or is unset index `-1`, not `4`? For some reason, in x86 C2, register index 4 is 'no' register. Similar checks are used elsewhere, e.g. in encode_RegMem in x86_64.ad, line 643. Not sure how to make that better. ------------- PR Review Comment: https://git.openjdk.org/lilliput/pull/111#discussion_r1353209048 From rkennke at openjdk.org Tue Oct 10 20:32:04 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Tue, 10 Oct 2023 20:32:04 GMT Subject: [pr/110] RFR: 8317812: [Lilliput] Make C2 LoadNKlassCompactHeader more robust In-Reply-To: References: <2wUyBmjDufL5zv3lK43C92iT4IuJMaNhndzCPYm8WBQ=.4892575e-9e50-4f25-81fa-446ec2e3cae2@github.com> Message-ID: On Tue, 10 Oct 2023 19:16:45 GMT, Roman Kennke wrote: >> Or is unset index `-1`, not `4`? > > For some reason, in x86 C2, register index 4 is 'no' register. Similar checks are used elsewhere, e.g. in encode_RegMem in x86_64.ad, line 643. Not sure how to make that better. All the operand definitions use 0x4 for 'no index' e.g.: operand stackSlotI(sRegI reg) %{ constraint(ALLOC_IN_RC(stack_slots)); // No match rule because this operand is only generated in matching format %{ "[$reg]" %} interface(MEMORY_INTER) %{ base(0x4); // RSP index(0x4); // No Index scale(0x0); // No Scale disp($reg); // Stack Offset %} %} There are many more cases like this in x86_64 ------------- PR Review Comment: https://git.openjdk.org/lilliput/pull/111#discussion_r1353230485 From shade at openjdk.org Wed Oct 11 08:26:20 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 11 Oct 2023 08:26:20 GMT Subject: [pr/110] RFR: 8317812: [Lilliput] Make C2 LoadNKlassCompactHeader more robust In-Reply-To: References: <2wUyBmjDufL5zv3lK43C92iT4IuJMaNhndzCPYm8WBQ=.4892575e-9e50-4f25-81fa-446ec2e3cae2@github.com> Message-ID: On Tue, 10 Oct 2023 19:32:51 GMT, Roman Kennke wrote: >> For some reason, in x86 C2, register index 4 is 'no' register. Similar checks are used elsewhere, e.g. in encode_RegMem in x86_64.ad, line 643. Not sure how to make that better. > > All the operand definitions use 0x4 for 'no index' e.g.: > operand stackSlotI(sRegI reg) > %{ > constraint(ALLOC_IN_RC(stack_slots)); > // No match rule because this operand is only generated in matching > > format %{ "[$reg]" %} > interface(MEMORY_INTER) %{ > base(0x4); // RSP > index(0x4); // No Index > scale(0x0); // No Scale > disp($reg); // Stack Offset > %} > %} > > There are many more cases like this in x86_64 Ah, ok then. I missed that original assert also checked for `4`. Weird. ------------- PR Review Comment: https://git.openjdk.org/lilliput/pull/111#discussion_r1354385649 From shade at openjdk.org Wed Oct 11 08:30:38 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 11 Oct 2023 08:30:38 GMT Subject: [pr/110] RFR: 8317812: [Lilliput] Make C2 LoadNKlassCompactHeader more robust In-Reply-To: References: <2wUyBmjDufL5zv3lK43C92iT4IuJMaNhndzCPYm8WBQ=.4892575e-9e50-4f25-81fa-446ec2e3cae2@github.com> Message-ID: On Wed, 11 Oct 2023 08:22:52 GMT, Aleksey Shipilev wrote: >> All the operand definitions use 0x4 for 'no index' e.g.: >> operand stackSlotI(sRegI reg) >> %{ >> constraint(ALLOC_IN_RC(stack_slots)); >> // No match rule because this operand is only generated in matching >> >> format %{ "[$reg]" %} >> interface(MEMORY_INTER) %{ >> base(0x4); // RSP >> index(0x4); // No Index >> scale(0x0); // No Scale >> disp($reg); // Stack Offset >> %} >> %} >> >> There are many more cases like this in x86_64 > > Ah, ok then. I missed that original assert also checked for `4`. Weird. On the other hand, this suggests that we can pass `$mem$$index$Register` right away? https://github.com/openjdk/lilliput/pull/111/files#diff-018aa61d1a7aafcf70a535fcd40a318a4bd6511fd40ac39ce4be90cc52216749L7350 ------------- PR Review Comment: https://git.openjdk.org/lilliput/pull/111#discussion_r1354394477 From shade at openjdk.org Wed Oct 11 08:30:38 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 11 Oct 2023 08:30:38 GMT Subject: [pr/110] RFR: 8317812: [Lilliput] Make C2 LoadNKlassCompactHeader more robust In-Reply-To: References: <2wUyBmjDufL5zv3lK43C92iT4IuJMaNhndzCPYm8WBQ=.4892575e-9e50-4f25-81fa-446ec2e3cae2@github.com> Message-ID: <-h5LOvfWOQcloAx247XU44O0UdwKVqjYlZ-a2HOL110=.0b7d2719-73c1-4baf-8027-40a7cfcae25b@github.com> On Wed, 11 Oct 2023 08:26:20 GMT, Aleksey Shipilev wrote: >> Ah, ok then. I missed that original assert also checked for `4`. Weird. > > On the other hand, this suggests that we can pass `$mem$$index$Register` right away? > > https://github.com/openjdk/lilliput/pull/111/files#diff-018aa61d1a7aafcf70a535fcd40a318a4bd6511fd40ac39ce4be90cc52216749L7350 In fact, I don't quite see why `x86_64.ad` cannot do what `aarch64.ad` does: __ load_nklass_compact($dst$$Register, $mem$$base$$Register, $mem$$index$$Register, $mem$$scale, $mem$$disp); ------------- PR Review Comment: https://git.openjdk.org/lilliput/pull/111#discussion_r1354397121 From rkennke at openjdk.org Wed Oct 11 09:22:43 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Wed, 11 Oct 2023 09:22:43 GMT Subject: [pr/110] RFR: 8317812: [Lilliput] Make C2 LoadNKlassCompactHeader more robust In-Reply-To: <-h5LOvfWOQcloAx247XU44O0UdwKVqjYlZ-a2HOL110=.0b7d2719-73c1-4baf-8027-40a7cfcae25b@github.com> References: <2wUyBmjDufL5zv3lK43C92iT4IuJMaNhndzCPYm8WBQ=.4892575e-9e50-4f25-81fa-446ec2e3cae2@github.com> <-h5LOvfWOQcloAx247XU44O0UdwKVqjYlZ-a2HOL110=.0b7d2719-73c1-4baf-8027-40a7cfcae25b@github.com> Message-ID: <304qQA9VDiuJQ2roSJRSKxMuyRWFzxgtxH0GGXwspdY=.260810fd-bc35-4077-a4fc-aa6c80287af6@github.com> On Wed, 11 Oct 2023 08:27:57 GMT, Aleksey Shipilev wrote: >> On the other hand, this suggests that we can pass `$mem$$index$Register` right away? >> >> https://github.com/openjdk/lilliput/pull/111/files#diff-018aa61d1a7aafcf70a535fcd40a318a4bd6511fd40ac39ce4be90cc52216749L7350 > > In fact, I don't quite see why `x86_64.ad` cannot do what `aarch64.ad` does: > > > __ load_nklass_compact($dst$$Register, $mem$$base$$Register, $mem$$index$$Register, $mem$$scale, $mem$$disp); Problem is the index=4 does not decode to noreg (it decodes to rsp) and scale=0 does not decode to no_scale (it's invalid, I think). Hence the extra hoops there. ------------- PR Review Comment: https://git.openjdk.org/lilliput/pull/111#discussion_r1354551486 From shade at openjdk.org Wed Oct 11 09:39:47 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 11 Oct 2023 09:39:47 GMT Subject: [pr/110] RFR: 8317812: [Lilliput] Make C2 LoadNKlassCompactHeader more robust In-Reply-To: <304qQA9VDiuJQ2roSJRSKxMuyRWFzxgtxH0GGXwspdY=.260810fd-bc35-4077-a4fc-aa6c80287af6@github.com> References: <2wUyBmjDufL5zv3lK43C92iT4IuJMaNhndzCPYm8WBQ=.4892575e-9e50-4f25-81fa-446ec2e3cae2@github.com> <-h5LOvfWOQcloAx247XU44O0UdwKVqjYlZ-a2HOL110=.0b7d2719-73c1-4baf-8027-40a7cfcae25b@github.com> <304qQA9VDiuJQ2roSJRSKxMuyRWFzxgtxH0GGXwspdY=.260810fd-bc35-4077-a4fc-aa6c80287af6@github.com> Message-ID: On Wed, 11 Oct 2023 09:20:01 GMT, Roman Kennke wrote: >> In fact, I don't quite see why `x86_64.ad` cannot do what `aarch64.ad` does: >> >> >> __ load_nklass_compact($dst$$Register, $mem$$base$$Register, $mem$$index$$Register, $mem$$scale, $mem$$disp); > > Problem is the index=4 does not decode to noreg (it decodes to rsp) and scale=0 does not decode to no_scale (it's invalid, I think). Hence the extra hoops there. Ooof. Okay then. ------------- PR Review Comment: https://git.openjdk.org/lilliput/pull/111#discussion_r1354576727 From shade at openjdk.org Wed Oct 11 09:43:35 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 11 Oct 2023 09:43:35 GMT Subject: [pr/110] RFR: 8317812: [Lilliput] Make C2 LoadNKlassCompactHeader more robust In-Reply-To: <2wUyBmjDufL5zv3lK43C92iT4IuJMaNhndzCPYm8WBQ=.4892575e-9e50-4f25-81fa-446ec2e3cae2@github.com> References: <2wUyBmjDufL5zv3lK43C92iT4IuJMaNhndzCPYm8WBQ=.4892575e-9e50-4f25-81fa-446ec2e3cae2@github.com> Message-ID: On Tue, 10 Oct 2023 16:35:53 GMT, Roman Kennke wrote: > Lilliput's C2 code for generating LoadNKlass currently assumes that the disp of the incoming address is klass_offset_in_bytes. It then extracts the base register and loads from the mark_offset_in_bytes instead. > Sometimes (apparently very rarely) it happens that C2 emits code that pre-adds obj+klass_offset into a register, and uses that as base, but with offset 0. In this case we would trip the assert or crash in release builds. > > - [x] specjvm derby (which triggered the bug) > - [x] tier1 x86_64 +UCOH > - [x] tier1 aarch64 +UCOH Marked as reviewed by shade (Committer). ------------- PR Review: https://git.openjdk.org/lilliput/pull/111#pullrequestreview-1670623650 From rkennke at openjdk.org Wed Oct 11 11:30:18 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Wed, 11 Oct 2023 11:30:18 GMT Subject: [master] RFR: 8317352: [Lilliput] Sync with upstreaming PRs [v2] In-Reply-To: References: Message-ID: > This PR syncs the Lilliput mainline repo with the changes that we are proposing in the upstreaming PRs. We have accumulated a number of diversions. Ideally, the Lilliput repo should mirror what is proposed for upstreaming, except where it integrates the upstreaming PRs in various places. > > Notable changes: > - Removed leftovers from Klass encoding removal > - Removed heap object stats. This is currently better done by JOL. > - Sliding GC template optimizations and fallback for G1 > - Re-enabled many tests > > There is a remaining problem with CDS (the changes in archiveBuilder.cpp) which affect only Windows, which I am sorting out separately. > > Testing: > - [x] All changed tests +UCOH > - [x] All changed tests -UCOH > - [x] tier1 x86_64 +UCOH > - [x] tier1 x86_64 -UCOH > - [x] tier1 aarch64 +UCOH > - [x] tier1 aarch64 -UCOH > - [x] tier2 x86_64 +UCOH > - [x] tier2 x86_64 -UCOH > - [x] tier2 aarch64 +UCOH > - [x] tier2 aarch64 -UCOH Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: Revert C2 klass_offset changes ------------- Changes: - all: https://git.openjdk.org/lilliput/pull/110/files - new: https://git.openjdk.org/lilliput/pull/110/files/b24bfd64..476b3cb6 Webrevs: - full: https://webrevs.openjdk.org/?repo=lilliput&pr=110&range=01 - incr: https://webrevs.openjdk.org/?repo=lilliput&pr=110&range=00-01 Stats: 71 lines in 16 files changed: 7 ins; 36 del; 28 mod Patch: https://git.openjdk.org/lilliput/pull/110.diff Fetch: git fetch https://git.openjdk.org/lilliput.git pull/110/head:pull/110 PR: https://git.openjdk.org/lilliput/pull/110 From rkennke at openjdk.org Wed Oct 11 11:32:58 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Wed, 11 Oct 2023 11:32:58 GMT Subject: [pr/110] RFR: 8317812: [Lilliput] Make C2 LoadNKlassCompactHeader more robust [v2] In-Reply-To: <2wUyBmjDufL5zv3lK43C92iT4IuJMaNhndzCPYm8WBQ=.4892575e-9e50-4f25-81fa-446ec2e3cae2@github.com> References: <2wUyBmjDufL5zv3lK43C92iT4IuJMaNhndzCPYm8WBQ=.4892575e-9e50-4f25-81fa-446ec2e3cae2@github.com> Message-ID: > Lilliput's C2 code for generating LoadNKlass currently assumes that the disp of the incoming address is klass_offset_in_bytes. It then extracts the base register and loads from the mark_offset_in_bytes instead. > Sometimes (apparently very rarely) it happens that C2 emits code that pre-adds obj+klass_offset into a register, and uses that as base, but with offset 0. In this case we would trip the assert or crash in release builds. > > - [x] specjvm derby (which triggered the bug) > - [x] tier1 x86_64 +UCOH > - [x] tier1 aarch64 +UCOH Roman Kennke has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains four commits: - Merge branch 'JDK-8317352' into JDK-8317812 - x86 parts - Fix offset - 8317812: [Lilliput] Make C2 LoadNKlassCompactHeader more robust ------------- Changes: https://git.openjdk.org/lilliput/pull/111/files Webrev: https://webrevs.openjdk.org/?repo=lilliput&pr=111&range=01 Stats: 37 lines in 6 files changed: 25 ins; 2 del; 10 mod Patch: https://git.openjdk.org/lilliput/pull/111.diff Fetch: git fetch https://git.openjdk.org/lilliput.git pull/111/head:pull/111 PR: https://git.openjdk.org/lilliput/pull/111 From rkennke at openjdk.org Wed Oct 11 11:37:19 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Wed, 11 Oct 2023 11:37:19 GMT Subject: [master] RFR: 8317352: [Lilliput] Sync with upstreaming PRs [v3] In-Reply-To: References: Message-ID: > This PR syncs the Lilliput mainline repo with the changes that we are proposing in the upstreaming PRs. We have accumulated a number of diversions. Ideally, the Lilliput repo should mirror what is proposed for upstreaming, except where it integrates the upstreaming PRs in various places. > > Notable changes: > - Removed leftovers from Klass encoding removal > - Removed heap object stats. This is currently better done by JOL. > - Sliding GC template optimizations and fallback for G1 > - Re-enabled many tests > > There is a remaining problem with CDS (the changes in archiveBuilder.cpp) which affect only Windows, which I am sorting out separately. > > Testing: > - [x] All changed tests +UCOH > - [x] All changed tests -UCOH > - [x] tier1 x86_64 +UCOH > - [x] tier1 x86_64 -UCOH > - [x] tier1 aarch64 +UCOH > - [x] tier1 aarch64 -UCOH > - [x] tier2 x86_64 +UCOH > - [x] tier2 x86_64 -UCOH > - [x] tier2 aarch64 +UCOH > - [x] tier2 aarch64 -UCOH Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: Restore original code ------------- Changes: - all: https://git.openjdk.org/lilliput/pull/110/files - new: https://git.openjdk.org/lilliput/pull/110/files/476b3cb6..6b4d7028 Webrevs: - full: https://webrevs.openjdk.org/?repo=lilliput&pr=110&range=02 - incr: https://webrevs.openjdk.org/?repo=lilliput&pr=110&range=01-02 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod Patch: https://git.openjdk.org/lilliput/pull/110.diff Fetch: git fetch https://git.openjdk.org/lilliput.git pull/110/head:pull/110 PR: https://git.openjdk.org/lilliput/pull/110 From rkennke at openjdk.org Wed Oct 11 11:40:09 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Wed, 11 Oct 2023 11:40:09 GMT Subject: [pr/110] RFR: 8317812: [Lilliput] Make C2 LoadNKlassCompactHeader more robust [v3] In-Reply-To: <2wUyBmjDufL5zv3lK43C92iT4IuJMaNhndzCPYm8WBQ=.4892575e-9e50-4f25-81fa-446ec2e3cae2@github.com> References: <2wUyBmjDufL5zv3lK43C92iT4IuJMaNhndzCPYm8WBQ=.4892575e-9e50-4f25-81fa-446ec2e3cae2@github.com> Message-ID: > Lilliput's C2 code for generating LoadNKlass currently assumes that the disp of the incoming address is klass_offset_in_bytes. It then extracts the base register and loads from the mark_offset_in_bytes instead. > Sometimes (apparently very rarely) it happens that C2 emits code that pre-adds obj+klass_offset into a register, and uses that as base, but with offset 0. In this case we would trip the assert or crash in release builds. > > - [x] specjvm derby (which triggered the bug) > - [x] tier1 x86_64 +UCOH > - [x] tier1 aarch64 +UCOH Roman Kennke has updated the pull request incrementally with two additional commits since the last revision: - Merge branch 'JDK-8317352' into JDK-8317812 - Restore original code ------------- Changes: - all: https://git.openjdk.org/lilliput/pull/111/files - new: https://git.openjdk.org/lilliput/pull/111/files/1d935f56..60ecb797 Webrevs: - full: https://webrevs.openjdk.org/?repo=lilliput&pr=111&range=02 - incr: https://webrevs.openjdk.org/?repo=lilliput&pr=111&range=01-02 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod Patch: https://git.openjdk.org/lilliput/pull/111.diff Fetch: git fetch https://git.openjdk.org/lilliput.git pull/111/head:pull/111 PR: https://git.openjdk.org/lilliput/pull/111 From rkennke at openjdk.org Wed Oct 11 12:05:03 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Wed, 11 Oct 2023 12:05:03 GMT Subject: [pr/110] RFR: 8317812: [Lilliput] Make C2 LoadNKlassCompactHeader more robust [v4] In-Reply-To: <2wUyBmjDufL5zv3lK43C92iT4IuJMaNhndzCPYm8WBQ=.4892575e-9e50-4f25-81fa-446ec2e3cae2@github.com> References: <2wUyBmjDufL5zv3lK43C92iT4IuJMaNhndzCPYm8WBQ=.4892575e-9e50-4f25-81fa-446ec2e3cae2@github.com> Message-ID: > Lilliput's C2 code for generating LoadNKlass currently assumes that the disp of the incoming address is klass_offset_in_bytes. It then extracts the base register and loads from the mark_offset_in_bytes instead. > Sometimes (apparently very rarely) it happens that C2 emits code that pre-adds obj+klass_offset into a register, and uses that as base, but with offset 0. In this case we would trip the assert or crash in release builds. > > - [x] specjvm derby (which triggered the bug) > - [x] tier1 x86_64 +UCOH > - [x] tier1 aarch64 +UCOH Roman Kennke has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains six commits: - Fix build - Merge branch 'JDK-8317352' into JDK-8317812 - Merge branch 'JDK-8317352' into JDK-8317812 - x86 parts - Fix offset - 8317812: [Lilliput] Make C2 LoadNKlassCompactHeader more robust ------------- Changes: https://git.openjdk.org/lilliput/pull/111/files Webrev: https://webrevs.openjdk.org/?repo=lilliput&pr=111&range=03 Stats: 37 lines in 6 files changed: 25 ins; 2 del; 10 mod Patch: https://git.openjdk.org/lilliput/pull/111.diff Fetch: git fetch https://git.openjdk.org/lilliput.git pull/111/head:pull/111 PR: https://git.openjdk.org/lilliput/pull/111 From rkennke at openjdk.org Wed Oct 11 13:23:52 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Wed, 11 Oct 2023 13:23:52 GMT Subject: [lilliput-jdk21u:lilliput] RFR: 8317954: [Lilliput/JDK21] Make C2 LoadNKlassCompactHeader more robust Message-ID: Clean backport of https://github.com/openjdk/lilliput/pull/111. Lilliput's C2 code for generating LoadNKlass currently assumes that the disp of the incoming address is klass_offset_in_bytes. It then extracts the base register and loads from the mark_offset_in_bytes instead. Sometimes (apparently very rarely) it happens that C2 emits code that pre-adds obj+klass_offset into a register, and uses that as base, but with offset 0. In this case we would trip the assert or crash in release builds. - [x] specjvm derby (which triggered the bug) - [x] tier1 x86_64 +UCOH - [x] tier1 aarch64 +UCOH ------------- Commit messages: - 8317954: [Lilliput/JDK21] Make C2 LoadNKlassCompactHeader more robust Changes: https://git.openjdk.org/lilliput-jdk21u/pull/10/files Webrev: https://webrevs.openjdk.org/?repo=lilliput-jdk21u&pr=10&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8317954 Stats: 37 lines in 6 files changed: 25 ins; 2 del; 10 mod Patch: https://git.openjdk.org/lilliput-jdk21u/pull/10.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk21u.git pull/10/head:pull/10 PR: https://git.openjdk.org/lilliput-jdk21u/pull/10 From rkennke at openjdk.org Wed Oct 11 13:36:36 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Wed, 11 Oct 2023 13:36:36 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8317957: [Lilliput/JDK17] Make C2 LoadNKlassCompactHeader more robust Message-ID: <50-Ap0q9_Z9gTOK78Ozl4_htEZ_-J_xHf9q6w4njGzs=.a762a521-4565-4b1c-a899-af835d3c9b85@github.com> Backport of https://github.com/openjdk/lilliput/pull/111. I needed to extract the body into helper methods in order to match mainline version. Other than that, the changes are identical. Lilliput's C2 code for generating LoadNKlass currently assumes that the disp of the incoming address is klass_offset_in_bytes. It then extracts the base register and loads from the mark_offset_in_bytes instead. Sometimes (apparently very rarely) it happens that C2 emits code that pre-adds obj+klass_offset into a register, and uses that as base, but with offset 0. In this case we would trip the assert or crash in release builds. - [x] specjvm derby (which triggered the bug) - [x] tier1 x86_64 +UCOH - [x] tier1 aarch64 +UCOH ------------- Commit messages: - 8317957: [Lilliput/JDK17] Make C2 LoadNKlassCompactHeader more robust Changes: https://git.openjdk.org/lilliput-jdk17u/pull/57/files Webrev: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=57&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8317957 Stats: 79 lines in 6 files changed: 53 ins; 20 del; 6 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/57.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/57/head:pull/57 PR: https://git.openjdk.org/lilliput-jdk17u/pull/57 From rkennke at openjdk.org Wed Oct 11 13:58:20 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Wed, 11 Oct 2023 13:58:20 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8317957: [Lilliput/JDK17] Make C2 LoadNKlassCompactHeader more robust [v2] In-Reply-To: <50-Ap0q9_Z9gTOK78Ozl4_htEZ_-J_xHf9q6w4njGzs=.a762a521-4565-4b1c-a899-af835d3c9b85@github.com> References: <50-Ap0q9_Z9gTOK78Ozl4_htEZ_-J_xHf9q6w4njGzs=.a762a521-4565-4b1c-a899-af835d3c9b85@github.com> Message-ID: > Backport of https://github.com/openjdk/lilliput/pull/111. I needed to extract the body into helper methods in order to match mainline version. Other than that, the changes are identical. > > Lilliput's C2 code for generating LoadNKlass currently assumes that the disp of the incoming address is klass_offset_in_bytes. It then extracts the base register and loads from the mark_offset_in_bytes instead. > Sometimes (apparently very rarely) it happens that C2 emits code that pre-adds obj+klass_offset into a register, and uses that as base, but with offset 0. In this case we would trip the assert or crash in release builds. > > - [x] specjvm derby (which triggered the bug) > - [x] tier1 x86_64 +UCOH > - [x] tier1 aarch64 +UCOH Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: Add missing includes ------------- Changes: - all: https://git.openjdk.org/lilliput-jdk17u/pull/57/files - new: https://git.openjdk.org/lilliput-jdk17u/pull/57/files/910c10d1..70902b69 Webrevs: - full: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=57&range=01 - incr: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=57&range=00-01 Stats: 3 lines in 1 file changed: 3 ins; 0 del; 0 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/57.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/57/head:pull/57 PR: https://git.openjdk.org/lilliput-jdk17u/pull/57 From shade at openjdk.org Wed Oct 11 14:29:28 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 11 Oct 2023 14:29:28 GMT Subject: [master] RFR: 8317352: [Lilliput] Sync with upstreaming PRs [v3] In-Reply-To: References: Message-ID: On Wed, 11 Oct 2023 11:37:19 GMT, Roman Kennke wrote: >> This PR syncs the Lilliput mainline repo with the changes that we are proposing in the upstreaming PRs. We have accumulated a number of diversions. Ideally, the Lilliput repo should mirror what is proposed for upstreaming, except where it integrates the upstreaming PRs in various places. >> >> Notable changes: >> - Removed leftovers from Klass encoding removal >> - Removed heap object stats. This is currently better done by JOL. >> - Sliding GC template optimizations and fallback for G1 >> - Re-enabled many tests >> >> There is a remaining problem with CDS (the changes in archiveBuilder.cpp) which affect only Windows, which I am sorting out separately. >> >> Testing: >> - [x] All changed tests +UCOH >> - [x] All changed tests -UCOH >> - [x] tier1 x86_64 +UCOH >> - [x] tier1 x86_64 -UCOH >> - [x] tier1 aarch64 +UCOH >> - [x] tier1 aarch64 -UCOH >> - [x] tier2 x86_64 +UCOH >> - [x] tier2 x86_64 -UCOH >> - [x] tier2 aarch64 +UCOH >> - [x] tier2 aarch64 -UCOH > > Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: > > Restore original code Marked as reviewed by shade (Committer). ------------- PR Review: https://git.openjdk.org/lilliput/pull/110#pullrequestreview-1671392846 From rkennke at openjdk.org Wed Oct 11 14:48:22 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Wed, 11 Oct 2023 14:48:22 GMT Subject: [master] RFR: 8317352: [Lilliput] Sync with upstreaming PRs [v3] In-Reply-To: References: Message-ID: On Wed, 11 Oct 2023 11:37:19 GMT, Roman Kennke wrote: >> This PR syncs the Lilliput mainline repo with the changes that we are proposing in the upstreaming PRs. We have accumulated a number of diversions. Ideally, the Lilliput repo should mirror what is proposed for upstreaming, except where it integrates the upstreaming PRs in various places. >> >> Notable changes: >> - Removed leftovers from Klass encoding removal >> - Removed heap object stats. This is currently better done by JOL. >> - Sliding GC template optimizations and fallback for G1 >> - Re-enabled many tests >> >> There is a remaining problem with CDS (the changes in archiveBuilder.cpp) which affect only Windows, which I am sorting out separately. >> >> Testing: >> - [x] All changed tests +UCOH >> - [x] All changed tests -UCOH >> - [x] tier1 x86_64 +UCOH >> - [x] tier1 x86_64 -UCOH >> - [x] tier1 aarch64 +UCOH >> - [x] tier1 aarch64 -UCOH >> - [x] tier2 x86_64 +UCOH >> - [x] tier2 x86_64 -UCOH >> - [x] tier2 aarch64 +UCOH >> - [x] tier2 aarch64 -UCOH > > Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: > > Restore original code Thanks! ------------- PR Comment: https://git.openjdk.org/lilliput/pull/110#issuecomment-1757845914 From rkennke at openjdk.org Wed Oct 11 14:48:27 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Wed, 11 Oct 2023 14:48:27 GMT Subject: [master] Integrated: 8317352: [Lilliput] Sync with upstreaming PRs In-Reply-To: References: Message-ID: On Mon, 9 Oct 2023 12:36:22 GMT, Roman Kennke wrote: > This PR syncs the Lilliput mainline repo with the changes that we are proposing in the upstreaming PRs. We have accumulated a number of diversions. Ideally, the Lilliput repo should mirror what is proposed for upstreaming, except where it integrates the upstreaming PRs in various places. > > Notable changes: > - Removed leftovers from Klass encoding removal > - Removed heap object stats. This is currently better done by JOL. > - Sliding GC template optimizations and fallback for G1 > - Re-enabled many tests > > There is a remaining problem with CDS (the changes in archiveBuilder.cpp) which affect only Windows, which I am sorting out separately. > > Testing: > - [x] All changed tests +UCOH > - [x] All changed tests -UCOH > - [x] tier1 x86_64 +UCOH > - [x] tier1 x86_64 -UCOH > - [x] tier1 aarch64 +UCOH > - [x] tier1 aarch64 -UCOH > - [x] tier2 x86_64 +UCOH > - [x] tier2 x86_64 -UCOH > - [x] tier2 aarch64 +UCOH > - [x] tier2 aarch64 -UCOH This pull request has now been integrated. Changeset: 39f08e70 Author: Roman Kennke URL: https://git.openjdk.org/lilliput/commit/39f08e70e53dd616c32f9ce96d5c1ef8caeb7e4d Stats: 3030 lines in 144 files changed: 1339 ins; 1121 del; 570 mod 8317352: [Lilliput] Sync with upstreaming PRs Reviewed-by: shade ------------- PR: https://git.openjdk.org/lilliput/pull/110 From shade at openjdk.org Wed Oct 11 16:37:40 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Wed, 11 Oct 2023 16:37:40 GMT Subject: [lilliput-jdk21u:lilliput] RFR: 8317954: [Lilliput/JDK21] Make C2 LoadNKlassCompactHeader more robust In-Reply-To: References: Message-ID: On Wed, 11 Oct 2023 13:15:38 GMT, Roman Kennke wrote: > Clean backport of https://github.com/openjdk/lilliput/pull/111. > Lilliput's C2 code for generating LoadNKlass currently assumes that the disp of the incoming address is klass_offset_in_bytes. It then extracts the base register and loads from the mark_offset_in_bytes instead. > Sometimes (apparently very rarely) it happens that C2 emits code that pre-adds obj+klass_offset into a register, and uses that as base, but with offset 0. In this case we would trip the assert or crash in release builds. > > - [x] specjvm derby (which triggered the bug) > - [x] tier1 x86_64 +UCOH > - [x] tier1 aarch64 +UCOH Marked as reviewed by shade (Reviewer). ------------- PR Review: https://git.openjdk.org/lilliput-jdk21u/pull/10#pullrequestreview-1671758302 From rkennke at openjdk.org Wed Oct 11 16:43:47 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Wed, 11 Oct 2023 16:43:47 GMT Subject: [master] RFR: 8317812: [Lilliput] Make C2 LoadNKlassCompactHeader more robust [v5] In-Reply-To: <2wUyBmjDufL5zv3lK43C92iT4IuJMaNhndzCPYm8WBQ=.4892575e-9e50-4f25-81fa-446ec2e3cae2@github.com> References: <2wUyBmjDufL5zv3lK43C92iT4IuJMaNhndzCPYm8WBQ=.4892575e-9e50-4f25-81fa-446ec2e3cae2@github.com> Message-ID: > Lilliput's C2 code for generating LoadNKlass currently assumes that the disp of the incoming address is klass_offset_in_bytes. It then extracts the base register and loads from the mark_offset_in_bytes instead. > Sometimes (apparently very rarely) it happens that C2 emits code that pre-adds obj+klass_offset into a register, and uses that as base, but with offset 0. In this case we would trip the assert or crash in release builds. > > - [x] specjvm derby (which triggered the bug) > - [x] tier1 x86_64 +UCOH > - [x] tier1 aarch64 +UCOH Roman Kennke has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 18 commits: - Merge branch 'master' into JDK-8317812 - Fix build - Merge branch 'JDK-8317352' into JDK-8317812 - Restore original code - Merge branch 'JDK-8317352' into JDK-8317812 - Revert C2 klass_offset changes - Fix whitespace - x86 parts - Fix offset - 8317812: [Lilliput] Make C2 LoadNKlassCompactHeader more robust - ... and 8 more: https://git.openjdk.org/lilliput/compare/39f08e70...e2243a18 ------------- Changes: https://git.openjdk.org/lilliput/pull/111/files Webrev: https://webrevs.openjdk.org/?repo=lilliput&pr=111&range=04 Stats: 37 lines in 6 files changed: 25 ins; 2 del; 10 mod Patch: https://git.openjdk.org/lilliput/pull/111.diff Fetch: git fetch https://git.openjdk.org/lilliput.git pull/111/head:pull/111 PR: https://git.openjdk.org/lilliput/pull/111 From rkennke at openjdk.org Wed Oct 11 17:22:16 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Wed, 11 Oct 2023 17:22:16 GMT Subject: [master] RFR: 8317812: [Lilliput] Make C2 LoadNKlassCompactHeader more robust [v6] In-Reply-To: <2wUyBmjDufL5zv3lK43C92iT4IuJMaNhndzCPYm8WBQ=.4892575e-9e50-4f25-81fa-446ec2e3cae2@github.com> References: <2wUyBmjDufL5zv3lK43C92iT4IuJMaNhndzCPYm8WBQ=.4892575e-9e50-4f25-81fa-446ec2e3cae2@github.com> Message-ID: > Lilliput's C2 code for generating LoadNKlass currently assumes that the disp of the incoming address is klass_offset_in_bytes. It then extracts the base register and loads from the mark_offset_in_bytes instead. > Sometimes (apparently very rarely) it happens that C2 emits code that pre-adds obj+klass_offset into a register, and uses that as base, but with offset 0. In this case we would trip the assert or crash in release builds. > > - [x] specjvm derby (which triggered the bug) > - [x] tier1 x86_64 +UCOH > - [x] tier1 aarch64 +UCOH Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: Fix scale decoding ------------- Changes: - all: https://git.openjdk.org/lilliput/pull/111/files - new: https://git.openjdk.org/lilliput/pull/111/files/e2243a18..1a4686df Webrevs: - full: https://webrevs.openjdk.org/?repo=lilliput&pr=111&range=05 - incr: https://webrevs.openjdk.org/?repo=lilliput&pr=111&range=04-05 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod Patch: https://git.openjdk.org/lilliput/pull/111.diff Fetch: git fetch https://git.openjdk.org/lilliput.git pull/111/head:pull/111 PR: https://git.openjdk.org/lilliput/pull/111 From rkennke at openjdk.org Wed Oct 11 18:24:10 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Wed, 11 Oct 2023 18:24:10 GMT Subject: [master] RFR: 8317345: [Lilliput] CDS fixes [v3] In-Reply-To: References: Message-ID: On Mon, 2 Oct 2023 17:35:11 GMT, Roman Kennke wrote: >> Sync CDS code with https://github.com/openjdk/jdk/pull/13961 to fix some JTREG failures. It also includes a bunch of test fixes for ZGC/CDS, similar to https://github.com/openjdk/lilliput-jdk21u/pull/7. The changes make tier1 cds tests clean. >> >> Testing: >> - [x] tier1 (+UCOH) >> - [x] tier1 (-UCOH) > > Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: > > Fix guard Will not fix. The PR https://github.com/openjdk/lilliput/pull/110 subsumed the changes. ------------- PR Comment: https://git.openjdk.org/lilliput/pull/109#issuecomment-1758252127 From rkennke at openjdk.org Wed Oct 11 18:24:12 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Wed, 11 Oct 2023 18:24:12 GMT Subject: [master] Withdrawn: 8317345: [Lilliput] CDS fixes In-Reply-To: References: Message-ID: On Mon, 2 Oct 2023 13:14:26 GMT, Roman Kennke wrote: > Sync CDS code with https://github.com/openjdk/jdk/pull/13961 to fix some JTREG failures. It also includes a bunch of test fixes for ZGC/CDS, similar to https://github.com/openjdk/lilliput-jdk21u/pull/7. The changes make tier1 cds tests clean. > > Testing: > - [x] tier1 (+UCOH) > - [x] tier1 (-UCOH) This pull request has been closed without being integrated. ------------- PR: https://git.openjdk.org/lilliput/pull/109 From rkennke at openjdk.org Wed Oct 11 18:26:27 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Wed, 11 Oct 2023 18:26:27 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8317957: [Lilliput/JDK17] Make C2 LoadNKlassCompactHeader more robust [v3] In-Reply-To: <50-Ap0q9_Z9gTOK78Ozl4_htEZ_-J_xHf9q6w4njGzs=.a762a521-4565-4b1c-a899-af835d3c9b85@github.com> References: <50-Ap0q9_Z9gTOK78Ozl4_htEZ_-J_xHf9q6w4njGzs=.a762a521-4565-4b1c-a899-af835d3c9b85@github.com> Message-ID: <5rfwdJyzL25ptv4Q8DbuK0wv9Ao0RkcpEJQsckZy2k8=.a7378f03-303d-4e3b-89f7-3316f15aff69@github.com> > Backport of https://github.com/openjdk/lilliput/pull/111. I needed to extract the body into helper methods in order to match mainline version. Other than that, the changes are identical. > > Lilliput's C2 code for generating LoadNKlass currently assumes that the disp of the incoming address is klass_offset_in_bytes. It then extracts the base register and loads from the mark_offset_in_bytes instead. > Sometimes (apparently very rarely) it happens that C2 emits code that pre-adds obj+klass_offset into a register, and uses that as base, but with offset 0. In this case we would trip the assert or crash in release builds. > > - [x] specjvm derby (which triggered the bug) > - [x] tier1 x86_64 +UCOH > - [x] tier1 aarch64 +UCOH Roman Kennke has updated the pull request incrementally with two additional commits since the last revision: - Merge remote-tracking branch 'origin/JDK-8317957' into JDK-8317957 - Fix scale decoding ------------- Changes: - all: https://git.openjdk.org/lilliput-jdk17u/pull/57/files - new: https://git.openjdk.org/lilliput-jdk17u/pull/57/files/70902b69..ce805a8b Webrevs: - full: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=57&range=02 - incr: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=57&range=01-02 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/57.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/57/head:pull/57 PR: https://git.openjdk.org/lilliput-jdk17u/pull/57 From rkennke at openjdk.org Wed Oct 11 18:26:42 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Wed, 11 Oct 2023 18:26:42 GMT Subject: [lilliput-jdk21u:lilliput] RFR: 8317954: [Lilliput/JDK21] Make C2 LoadNKlassCompactHeader more robust [v2] In-Reply-To: References: Message-ID: > Clean backport of https://github.com/openjdk/lilliput/pull/111. > Lilliput's C2 code for generating LoadNKlass currently assumes that the disp of the incoming address is klass_offset_in_bytes. It then extracts the base register and loads from the mark_offset_in_bytes instead. > Sometimes (apparently very rarely) it happens that C2 emits code that pre-adds obj+klass_offset into a register, and uses that as base, but with offset 0. In this case we would trip the assert or crash in release builds. > > - [x] specjvm derby (which triggered the bug) > - [x] tier1 x86_64 +UCOH > - [x] tier1 aarch64 +UCOH Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: Fix scale decoding ------------- Changes: - all: https://git.openjdk.org/lilliput-jdk21u/pull/10/files - new: https://git.openjdk.org/lilliput-jdk21u/pull/10/files/4348739b..e4e9cf86 Webrevs: - full: https://webrevs.openjdk.org/?repo=lilliput-jdk21u&pr=10&range=01 - incr: https://webrevs.openjdk.org/?repo=lilliput-jdk21u&pr=10&range=00-01 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod Patch: https://git.openjdk.org/lilliput-jdk21u/pull/10.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk21u.git pull/10/head:pull/10 PR: https://git.openjdk.org/lilliput-jdk21u/pull/10 From rkennke at openjdk.org Thu Oct 12 08:59:39 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Thu, 12 Oct 2023 08:59:39 GMT Subject: [master] RFR: 8317812: [Lilliput] Make C2 LoadNKlassCompactHeader more robust [v7] In-Reply-To: <2wUyBmjDufL5zv3lK43C92iT4IuJMaNhndzCPYm8WBQ=.4892575e-9e50-4f25-81fa-446ec2e3cae2@github.com> References: <2wUyBmjDufL5zv3lK43C92iT4IuJMaNhndzCPYm8WBQ=.4892575e-9e50-4f25-81fa-446ec2e3cae2@github.com> Message-ID: > Lilliput's C2 code for generating LoadNKlass currently assumes that the disp of the incoming address is klass_offset_in_bytes. It then extracts the base register and loads from the mark_offset_in_bytes instead. > Sometimes (apparently very rarely) it happens that C2 emits code that pre-adds obj+klass_offset into a register, and uses that as base, but with offset 0. In this case we would trip the assert or crash in release builds. > > - [x] specjvm derby (which triggered the bug) > - [x] tier1 x86_64 +UCOH > - [x] tier1 aarch64 +UCOH Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: Accept indexed address ------------- Changes: - all: https://git.openjdk.org/lilliput/pull/111/files - new: https://git.openjdk.org/lilliput/pull/111/files/1a4686df..400fc8c6 Webrevs: - full: https://webrevs.openjdk.org/?repo=lilliput&pr=111&range=06 - incr: https://webrevs.openjdk.org/?repo=lilliput&pr=111&range=05-06 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod Patch: https://git.openjdk.org/lilliput/pull/111.diff Fetch: git fetch https://git.openjdk.org/lilliput.git pull/111/head:pull/111 PR: https://git.openjdk.org/lilliput/pull/111 From rkennke at openjdk.org Thu Oct 12 09:09:38 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Thu, 12 Oct 2023 09:09:38 GMT Subject: [master] RFR: 8317812: [Lilliput] Make C2 LoadNKlassCompactHeader more robust [v8] In-Reply-To: <2wUyBmjDufL5zv3lK43C92iT4IuJMaNhndzCPYm8WBQ=.4892575e-9e50-4f25-81fa-446ec2e3cae2@github.com> References: <2wUyBmjDufL5zv3lK43C92iT4IuJMaNhndzCPYm8WBQ=.4892575e-9e50-4f25-81fa-446ec2e3cae2@github.com> Message-ID: > Lilliput's C2 code for generating LoadNKlass currently assumes that the disp of the incoming address is klass_offset_in_bytes. It then extracts the base register and loads from the mark_offset_in_bytes instead. > Sometimes (apparently very rarely) it happens that C2 emits code that pre-adds obj+klass_offset into a register, and uses that as base, but with offset 0. In this case we would trip the assert or crash in release builds. > > - [x] specjvm derby (which triggered the bug) > - [x] tier1 x86_64 +UCOH > - [x] tier1 aarch64 +UCOH Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: Cleanup ------------- Changes: - all: https://git.openjdk.org/lilliput/pull/111/files - new: https://git.openjdk.org/lilliput/pull/111/files/400fc8c6..9dccac17 Webrevs: - full: https://webrevs.openjdk.org/?repo=lilliput&pr=111&range=07 - incr: https://webrevs.openjdk.org/?repo=lilliput&pr=111&range=06-07 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod Patch: https://git.openjdk.org/lilliput/pull/111.diff Fetch: git fetch https://git.openjdk.org/lilliput.git pull/111/head:pull/111 PR: https://git.openjdk.org/lilliput/pull/111 From shade at openjdk.org Thu Oct 12 09:09:38 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 12 Oct 2023 09:09:38 GMT Subject: [master] RFR: 8317812: [Lilliput] Make C2 LoadNKlassCompactHeader more robust [v8] In-Reply-To: References: <2wUyBmjDufL5zv3lK43C92iT4IuJMaNhndzCPYm8WBQ=.4892575e-9e50-4f25-81fa-446ec2e3cae2@github.com> Message-ID: On Thu, 12 Oct 2023 09:03:56 GMT, Roman Kennke wrote: >> Lilliput's C2 code for generating LoadNKlass currently assumes that the disp of the incoming address is klass_offset_in_bytes. It then extracts the base register and loads from the mark_offset_in_bytes instead. >> Sometimes (apparently very rarely) it happens that C2 emits code that pre-adds obj+klass_offset into a register, and uses that as base, but with offset 0. In this case we would trip the assert or crash in release builds. >> >> - [x] specjvm derby (which triggered the bug) >> - [x] tier1 x86_64 +UCOH >> - [x] tier1 aarch64 +UCOH > > Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: > > Cleanup Marked as reviewed by shade (Committer). ------------- PR Review: https://git.openjdk.org/lilliput/pull/111#pullrequestreview-1673665559 From rkennke at openjdk.org Thu Oct 12 09:21:50 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Thu, 12 Oct 2023 09:21:50 GMT Subject: [lilliput-jdk21u:lilliput] RFR: 8317954: [Lilliput/JDK21] Make C2 LoadNKlassCompactHeader more robust [v3] In-Reply-To: References: Message-ID: <3ID3sBKu6Q7zHt087uVuVVS5_b2FfcZTn6EUk-zT13Y=.7b9d8adc-50fb-4d90-962d-26ac65c2a533@github.com> > Clean backport of https://github.com/openjdk/lilliput/pull/111. > Lilliput's C2 code for generating LoadNKlass currently assumes that the disp of the incoming address is klass_offset_in_bytes. It then extracts the base register and loads from the mark_offset_in_bytes instead. > Sometimes (apparently very rarely) it happens that C2 emits code that pre-adds obj+klass_offset into a register, and uses that as base, but with offset 0. In this case we would trip the assert or crash in release builds. > > - [x] specjvm derby (which triggered the bug) > - [x] tier1 x86_64 +UCOH > - [x] tier1 aarch64 +UCOH Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: Accept indexed address ------------- Changes: - all: https://git.openjdk.org/lilliput-jdk21u/pull/10/files - new: https://git.openjdk.org/lilliput-jdk21u/pull/10/files/e4e9cf86..55cb3d2f Webrevs: - full: https://webrevs.openjdk.org/?repo=lilliput-jdk21u&pr=10&range=02 - incr: https://webrevs.openjdk.org/?repo=lilliput-jdk21u&pr=10&range=01-02 Stats: 2 lines in 1 file changed: 0 ins; 0 del; 2 mod Patch: https://git.openjdk.org/lilliput-jdk21u/pull/10.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk21u.git pull/10/head:pull/10 PR: https://git.openjdk.org/lilliput-jdk21u/pull/10 From rkennke at openjdk.org Thu Oct 12 09:24:36 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Thu, 12 Oct 2023 09:24:36 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8317957: [Lilliput/JDK17] Make C2 LoadNKlassCompactHeader more robust [v4] In-Reply-To: <50-Ap0q9_Z9gTOK78Ozl4_htEZ_-J_xHf9q6w4njGzs=.a762a521-4565-4b1c-a899-af835d3c9b85@github.com> References: <50-Ap0q9_Z9gTOK78Ozl4_htEZ_-J_xHf9q6w4njGzs=.a762a521-4565-4b1c-a899-af835d3c9b85@github.com> Message-ID: > Backport of https://github.com/openjdk/lilliput/pull/111. I needed to extract the body into helper methods in order to match mainline version. Other than that, the changes are identical. > > Lilliput's C2 code for generating LoadNKlass currently assumes that the disp of the incoming address is klass_offset_in_bytes. It then extracts the base register and loads from the mark_offset_in_bytes instead. > Sometimes (apparently very rarely) it happens that C2 emits code that pre-adds obj+klass_offset into a register, and uses that as base, but with offset 0. In this case we would trip the assert or crash in release builds. > > - [x] specjvm derby (which triggered the bug) > - [x] tier1 x86_64 +UCOH > - [x] tier1 aarch64 +UCOH Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: Accept indexed address ------------- Changes: - all: https://git.openjdk.org/lilliput-jdk17u/pull/57/files - new: https://git.openjdk.org/lilliput-jdk17u/pull/57/files/ce805a8b..6aa35299 Webrevs: - full: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=57&range=03 - incr: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=57&range=02-03 Stats: 2 lines in 1 file changed: 0 ins; 0 del; 2 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/57.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/57/head:pull/57 PR: https://git.openjdk.org/lilliput-jdk17u/pull/57 From rkennke at openjdk.org Thu Oct 12 11:09:42 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Thu, 12 Oct 2023 11:09:42 GMT Subject: [lilliput-jdk17u:lilliput] RFR: Merge jdk17u:jdk-17.0.9+7 Message-ID: Let's merge the latest tag. ------------- Commit messages: - Merge tag 'jdk-17.0.9+7' into merge-jdk-17.0.9+7 - 8312555: Ideographic characters aren't stretched by AffineTransform.scale(2, 1) - 8299658: C1 compilation crashes in LinearScan::resolve_exception_edge - 8314960: Add Certigna Root CA - 2 - 8313262: C2: Sinking node may cause required cast to be dropped - 8314020: Print instruction blocks in byte units - 8313678: SymbolTable can leak Symbols during cleanup - 8313874: JNI NewWeakGlobalRef throws exception for null arg - Merge - 8313765: Invalid CEN header (invalid zip64 extra data field size) - ... and 347 more: https://git.openjdk.org/lilliput-jdk17u/compare/c4cda3ce...d4f59ab6 The webrevs contain the adjustments done while merging with regards to each parent branch: - lilliput: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=58&range=00.0 - jdk17u:jdk-17.0.9+7: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=58&range=00.1 Changes: https://git.openjdk.org/lilliput-jdk17u/pull/58/files Stats: 315837 lines in 2860 files changed: 199044 ins; 93453 del; 23340 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/58.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/58/head:pull/58 PR: https://git.openjdk.org/lilliput-jdk17u/pull/58 From rkennke at openjdk.org Thu Oct 12 11:10:31 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Thu, 12 Oct 2023 11:10:31 GMT Subject: [lilliput-jdk17u:lilliput] RFR: Merge jdk17u:jdk-17.0.9+7 In-Reply-To: References: Message-ID: On Thu, 12 Oct 2023 10:57:13 GMT, Roman Kennke wrote: > Let's merge the latest tag. Wrong base ------------- PR Comment: https://git.openjdk.org/lilliput-jdk17u/pull/58#issuecomment-1759394110 From rkennke at openjdk.org Thu Oct 12 11:10:33 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Thu, 12 Oct 2023 11:10:33 GMT Subject: [lilliput-jdk17u:lilliput] Withdrawn: Merge jdk17u:jdk-17.0.9+7 In-Reply-To: References: Message-ID: On Thu, 12 Oct 2023 10:57:13 GMT, Roman Kennke wrote: > Let's merge the latest tag. This pull request has been closed without being integrated. ------------- PR: https://git.openjdk.org/lilliput-jdk17u/pull/58 From shade at openjdk.org Thu Oct 12 14:23:19 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 12 Oct 2023 14:23:19 GMT Subject: [lilliput-jdk21u:lilliput] RFR: 8317954: [Lilliput/JDK21] Make C2 LoadNKlassCompactHeader more robust [v3] In-Reply-To: <3ID3sBKu6Q7zHt087uVuVVS5_b2FfcZTn6EUk-zT13Y=.7b9d8adc-50fb-4d90-962d-26ac65c2a533@github.com> References: <3ID3sBKu6Q7zHt087uVuVVS5_b2FfcZTn6EUk-zT13Y=.7b9d8adc-50fb-4d90-962d-26ac65c2a533@github.com> Message-ID: On Thu, 12 Oct 2023 09:21:50 GMT, Roman Kennke wrote: >> Clean backport of https://github.com/openjdk/lilliput/pull/111. >> Lilliput's C2 code for generating LoadNKlass currently assumes that the disp of the incoming address is klass_offset_in_bytes. It then extracts the base register and loads from the mark_offset_in_bytes instead. >> Sometimes (apparently very rarely) it happens that C2 emits code that pre-adds obj+klass_offset into a register, and uses that as base, but with offset 0. In this case we would trip the assert or crash in release builds. >> >> - [x] specjvm derby (which triggered the bug) >> - [x] tier1 x86_64 +UCOH >> - [x] tier1 aarch64 +UCOH > > Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: > > Accept indexed address Marked as reviewed by shade (Reviewer). ------------- PR Review: https://git.openjdk.org/lilliput-jdk21u/pull/10#pullrequestreview-1674089390 From shade at openjdk.org Thu Oct 12 14:23:28 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 12 Oct 2023 14:23:28 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8317957: [Lilliput/JDK17] Make C2 LoadNKlassCompactHeader more robust [v4] In-Reply-To: References: <50-Ap0q9_Z9gTOK78Ozl4_htEZ_-J_xHf9q6w4njGzs=.a762a521-4565-4b1c-a899-af835d3c9b85@github.com> Message-ID: On Thu, 12 Oct 2023 09:24:36 GMT, Roman Kennke wrote: >> Backport of https://github.com/openjdk/lilliput/pull/111. I needed to extract the body into helper methods in order to match mainline version. Other than that, the changes are identical. >> >> Lilliput's C2 code for generating LoadNKlass currently assumes that the disp of the incoming address is klass_offset_in_bytes. It then extracts the base register and loads from the mark_offset_in_bytes instead. >> Sometimes (apparently very rarely) it happens that C2 emits code that pre-adds obj+klass_offset into a register, and uses that as base, but with offset 0. In this case we would trip the assert or crash in release builds. >> >> - [x] specjvm derby (which triggered the bug) >> - [x] tier1 x86_64 +UCOH >> - [x] tier1 aarch64 +UCOH > > Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: > > Accept indexed address Marked as reviewed by shade (Reviewer). ------------- PR Review: https://git.openjdk.org/lilliput-jdk17u/pull/57#pullrequestreview-1674090350 From rkennke at openjdk.org Thu Oct 12 14:26:15 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Thu, 12 Oct 2023 14:26:15 GMT Subject: [master] RFR: 8318011: [Lilliput] Fix CDS narrowKlass encoding Message-ID: With Lilliput, we need to store the correct narrowKlass in the archived Klass instances. For this, we need the ArchiveHeapWriter::precomputed_narrow_klass_shift. However, ArchiveHeapWriter is only available when building with INCLUDE_CDS_JAVA_HEAP, i.e. currently not with Windows. This field should be moved to ArchiveBuilder, so that we can access it even when INCLUDE_CDS_JAVA_HEAP is not enabled. ------------- Commit messages: - 8318011: [Lilliput] Fix CDS narrowKlass encoding Changes: https://git.openjdk.org/lilliput/pull/112/files Webrev: https://webrevs.openjdk.org/?repo=lilliput&pr=112&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8318011 Stats: 33 lines in 5 files changed: 12 ins; 15 del; 6 mod Patch: https://git.openjdk.org/lilliput/pull/112.diff Fetch: git fetch https://git.openjdk.org/lilliput.git pull/112/head:pull/112 PR: https://git.openjdk.org/lilliput/pull/112 From rkennke at openjdk.org Thu Oct 12 14:27:54 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Thu, 12 Oct 2023 14:27:54 GMT Subject: [master] Integrated: 8317812: [Lilliput] Make C2 LoadNKlassCompactHeader more robust In-Reply-To: <2wUyBmjDufL5zv3lK43C92iT4IuJMaNhndzCPYm8WBQ=.4892575e-9e50-4f25-81fa-446ec2e3cae2@github.com> References: <2wUyBmjDufL5zv3lK43C92iT4IuJMaNhndzCPYm8WBQ=.4892575e-9e50-4f25-81fa-446ec2e3cae2@github.com> Message-ID: On Tue, 10 Oct 2023 16:35:53 GMT, Roman Kennke wrote: > Lilliput's C2 code for generating LoadNKlass currently assumes that the disp of the incoming address is klass_offset_in_bytes. It then extracts the base register and loads from the mark_offset_in_bytes instead. > Sometimes (apparently very rarely) it happens that C2 emits code that pre-adds obj+klass_offset into a register, and uses that as base, but with offset 0. In this case we would trip the assert or crash in release builds. > > - [x] specjvm derby (which triggered the bug) > - [x] tier1 x86_64 +UCOH > - [x] tier1 aarch64 +UCOH This pull request has now been integrated. Changeset: 00f3d7ef Author: Roman Kennke URL: https://git.openjdk.org/lilliput/commit/00f3d7efffc0b31115b5c23ee8992340e5d8c14c Stats: 38 lines in 6 files changed: 25 ins; 2 del; 11 mod 8317812: [Lilliput] Make C2 LoadNKlassCompactHeader more robust Reviewed-by: shade ------------- PR: https://git.openjdk.org/lilliput/pull/111 From rkennke at openjdk.org Thu Oct 12 14:28:42 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Thu, 12 Oct 2023 14:28:42 GMT Subject: [lilliput-jdk17u:lilliput] RFR: Merge jdk17u:jdk-17.0.9+7 Message-ID: Let's merge the latest tag. This will hopefully fix GHA. ------------- Commit messages: - Fix build/duplicate definition of oopDesc::mark_acquire() - Merge tag 'jdk-17.0.9+7' into merge-jdk-17.0.9+7-2 - 8312555: Ideographic characters aren't stretched by AffineTransform.scale(2, 1) - 8299658: C1 compilation crashes in LinearScan::resolve_exception_edge - 8314960: Add Certigna Root CA - 2 - 8313262: C2: Sinking node may cause required cast to be dropped - 8314020: Print instruction blocks in byte units - 8313678: SymbolTable can leak Symbols during cleanup - 8313874: JNI NewWeakGlobalRef throws exception for null arg - Merge - ... and 348 more: https://git.openjdk.org/lilliput-jdk17u/compare/8c0c160f...0853cc30 The webrevs contain the adjustments done while merging with regards to each parent branch: - lilliput: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=59&range=00.0 - jdk17u:jdk-17.0.9+7: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=59&range=00.1 Changes: https://git.openjdk.org/lilliput-jdk17u/pull/59/files Stats: 315700 lines in 2856 files changed: 198947 ins; 93422 del; 23331 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/59.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/59/head:pull/59 PR: https://git.openjdk.org/lilliput-jdk17u/pull/59 From rkennke at openjdk.org Thu Oct 12 14:29:13 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Thu, 12 Oct 2023 14:29:13 GMT Subject: [lilliput-jdk21u:lilliput] Integrated: 8317954: [Lilliput/JDK21] Make C2 LoadNKlassCompactHeader more robust In-Reply-To: References: Message-ID: <0sCIQjQAfYyUBsg4rIHWmnIJmzCDxpt0iiDos7Lx98U=.c3405577-e307-4c29-a045-fddd8d0bbe0c@github.com> On Wed, 11 Oct 2023 13:15:38 GMT, Roman Kennke wrote: > Clean backport of https://github.com/openjdk/lilliput/pull/111. > Lilliput's C2 code for generating LoadNKlass currently assumes that the disp of the incoming address is klass_offset_in_bytes. It then extracts the base register and loads from the mark_offset_in_bytes instead. > Sometimes (apparently very rarely) it happens that C2 emits code that pre-adds obj+klass_offset into a register, and uses that as base, but with offset 0. In this case we would trip the assert or crash in release builds. > > - [x] specjvm derby (which triggered the bug) > - [x] tier1 x86_64 +UCOH > - [x] tier1 aarch64 +UCOH This pull request has now been integrated. Changeset: 6954ee33 Author: Roman Kennke URL: https://git.openjdk.org/lilliput-jdk21u/commit/6954ee334950f6173d33dd4c99b0a7d010492056 Stats: 38 lines in 6 files changed: 25 ins; 2 del; 11 mod 8317954: [Lilliput/JDK21] Make C2 LoadNKlassCompactHeader more robust Reviewed-by: shade ------------- PR: https://git.openjdk.org/lilliput-jdk21u/pull/10 From rkennke at openjdk.org Thu Oct 12 14:44:25 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Thu, 12 Oct 2023 14:44:25 GMT Subject: [lilliput-jdk17u:lilliput] RFR: Merge jdk17u:jdk-17.0.9+7 [v2] In-Reply-To: References: Message-ID: > Let's merge the latest tag. This will hopefully fix GHA. Roman Kennke has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 59 commits: - Fix build/duplicate definition of oopDesc::mark_acquire() - Merge tag 'jdk-17.0.9+7' into merge-jdk-17.0.9+7-2 Added tag jdk-17.0.9+7 for changeset a831b7aefb59 - 8314894: [Lilliput/JDK17] Revert changes in zRelocate, prevent ZGC with Lilliput Reviewed-by: shade - 8308411: [Lilliput/JDK17] Cherry-pick: 8283710: JVMTI: Use BitSet for object marking Reviewed-by: shade - 8314131: [Lilliput/JDK17] Make loadNKlassCompactHeaders not use a TEMP register Reviewed-by: shade - 8312606: [Lilliput/JDK17] Cherry-pick: 8276333: jdk/jfr/event/oldobject/TestLargeRootSet.java failed "assert(!contains(edge->reference())) failed: invariant" Reviewed-by: shade - 8308296: [Lilliput/JDK17] Cherry-pick: 8275415: Prepare Leak Profiler for Lilliput Reviewed-by: shade - 8312171: [Lilliput/JDK17] Fix oop array element alignment Reviewed-by: shade - 8312095: [Lilliput/JDK17] Reinstate use of BiasedLockingCounters Reviewed-by: shade - 8311866: [Lilliput/JDK17] Disallow accessing oop metadata vmStructs with +UCOH Reviewed-by: rkennke, stuefe - ... and 49 more: https://git.openjdk.org/lilliput-jdk17u/compare/a831b7ae...0853cc30 ------------- Changes: https://git.openjdk.org/lilliput-jdk17u/pull/59/files Webrev: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=59&range=01 Stats: 6801 lines in 202 files changed: 4817 ins; 1025 del; 959 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/59.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/59/head:pull/59 PR: https://git.openjdk.org/lilliput-jdk17u/pull/59 From rkennke at openjdk.org Thu Oct 12 14:44:28 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Thu, 12 Oct 2023 14:44:28 GMT Subject: [lilliput-jdk17u:lilliput] Integrated: Merge jdk17u:jdk-17.0.9+7 In-Reply-To: References: Message-ID: On Thu, 12 Oct 2023 11:16:08 GMT, Roman Kennke wrote: > Let's merge the latest tag. This will hopefully fix GHA. This pull request has now been integrated. Changeset: f1032a56 Author: Roman Kennke URL: https://git.openjdk.org/lilliput-jdk17u/commit/f1032a56cc0d2eadcedd9851540e0fa15afb891a Stats: 315700 lines in 2856 files changed: 198947 ins; 93422 del; 23331 mod Merge ------------- PR: https://git.openjdk.org/lilliput-jdk17u/pull/59 From rkennke at openjdk.org Thu Oct 12 14:51:40 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Thu, 12 Oct 2023 14:51:40 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8317957: [Lilliput/JDK17] Make C2 LoadNKlassCompactHeader more robust [v5] In-Reply-To: <50-Ap0q9_Z9gTOK78Ozl4_htEZ_-J_xHf9q6w4njGzs=.a762a521-4565-4b1c-a899-af835d3c9b85@github.com> References: <50-Ap0q9_Z9gTOK78Ozl4_htEZ_-J_xHf9q6w4njGzs=.a762a521-4565-4b1c-a899-af835d3c9b85@github.com> Message-ID: <3aVoKKsRkXO6EkbqeIDielDdXG7nWA1qaHZO6M56mTw=.1faff90f-b47e-463c-8964-826290e619c5@github.com> > Backport of https://github.com/openjdk/lilliput/pull/111. I needed to extract the body into helper methods in order to match mainline version. Other than that, the changes are identical. > > Lilliput's C2 code for generating LoadNKlass currently assumes that the disp of the incoming address is klass_offset_in_bytes. It then extracts the base register and loads from the mark_offset_in_bytes instead. > Sometimes (apparently very rarely) it happens that C2 emits code that pre-adds obj+klass_offset into a register, and uses that as base, but with offset 0. In this case we would trip the assert or crash in release builds. > > - [x] specjvm derby (which triggered the bug) > - [x] tier1 x86_64 +UCOH > - [x] tier1 aarch64 +UCOH Roman Kennke has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains six additional commits since the last revision: - Merge branch 'lilliput' into JDK-8317957 - Accept indexed address - Merge remote-tracking branch 'origin/JDK-8317957' into JDK-8317957 - Add missing includes - Fix scale decoding - 8317957: [Lilliput/JDK17] Make C2 LoadNKlassCompactHeader more robust ------------- Changes: - all: https://git.openjdk.org/lilliput-jdk17u/pull/57/files - new: https://git.openjdk.org/lilliput-jdk17u/pull/57/files/6aa35299..9591ebbf Webrevs: - full: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=57&range=04 - incr: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=57&range=03-04 Stats: 315700 lines in 2856 files changed: 198947 ins; 93422 del; 23331 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/57.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/57/head:pull/57 PR: https://git.openjdk.org/lilliput-jdk17u/pull/57 From rkennke at openjdk.org Thu Oct 12 14:54:24 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Thu, 12 Oct 2023 14:54:24 GMT Subject: [lilliput-jdk17u:lilliput] Integrated: 8317957: [Lilliput/JDK17] Make C2 LoadNKlassCompactHeader more robust In-Reply-To: <50-Ap0q9_Z9gTOK78Ozl4_htEZ_-J_xHf9q6w4njGzs=.a762a521-4565-4b1c-a899-af835d3c9b85@github.com> References: <50-Ap0q9_Z9gTOK78Ozl4_htEZ_-J_xHf9q6w4njGzs=.a762a521-4565-4b1c-a899-af835d3c9b85@github.com> Message-ID: <-d6A6_XaQXmHVjY4gKv1Rop6RLIvzlo9oPvFmOgMK2k=.ed96c8e3-8a7d-43d1-9fd5-0dba37bb0712@github.com> On Wed, 11 Oct 2023 13:28:20 GMT, Roman Kennke wrote: > Backport of https://github.com/openjdk/lilliput/pull/111. I needed to extract the body into helper methods in order to match mainline version. Other than that, the changes are identical. > > Lilliput's C2 code for generating LoadNKlass currently assumes that the disp of the incoming address is klass_offset_in_bytes. It then extracts the base register and loads from the mark_offset_in_bytes instead. > Sometimes (apparently very rarely) it happens that C2 emits code that pre-adds obj+klass_offset into a register, and uses that as base, but with offset 0. In this case we would trip the assert or crash in release builds. > > - [x] specjvm derby (which triggered the bug) > - [x] tier1 x86_64 +UCOH > - [x] tier1 aarch64 +UCOH This pull request has now been integrated. Changeset: ad69ec55 Author: Roman Kennke URL: https://git.openjdk.org/lilliput-jdk17u/commit/ad69ec552761e5991ec2ebe6ec2f5a4479b9e21e Stats: 82 lines in 6 files changed: 56 ins; 20 del; 6 mod 8317957: [Lilliput/JDK17] Make C2 LoadNKlassCompactHeader more robust Reviewed-by: shade ------------- PR: https://git.openjdk.org/lilliput-jdk17u/pull/57 From shade at openjdk.org Thu Oct 12 15:27:57 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Thu, 12 Oct 2023 15:27:57 GMT Subject: [master] RFR: 8318011: [Lilliput] Fix CDS narrowKlass encoding In-Reply-To: References: Message-ID: <-Csr-fm-qRehmUfJIQCTXDKOxqQhgALmdTUMLy77lfs=.04040979-7d3f-4ebb-98ad-8324bc9e409f@github.com> On Thu, 12 Oct 2023 12:44:36 GMT, Roman Kennke wrote: > With Lilliput, we need to store the correct narrowKlass in the archived Klass instances. For this, we need the ArchiveHeapWriter::precomputed_narrow_klass_shift. However, ArchiveHeapWriter is only available when building with INCLUDE_CDS_JAVA_HEAP, i.e. currently not with Windows. This field should be moved to ArchiveBuilder, so that we can access it even when INCLUDE_CDS_JAVA_HEAP is not enabled. Marked as reviewed by shade (Committer). ------------- PR Review: https://git.openjdk.org/lilliput/pull/112#pullrequestreview-1674470254 From stuefe at openjdk.org Fri Oct 13 09:44:48 2023 From: stuefe at openjdk.org (Thomas Stuefe) Date: Fri, 13 Oct 2023 09:44:48 GMT Subject: [master] RFR: 8318011: [Lilliput] Fix CDS narrowKlass encoding In-Reply-To: References: Message-ID: On Thu, 12 Oct 2023 12:44:36 GMT, Roman Kennke wrote: > With Lilliput, we need to store the correct narrowKlass in the archived Klass instances. For this, we need the ArchiveHeapWriter::precomputed_narrow_klass_shift. However, ArchiveHeapWriter is only available when building with INCLUDE_CDS_JAVA_HEAP, i.e. currently not with Windows. This field should be moved to ArchiveBuilder, so that we can access it even when INCLUDE_CDS_JAVA_HEAP is not enabled. Good. Proposal for comment change inline. src/hotspot/share/cds/archiveBuilder.hpp line 102: > 100: // runtime we put both regions adjacent to each other. Therefore, runtime Klass range size < 4G. > 101: // Since nKlass itself is 32 bit, our encoding range len is 4G, and since we set the base directly > 102: // at mapping start, these 4G are enough. Therefore, we don't need to shift at all (shift=0). I would reformulate the first sentence. I spend a lot of cycles on the original text, and its not fully correct anymore. Proposal: The archive contains pre-computed narrow Klass IDs in two places: - in the header of archived java objects (only if the archive contains java heap portions) - within the prototype markword of archived Klass structures. These narrow Klass ids have been computed at dump time with the following scheme: blalblabla ------------- Marked as reviewed by stuefe (Committer). PR Review: https://git.openjdk.org/lilliput/pull/112#pullrequestreview-1676124813 PR Review Comment: https://git.openjdk.org/lilliput/pull/112#discussion_r1358036362 From rkennke at openjdk.org Fri Oct 13 12:29:00 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Fri, 13 Oct 2023 12:29:00 GMT Subject: [lilliput-jdk17u:lilliput] RFR: Merge jdk17u:jdk-17.0.9+7 [v2] In-Reply-To: References: Message-ID: > Let's merge the latest tag. Roman Kennke has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 51 commits: - Merge tag 'jdk-17.0.9+7' into merge-jdk-17.0.9+7 Added tag jdk-17.0.9+7 for changeset a831b7aefb59 - 8311866: [Lilliput/JDK17] Disallow accessing oop metadata vmStructs with +UCOH Reviewed-by: rkennke, stuefe - 8310944: [Lilliput/JDK17] Streamline and cleanup GC code Reviewed-by: shade - 8310742: [Lilliput/JDK17] Revert JVMCI _metadata field removal Reviewed-by: shade - 8310733: [Lilliput/JDK17] Enter object_iterate_impl() RESOLVE path only when +UCOH Reviewed-by: shade - 8310744: [Lilliput/JDK17] Revert C1_MacroAssembler::initialize_header removal of BiasedLocking path Reviewed-by: rkennke - 8310715: [Lilliput/JDK17] Revert more non-Lilliput test adjustments Reviewed-by: rkennke - 8310670: [Lilliput/JDK17] Add more tests to Lilliput ProblemList Reviewed-by: rkennke - 8310662: [Lilliput/JDK17] Fix OptoRuntime::new_array_nozero_C Reviewed-by: shade - 8310642: [Lilliput/JDK17] Remove unnecessary check in G1ParScanThreadState Reviewed-by: shade - ... and 41 more: https://git.openjdk.org/lilliput-jdk17u/compare/a831b7ae...d4f59ab6 ------------- Changes: https://git.openjdk.org/lilliput-jdk17u/pull/58/files Webrev: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=58&range=01 Stats: 6077 lines in 192 files changed: 4555 ins; 584 del; 938 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/58.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/58/head:pull/58 PR: https://git.openjdk.org/lilliput-jdk17u/pull/58 From rkennke at openjdk.org Fri Oct 13 13:28:00 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Fri, 13 Oct 2023 13:28:00 GMT Subject: [master] RFR: 8318011: [Lilliput] Fix CDS narrowKlass encoding [v2] In-Reply-To: References: Message-ID: > With Lilliput, we need to store the correct narrowKlass in the archived Klass instances. For this, we need the ArchiveHeapWriter::precomputed_narrow_klass_shift. However, ArchiveHeapWriter is only available when building with INCLUDE_CDS_JAVA_HEAP, i.e. currently not with Windows. This field should be moved to ArchiveBuilder, so that we can access it even when INCLUDE_CDS_JAVA_HEAP is not enabled. Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: Improve comment ------------- Changes: - all: https://git.openjdk.org/lilliput/pull/112/files - new: https://git.openjdk.org/lilliput/pull/112/files/331a7e5c..285ec513 Webrevs: - full: https://webrevs.openjdk.org/?repo=lilliput&pr=112&range=01 - incr: https://webrevs.openjdk.org/?repo=lilliput&pr=112&range=00-01 Stats: 4 lines in 1 file changed: 2 ins; 0 del; 2 mod Patch: https://git.openjdk.org/lilliput/pull/112.diff Fetch: git fetch https://git.openjdk.org/lilliput.git pull/112/head:pull/112 PR: https://git.openjdk.org/lilliput/pull/112 From rkennke at openjdk.org Mon Oct 16 11:33:21 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Mon, 16 Oct 2023 11:33:21 GMT Subject: [master] Integrated: 8318011: [Lilliput] Fix CDS narrowKlass encoding In-Reply-To: References: Message-ID: <755kSO-9RohZD_sTDYGHaw4yw2crYYftgRRO35LgV30=.1bb9be18-dce9-49e7-bfa3-6138ba5ff847@github.com> On Thu, 12 Oct 2023 12:44:36 GMT, Roman Kennke wrote: > With Lilliput, we need to store the correct narrowKlass in the archived Klass instances. For this, we need the ArchiveHeapWriter::precomputed_narrow_klass_shift. However, ArchiveHeapWriter is only available when building with INCLUDE_CDS_JAVA_HEAP, i.e. currently not with Windows. This field should be moved to ArchiveBuilder, so that we can access it even when INCLUDE_CDS_JAVA_HEAP is not enabled. This pull request has now been integrated. Changeset: ef73f755 Author: Roman Kennke URL: https://git.openjdk.org/lilliput/commit/ef73f7553f046b2d7a9f847d77cfe539db45ecbf Stats: 35 lines in 5 files changed: 14 ins; 15 del; 6 mod 8318011: [Lilliput] Fix CDS narrowKlass encoding Reviewed-by: shade, stuefe ------------- PR: https://git.openjdk.org/lilliput/pull/112 From rkennke at openjdk.org Mon Oct 16 16:47:44 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Mon, 16 Oct 2023 16:47:44 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8318172: [Lilliput/JDK17] Disable Lilliput in TestZGCWithCDS Message-ID: Lilliput is not supported by ZGC, and when running with both -XX:+UseZGC and -XX:+UseCompactObjectHeaders, the latter is disabled with a warning. Unfortunately, this breaks the test TestZGCWithCDS, because it would generate a CDS archive with SerialGC - with -XX:+UseCompactObjectHeaders - and then attempts to load it with ZGC -which disables UseCompactObjectHeaders, which makes CDS archives incompatible. Testing: - [x] runtime/cds/appcds/TestZGCWithCDS.java +UCOH - [x] runtime/cds/appcds/TestZGCWithCDS.java -UCOH - [x] runtime/cds/appcds/TestZGCWithCDS.java default ------------- Commit messages: - 8318172: [Lilliput/JDK17] Disable Lilliput in TestZGCWithCDS Changes: https://git.openjdk.org/lilliput-jdk17u/pull/60/files Webrev: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=60&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8318172 Stats: 9 lines in 1 file changed: 9 ins; 0 del; 0 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/60.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/60/head:pull/60 PR: https://git.openjdk.org/lilliput-jdk17u/pull/60 From rkennke at openjdk.org Mon Oct 16 16:53:06 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Mon, 16 Oct 2023 16:53:06 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8318172: [Lilliput/JDK17] Disable Lilliput in TestZGCWithCDS [v2] In-Reply-To: References: Message-ID: > Lilliput is not supported by ZGC, and when running with both -XX:+UseZGC and -XX:+UseCompactObjectHeaders, the latter is disabled with a warning. Unfortunately, this breaks the test TestZGCWithCDS, because it would generate a CDS archive with SerialGC - with -XX:+UseCompactObjectHeaders - and then attempts to load it with ZGC -which disables UseCompactObjectHeaders, which makes CDS archives incompatible. > > Testing: > - [x] runtime/cds/appcds/TestZGCWithCDS.java +UCOH > - [x] runtime/cds/appcds/TestZGCWithCDS.java -UCOH > - [x] runtime/cds/appcds/TestZGCWithCDS.java default Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: Unlock experimental VM options ------------- Changes: - all: https://git.openjdk.org/lilliput-jdk17u/pull/60/files - new: https://git.openjdk.org/lilliput-jdk17u/pull/60/files/baa24438..712602ea Webrevs: - full: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=60&range=01 - incr: https://webrevs.openjdk.org/?repo=lilliput-jdk17u&pr=60&range=00-01 Stats: 9 lines in 1 file changed: 9 ins; 0 del; 0 mod Patch: https://git.openjdk.org/lilliput-jdk17u/pull/60.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk17u.git pull/60/head:pull/60 PR: https://git.openjdk.org/lilliput-jdk17u/pull/60 From shade at openjdk.org Mon Oct 16 17:52:58 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Mon, 16 Oct 2023 17:52:58 GMT Subject: [lilliput-jdk17u:lilliput] RFR: 8318172: [Lilliput/JDK17] Disable Lilliput in TestZGCWithCDS [v2] In-Reply-To: References: Message-ID: On Mon, 16 Oct 2023 16:53:06 GMT, Roman Kennke wrote: >> Lilliput is not supported by ZGC, and when running with both -XX:+UseZGC and -XX:+UseCompactObjectHeaders, the latter is disabled with a warning. Unfortunately, this breaks the test TestZGCWithCDS, because it would generate a CDS archive with SerialGC - with -XX:+UseCompactObjectHeaders - and then attempts to load it with ZGC -which disables UseCompactObjectHeaders, which makes CDS archives incompatible. >> >> Testing: >> - [x] runtime/cds/appcds/TestZGCWithCDS.java +UCOH >> - [x] runtime/cds/appcds/TestZGCWithCDS.java -UCOH >> - [x] runtime/cds/appcds/TestZGCWithCDS.java default > > Roman Kennke has updated the pull request incrementally with one additional commit since the last revision: > > Unlock experimental VM options Marked as reviewed by shade (Reviewer). ------------- PR Review: https://git.openjdk.org/lilliput-jdk17u/pull/60#pullrequestreview-1680628182 From rkennke at openjdk.org Tue Oct 17 11:29:44 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Tue, 17 Oct 2023 11:29:44 GMT Subject: [master] RFR: Merge jdk:jdk-22+19 Message-ID: Let's merge latest upstream tag jdk-22+19 ------------- Commit messages: - Merge tag 'jdk-22+19' into merge-jdk-22+19 - 8317730: Change byte_size to return size_t - 8261894: Remove support for UseSHM - 8315505: CompileTask timestamp printed can overflow - 8317706: Exclude java/awt/Graphics2D/DrawString/RotTransText.java on linux - 8317711: Exclude gtest/GTestWrapper.java on AIX - 8317705: ProblemList sun/tools/jstat/jstatLineCountsX.sh on linux-ppc64le and aix due to JDK-8248691 - 8314199: Initial size PBEKeyFactory#validTypes is not up-to-date - 8316233: VirtualThreadStart events should not be thread-filtered - 8316447: 8 sun/management/jmxremote tests ignore VM flags - ... and 676 more: https://git.openjdk.org/lilliput/compare/ef73f755...b7cfac85 The webrevs contain the adjustments done while merging with regards to each parent branch: - master: https://webrevs.openjdk.org/?repo=lilliput&pr=113&range=00.0 - jdk:jdk-22+19: https://webrevs.openjdk.org/?repo=lilliput&pr=113&range=00.1 Changes: https://git.openjdk.org/lilliput/pull/113/files Stats: 142821 lines in 3886 files changed: 68519 ins; 29206 del; 45096 mod Patch: https://git.openjdk.org/lilliput/pull/113.diff Fetch: git fetch https://git.openjdk.org/lilliput.git pull/113/head:pull/113 PR: https://git.openjdk.org/lilliput/pull/113 From rkennke at openjdk.org Tue Oct 17 11:59:24 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Tue, 17 Oct 2023 11:59:24 GMT Subject: [master] RFR: Merge jdk:jdk-22+19 [v2] In-Reply-To: References: Message-ID: > Let's merge latest upstream tag jdk-22+19 Roman Kennke has refreshed the contents of this pull request, and previous commits have been removed. The incremental views will show differences compared to the previous content of the PR. The pull request contains one new commit since the last revision: Merge tag 'jdk-22+19' into merge-jdk-22+19 Added tag jdk-22+19 for changeset fb4098ff ------------- Changes: - all: https://git.openjdk.org/lilliput/pull/113/files - new: https://git.openjdk.org/lilliput/pull/113/files/b7cfac85..facce637 Webrevs: - full: https://webrevs.openjdk.org/?repo=lilliput&pr=113&range=01 - incr: https://webrevs.openjdk.org/?repo=lilliput&pr=113&range=00-01 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod Patch: https://git.openjdk.org/lilliput/pull/113.diff Fetch: git fetch https://git.openjdk.org/lilliput.git pull/113/head:pull/113 PR: https://git.openjdk.org/lilliput/pull/113 From rkennke at openjdk.org Tue Oct 17 15:51:07 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Tue, 17 Oct 2023 15:51:07 GMT Subject: [master] Integrated: Merge jdk:jdk-22+19 In-Reply-To: References: Message-ID: On Tue, 17 Oct 2023 11:20:50 GMT, Roman Kennke wrote: > Let's merge latest upstream tag jdk-22+19 This pull request has now been integrated. Changeset: 255d4a38 Author: Roman Kennke URL: https://git.openjdk.org/lilliput/commit/255d4a38b73ef9e6c13f8fb279d394d71243e6fc Stats: 142822 lines in 3886 files changed: 68519 ins; 29206 del; 45097 mod Merge jdk:jdk-22+19 ------------- PR: https://git.openjdk.org/lilliput/pull/113 From rkennke at openjdk.org Tue Oct 31 09:40:23 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Tue, 31 Oct 2023 09:40:23 GMT Subject: [master] RFR: 8319135: [Lilliput] Fix objArrayOop gtest Message-ID: The objArrayOop gtest is broken with Lilliput. The test checks the size of obj-arrays under various settings (coops, ccp) and different alignments, but it does not consider UseCompactObjectHeaders, yet. The change adds handling of UseCompactObjectHeaders. Testing: - [x] gtest:objArrayOop (+UCOH) - [x] gtest:objArrayOop (-UCOH) ------------- Commit messages: - Fix build - 8319135: [Lilliput] Fix objArrayOop gtest Changes: https://git.openjdk.org/lilliput/pull/114/files Webrev: https://webrevs.openjdk.org/?repo=lilliput&pr=114&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8319135 Stats: 29 lines in 1 file changed: 12 ins; 0 del; 17 mod Patch: https://git.openjdk.org/lilliput/pull/114.diff Fetch: git fetch https://git.openjdk.org/lilliput.git pull/114/head:pull/114 PR: https://git.openjdk.org/lilliput/pull/114 From rkennke at openjdk.org Tue Oct 31 13:27:21 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Tue, 31 Oct 2023 13:27:21 GMT Subject: [lilliput-jdk21u:lilliput] RFR: 8319163: [Lilliput/JDK21] Fix arrayOopDesc gtest Message-ID: In Lilliput/JDK21 the arrayOopDesc gtest is broken. It checks the base-offset of all array types with different settings of coops and ccp, but doesn't check UseCompactObjectHeaders. The change brings the arrayOopDesc gtest in sync with what is in the lilliput mainline and lilliput-jdk17 repos. Testing: - [x] gtest:arrayOopDesc (+UCOH) - [x] gtest:arrayOopDesc (-UCOH) ------------- Commit messages: - 8319163: [Lilliput/JDK21] Fix arrayOopDesc gtest Changes: https://git.openjdk.org/lilliput-jdk21u/pull/11/files Webrev: https://webrevs.openjdk.org/?repo=lilliput-jdk21u&pr=11&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8319163 Stats: 12 lines in 1 file changed: 11 ins; 0 del; 1 mod Patch: https://git.openjdk.org/lilliput-jdk21u/pull/11.diff Fetch: git fetch https://git.openjdk.org/lilliput-jdk21u.git pull/11/head:pull/11 PR: https://git.openjdk.org/lilliput-jdk21u/pull/11 From rkennke at openjdk.org Tue Oct 31 14:10:14 2023 From: rkennke at openjdk.org (Roman Kennke) Date: Tue, 31 Oct 2023 14:10:14 GMT Subject: [lilliput-jdk17u:lilliput] Integrated: 8318172: [Lilliput/JDK17] Disable Lilliput in TestZGCWithCDS In-Reply-To: References: Message-ID: <-q5auSY4bJ6LiMAvwXBObVD77khKBUNMaUVmGEEHEZc=.351ed69d-d49e-4c3e-9224-6b103fa1eabd@github.com> On Mon, 16 Oct 2023 16:40:00 GMT, Roman Kennke wrote: > Lilliput is not supported by ZGC, and when running with both -XX:+UseZGC and -XX:+UseCompactObjectHeaders, the latter is disabled with a warning. Unfortunately, this breaks the test TestZGCWithCDS, because it would generate a CDS archive with SerialGC - with -XX:+UseCompactObjectHeaders - and then attempts to load it with ZGC -which disables UseCompactObjectHeaders, which makes CDS archives incompatible. > > Testing: > - [x] runtime/cds/appcds/TestZGCWithCDS.java +UCOH > - [x] runtime/cds/appcds/TestZGCWithCDS.java -UCOH > - [x] runtime/cds/appcds/TestZGCWithCDS.java default This pull request has now been integrated. Changeset: 1e3f0fc5 Author: Roman Kennke URL: https://git.openjdk.org/lilliput-jdk17u/commit/1e3f0fc5eac8854a0b7931500f9b8d5d98b16efa Stats: 18 lines in 1 file changed: 18 ins; 0 del; 0 mod 8318172: [Lilliput/JDK17] Disable Lilliput in TestZGCWithCDS Reviewed-by: shade ------------- PR: https://git.openjdk.org/lilliput-jdk17u/pull/60