From mcimadamore at openjdk.java.net Wed Dec 1 11:32:00 2021 From: mcimadamore at openjdk.java.net (Maurizio Cimadamore) Date: Wed, 1 Dec 2021 11:32:00 GMT Subject: [foreign-memaccess+abi] RFR: 8277945: Use snippets in jdk.incubator.foreign API documentation In-Reply-To: References: Message-ID: On Mon, 29 Nov 2021 16:51:06 GMT, Julia Boes wrote: > This change replaces `
{@code ...}
` blocks with the new `@snippet` tag. I've tried the PR locally, and generated the javadoc. It looks beautiful. I left some comments on snippets which aren't really Java code, and which, I think, don't look too good in the snippet format. At the very least we should not treat them as lang=java snippet - but I wonder if the javadoc was better for these formulas in the way it was before. src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemoryLayout.java line 333: > 331: * > 332: * {@snippet : > 333: * offset = c_1 + c_2 + ... + c_m + (x_1 * s_1) + (x_2 * s_2) + ... + (x_n * s_n) not 100% sold on this being a snippet. Looking at it with javadoc, we have the "copy" button - but this is not a piece of code in any way (at the very least the language should not be java) src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemoryLayout.java line 383: > 381: *

The final offset returned by the method handle is computed as follows: > 382: * > 383: * {@snippet : Same here - this is not a Java snippet src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemoryLayout.java line 416: > 414: * > 415: * {@snippet : > 416: * address = base + offset Same here - not a Java snippet src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemoryLayout.java line 424: > 422: * > 423: * {@snippet : > 424: * offset = c_1 + c_2 + ... + c_m + (x_1 * s_1) + (x_2 * s_2) + ... + (x_n * s_n) Same here - not a Java snippet src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemoryLayout.java line 461: > 459: * > 460: * {@snippet : > 461: * bitOffset = c_1 + c_2 + ... + c_m + (x_1 * s_1) + (x_2 * s_2) + ... + (x_n * s_n) Same here - not a Java snippet src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemoryLayout.java line 602: > 600: * formula: > 601: * {@snippet : > 602: * E * (S + I * F) Same here - not a Java snippet src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/package-info.java line 152: > 150: * > 151: * {@snippet : > 152: * ... I think we can drop the leading `...` here (since we're looking at this) ------------- PR: https://git.openjdk.java.net/panama-foreign/pull/621 From jboes at openjdk.java.net Wed Dec 1 16:00:10 2021 From: jboes at openjdk.java.net (Julia Boes) Date: Wed, 1 Dec 2021 16:00:10 GMT Subject: [foreign-memaccess+abi] RFR: 8277945: Use snippets in jdk.incubator.foreign API documentation [v2] In-Reply-To: References: Message-ID: > This change replaces `

{@code ...}
` blocks with the new `@snippet` tag. Julia Boes has updated the pull request incrementally with one additional commit since the last revision: revert non Java snippets ------------- Changes: - all: https://git.openjdk.java.net/panama-foreign/pull/621/files - new: https://git.openjdk.java.net/panama-foreign/pull/621/files/78313ef0..fde32562 Webrevs: - full: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=621&range=01 - incr: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=621&range=00-01 Stats: 15 lines in 2 files changed: 2 ins; 1 del; 12 mod Patch: https://git.openjdk.java.net/panama-foreign/pull/621.diff Fetch: git fetch https://git.openjdk.java.net/panama-foreign pull/621/head:pull/621 PR: https://git.openjdk.java.net/panama-foreign/pull/621 From jboes at openjdk.java.net Wed Dec 1 16:00:13 2021 From: jboes at openjdk.java.net (Julia Boes) Date: Wed, 1 Dec 2021 16:00:13 GMT Subject: [foreign-memaccess+abi] RFR: 8277945: Use snippets in jdk.incubator.foreign API documentation [v2] In-Reply-To: References: Message-ID: On Wed, 1 Dec 2021 11:21:10 GMT, Maurizio Cimadamore wrote: >> Julia Boes has updated the pull request incrementally with one additional commit since the last revision: >> >> revert non Java snippets > > src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemoryLayout.java line 333: > >> 331: * >> 332: * {@snippet : >> 333: * offset = c_1 + c_2 + ... + c_m + (x_1 * s_1) + (x_2 * s_2) + ... + (x_n * s_n) > > not 100% sold on this being a snippet. Looking at it with javadoc, we have the "copy" button - but this is not a piece of code in any way (at the very least the language should not be java) Right, I reverted the change for any non Java snippet. ------------- PR: https://git.openjdk.java.net/panama-foreign/pull/621 From jboes at openjdk.java.net Wed Dec 1 16:59:12 2021 From: jboes at openjdk.java.net (Julia Boes) Date: Wed, 1 Dec 2021 16:59:12 GMT Subject: [foreign-memaccess+abi] RFR: 8277945: Use snippets in jdk.incubator.foreign API documentation [v3] In-Reply-To: References: Message-ID: > This change replaces `
{@code ...}
` blocks with the new `@snippet` tag. Julia Boes has updated the pull request incrementally with one additional commit since the last revision: add lang attribute ------------- Changes: - all: https://git.openjdk.java.net/panama-foreign/pull/621/files - new: https://git.openjdk.java.net/panama-foreign/pull/621/files/fde32562..05a3227d Webrevs: - full: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=621&range=02 - incr: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=621&range=01-02 Stats: 60 lines in 10 files changed: 0 ins; 0 del; 60 mod Patch: https://git.openjdk.java.net/panama-foreign/pull/621.diff Fetch: git fetch https://git.openjdk.java.net/panama-foreign pull/621/head:pull/621 PR: https://git.openjdk.java.net/panama-foreign/pull/621 From jboes at openjdk.java.net Wed Dec 1 16:59:14 2021 From: jboes at openjdk.java.net (Julia Boes) Date: Wed, 1 Dec 2021 16:59:14 GMT Subject: [foreign-memaccess+abi] RFR: 8277945: Use snippets in jdk.incubator.foreign API documentation In-Reply-To: References: <-Bwc8Gw5yX2p11tqGVtGt6SKBHcEsQgp1pA4vvPW6cU=.1029238e-5ee8-436d-99c4-218c279f746d@github.com> Message-ID: <0ghRBDV0YNmOURvRHJNaGDDDkj3dc5AcDK-PG_j29ZQ=.84780858-241c-4978-bf13-4ab642d810dd@github.com> On Tue, 30 Nov 2021 10:24:22 GMT, Julia Boes wrote: > > Should we add lang=java to snippets? That'll help in syntax colouring using third-party js+css. > > For inline snippets, the default value for lang is java, so we can omit it. A correction here: the default value is not carried over to HTML, so to get syntax highlighting to work the lang attribute needs to be set explicitly. ------------- PR: https://git.openjdk.java.net/panama-foreign/pull/621 From mcimadamore at openjdk.java.net Wed Dec 1 17:06:52 2021 From: mcimadamore at openjdk.java.net (Maurizio Cimadamore) Date: Wed, 1 Dec 2021 17:06:52 GMT Subject: [foreign-memaccess+abi] RFR: 8277945: Use snippets in jdk.incubator.foreign API documentation [v3] In-Reply-To: References: Message-ID: <4Yu-KMP7UgzYPS4QeDGsK_2pbK79hIGGYdlRZpd6Xsg=.30b8b5eb-bbbc-4819-a903-31e100b2f138@github.com> On Wed, 1 Dec 2021 16:59:12 GMT, Julia Boes wrote: >> This change replaces `
{@code ...}
` blocks with the new `@snippet` tag. > > Julia Boes has updated the pull request incrementally with one additional commit since the last revision: > > add lang attribute Looks good! ------------- Marked as reviewed by mcimadamore (Committer). PR: https://git.openjdk.java.net/panama-foreign/pull/621 From jboes at openjdk.java.net Wed Dec 1 17:24:06 2021 From: jboes at openjdk.java.net (Julia Boes) Date: Wed, 1 Dec 2021 17:24:06 GMT Subject: [foreign-memaccess+abi] RFR: 8277945: Use snippets in jdk.incubator.foreign API documentation [v4] In-Reply-To: References: Message-ID: <9LtARtHdIief6yjy2MaCtOWHSgpHgaw707mGheIRRZs=.59815761-8a9d-4391-9ec7-2001a3d76b66@github.com> > This change replaces `
{@code ...}
` blocks with the new `@snippet` tag. Julia Boes has updated the pull request incrementally with one additional commit since the last revision: use lang=c for C snippet ------------- Changes: - all: https://git.openjdk.java.net/panama-foreign/pull/621/files - new: https://git.openjdk.java.net/panama-foreign/pull/621/files/05a3227d..3c5533b3 Webrevs: - full: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=621&range=03 - incr: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=621&range=02-03 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod Patch: https://git.openjdk.java.net/panama-foreign/pull/621.diff Fetch: git fetch https://git.openjdk.java.net/panama-foreign pull/621/head:pull/621 PR: https://git.openjdk.java.net/panama-foreign/pull/621 From sundar at openjdk.java.net Wed Dec 1 17:27:48 2021 From: sundar at openjdk.java.net (Athijegannathan Sundararajan) Date: Wed, 1 Dec 2021 17:27:48 GMT Subject: [foreign-memaccess+abi] RFR: 8277945: Use snippets in jdk.incubator.foreign API documentation [v4] In-Reply-To: <9LtARtHdIief6yjy2MaCtOWHSgpHgaw707mGheIRRZs=.59815761-8a9d-4391-9ec7-2001a3d76b66@github.com> References: <9LtARtHdIief6yjy2MaCtOWHSgpHgaw707mGheIRRZs=.59815761-8a9d-4391-9ec7-2001a3d76b66@github.com> Message-ID: On Wed, 1 Dec 2021 17:24:06 GMT, Julia Boes wrote: >> This change replaces `
{@code ...}
` blocks with the new `@snippet` tag. > > Julia Boes has updated the pull request incrementally with one additional commit since the last revision: > > use lang=c for C snippet Marked as reviewed by sundar (Committer). ------------- PR: https://git.openjdk.java.net/panama-foreign/pull/621 From duke at openjdk.java.net Thu Dec 2 10:42:22 2021 From: duke at openjdk.java.net (duke) Date: Thu, 2 Dec 2021 10:42:22 GMT Subject: git: openjdk/panama-foreign: foreign-jextract: 2 new changesets Message-ID: <9d173074-4519-445a-8bf2-e480613594df@openjdk.org> Changeset: 43478b9b Author: Julia Boes Committer: Maurizio Cimadamore Date: 2021-12-02 10:40:07 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/43478b9bdbeb2c827b89ae4ac369805bb0641fd6 8277945: Use snippets in jdk.incubator.foreign API documentation Reviewed-by: psandoz, mcimadamore, sundar ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/CLinker.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemoryAddress.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemoryHandles.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemoryLayout.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemorySegment.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/ResourceScope.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/SegmentAllocator.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/SequenceLayout.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/ValueLayout.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/package-info.java Changeset: 8e894fa7 Author: duke Date: 2021-12-02 10:41:27 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8e894fa75e9fe2cf61cb85c677614d8f03227ad8 Automatic merge of foreign-memaccess+abi into foreign-jextract From jboes at openjdk.java.net Thu Dec 2 10:43:38 2021 From: jboes at openjdk.java.net (Julia Boes) Date: Thu, 2 Dec 2021 10:43:38 GMT Subject: [foreign-memaccess+abi] Integrated: 8277945: Use snippets in jdk.incubator.foreign API documentation In-Reply-To: References: Message-ID: On Mon, 29 Nov 2021 16:51:06 GMT, Julia Boes wrote: > This change replaces `
{@code ...}
` blocks with the new `@snippet` tag. This pull request has now been integrated. Changeset: 43478b9b Author: Julia Boes Committer: Maurizio Cimadamore URL: https://git.openjdk.java.net/panama-foreign/commit/43478b9bdbeb2c827b89ae4ac369805bb0641fd6 Stats: 291 lines in 10 files changed: 2 ins; 1 del; 288 mod 8277945: Use snippets in jdk.incubator.foreign API documentation Reviewed-by: psandoz, mcimadamore, sundar ------------- PR: https://git.openjdk.java.net/panama-foreign/pull/621 From maurizio.cimadamore at oracle.com Thu Dec 2 11:11:55 2021 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Thu, 2 Dec 2021 11:11:55 +0000 Subject: CFV: New panama Committer: Julia Boes Message-ID: <9193507e-231f-c039-d89d-f301afc912ee@oracle.com> I hereby nominate Julia Boes (openjdk id: jboes) to Committer role in Project Panama. Julia is a member of the core-libs team who's been working in many areas (e.g. JEP 408 [3]), and has already helped us by contributing to the Panama foreign API (see below). She will help us transitioning the API from incubation to preview. Votes are due by December, 16, 2021. Only current panama Committers [1] are eligible to vote on this nomination. Votes must be cast in the open by replying to this mailing list. For Lazy Consensus voting instructions, see [2]. Best regards, Maurizio Cimadamore [1] http://openjdk.java.net/census#panama [2] http://openjdk.java.net/projects#committer-vote [3] https://openjdk.java.net/jeps/408 Julia's Panama PRs: https://git.openjdk.java.net/panama-foreign/pull/587 https://git.openjdk.java.net/panama-foreign/pull/585 https://git.openjdk.java.net/panama-foreign/pull/602 https://git.openjdk.java.net/panama-foreign/pull/621 From james.laskey at oracle.com Thu Dec 2 11:16:38 2021 From: james.laskey at oracle.com (Jim Laskey) Date: Thu, 2 Dec 2021 11:16:38 +0000 Subject: CFV: New panama Committer: Julia Boes In-Reply-To: <9193507e-231f-c039-d89d-f301afc912ee@oracle.com> References: <9193507e-231f-c039-d89d-f301afc912ee@oracle.com> Message-ID: <0D5F6200-76BD-46CD-AB62-8B5806D24F2E@oracle.com> Vote: yes ?? > On Dec 2, 2021, at 7:12 AM, Maurizio Cimadamore wrote: > > ?I hereby nominate Julia Boes (openjdk id: jboes) to Committer role in Project Panama. > > Julia is a member of the core-libs team who's been working in many areas (e.g. JEP 408 [3]), and has already helped us by contributing to the Panama foreign API (see below). She will help us transitioning the API from incubation to preview. > > Votes are due by December, 16, 2021. > > Only current panama Committers [1] are eligible to vote on this nomination. Votes must be cast in the open by replying to this mailing list. > > For Lazy Consensus voting instructions, see [2]. > > Best regards, > Maurizio Cimadamore > > [1] http://openjdk.java.net/census#panama > [2] http://openjdk.java.net/projects#committer-vote > [3] https://openjdk.java.net/jeps/408 > > Julia's Panama PRs: > > https://git.openjdk.java.net/panama-foreign/pull/587 > https://git.openjdk.java.net/panama-foreign/pull/585 > https://git.openjdk.java.net/panama-foreign/pull/602 > https://git.openjdk.java.net/panama-foreign/pull/621 > > > From sundararajan.athijegannathan at oracle.com Thu Dec 2 13:58:17 2021 From: sundararajan.athijegannathan at oracle.com (Sundararajan Athijegannathan) Date: Thu, 2 Dec 2021 13:58:17 +0000 Subject: CFV: New panama Committer: Julia Boes In-Reply-To: <0D5F6200-76BD-46CD-AB62-8B5806D24F2E@oracle.com> References: <9193507e-231f-c039-d89d-f301afc912ee@oracle.com> <0D5F6200-76BD-46CD-AB62-8B5806D24F2E@oracle.com> Message-ID: Vote: yes ________________________________ From: panama-dev on behalf of Jim Laskey Sent: 02 December 2021 16:46 To: Maurizio Cimadamore Cc: panama-dev at openjdk.java.net Subject: Re: CFV: New panama Committer: Julia Boes Vote: yes ?? > On Dec 2, 2021, at 7:12 AM, Maurizio Cimadamore wrote: > > ?I hereby nominate Julia Boes (openjdk id: jboes) to Committer role in Project Panama. > > Julia is a member of the core-libs team who's been working in many areas (e.g. JEP 408 [3]), and has already helped us by contributing to the Panama foreign API (see below). She will help us transitioning the API from incubation to preview. > > Votes are due by December, 16, 2021. > > Only current panama Committers [1] are eligible to vote on this nomination. Votes must be cast in the open by replying to this mailing list. > > For Lazy Consensus voting instructions, see [2]. > > Best regards, > Maurizio Cimadamore > > [1] http://openjdk.java.net/census#panama > [2] http://openjdk.java.net/projects#committer-vote > [3] https://openjdk.java.net/jeps/408 > > Julia's Panama PRs: > > https://git.openjdk.java.net/panama-foreign/pull/587 > https://git.openjdk.java.net/panama-foreign/pull/585 > https://git.openjdk.java.net/panama-foreign/pull/602 > https://git.openjdk.java.net/panama-foreign/pull/621 > > > From mcimadamore at openjdk.java.net Thu Dec 2 14:19:07 2021 From: mcimadamore at openjdk.java.net (Maurizio Cimadamore) Date: Thu, 2 Dec 2021 14:19:07 GMT Subject: [foreign-memaccess+abi] RFR: 8278151: Heap segments should handle alignment constraints in a deterministic fashion Message-ID: This patch fixes the issue with alignment checks on heap segment leading to failures which depend on VM implementation details and layout choices. This is discussed in more details here: https://mail.openjdk.java.net/pipermail/panama-dev/2021-November/015852.html The fix consists in adding a *max alignment* mask to all segments. Native segments have mask set at 0, whereas heap segment have the mask set at the element size of their backing array (e.g. 1 for `byte[]`, 2 for `short[]`/`char[]` and so forth). The alignment check is the computed as follows: if (((address | maxAlignMask) & alignmentMask) != 0) { throw ... } Where `address` is the long address being dereferenced, `maxAlignMask` is the max alignment associated with the segment being dereferenced, and `alignmentMask` is the alignment associated with the layout used during a dereference operation. This patch also applies alignment checks to bulk copy operations as well, and it consolidates the way in which alignment checks are carried out (by adding a couple of helper methods, in `Utils` and `AbstractMemorySegment`, respectively). This patch also changes alignment errors to uniformly throw IllegalArgumentException, in all cases. Finally, this patch clarifies that during bulk copy and spliterator calls, the element layout alignment cannot be bigger than its size (as the size is used as a stride). A new test `TestHeapAlignment` has been added to check that alignment of heap segment is correctly enforced. Performance-wise, this patch doesn't change anything; that's because the value layout constants in `ValueLayout` are all unaligned. For code using aligned layout, some slight regression when using heap segment is possible (whereas native segment should have same performance as before). Eventually, these performance issues should disappear once [1] is fixed. [1] - https://bugs.openjdk.java.net/browse/JDK-8277850 ------------- Commit messages: - Initial push Changes: https://git.openjdk.java.net/panama-foreign/pull/622/files Webrev: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=622&range=00 Issue: https://bugs.openjdk.java.net/browse/JDK-8278151 Stats: 369 lines in 13 files changed: 344 ins; 0 del; 25 mod Patch: https://git.openjdk.java.net/panama-foreign/pull/622.diff Fetch: git fetch https://git.openjdk.java.net/panama-foreign pull/622/head:pull/622 PR: https://git.openjdk.java.net/panama-foreign/pull/622 From mcimadamore at openjdk.java.net Thu Dec 2 14:27:17 2021 From: mcimadamore at openjdk.java.net (Maurizio Cimadamore) Date: Thu, 2 Dec 2021 14:27:17 GMT Subject: [foreign-memaccess+abi] RFR: 8278151: Heap segments should handle alignment constraints in a deterministic fashion [v2] In-Reply-To: References: Message-ID: > This patch fixes the issue with alignment checks on heap segment leading to failures which depend on VM implementation details and layout choices. > > This is discussed in more details here: > https://mail.openjdk.java.net/pipermail/panama-dev/2021-November/015852.html > > The fix consists in adding a *max alignment* mask to all segments. Native segments have mask set at 0, whereas heap segment have the mask set at the element size of their backing array (e.g. 1 for `byte[]`, 2 for `short[]`/`char[]` and so forth). > > The alignment check is the computed as follows: > > > if (((address | maxAlignMask) & alignmentMask) != 0) { > throw ... > } > > > Where `address` is the long address being dereferenced, `maxAlignMask` is the max alignment associated with the segment being dereferenced, and `alignmentMask` is the alignment associated with the layout used during a dereference operation. > This patch also applies alignment checks to bulk copy operations as well, and it consolidates the way in which alignment checks are carried out (by adding a couple of helper methods, in `Utils` and `AbstractMemorySegment`, respectively). > > This patch also changes alignment errors to uniformly throw IllegalArgumentException, in all cases. > > Finally, this patch clarifies that during bulk copy and spliterator calls, the element layout alignment cannot be bigger than its size (as the size is used as a stride). > > A new test `TestHeapAlignment` has been added to check that alignment of heap segment is correctly enforced. > > Performance-wise, this patch doesn't change anything; that's because the value layout constants in `ValueLayout` are all unaligned. For code using aligned layout, some slight regression when using heap segment is possible (whereas native segment should have same performance as before). Eventually, these performance issues should disappear once [1] is fixed. > > [1] - https://bugs.openjdk.java.net/browse/JDK-8277850 Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision: Add benchmarks for aligned access ------------- Changes: - all: https://git.openjdk.java.net/panama-foreign/pull/622/files - new: https://git.openjdk.java.net/panama-foreign/pull/622/files/b72098b0..97ae5cfb Webrevs: - full: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=622&range=01 - incr: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=622&range=00-01 Stats: 24 lines in 2 files changed: 24 ins; 0 del; 0 mod Patch: https://git.openjdk.java.net/panama-foreign/pull/622.diff Fetch: git fetch https://git.openjdk.java.net/panama-foreign pull/622/head:pull/622 PR: https://git.openjdk.java.net/panama-foreign/pull/622 From mcimadamore at openjdk.java.net Thu Dec 2 14:31:45 2021 From: mcimadamore at openjdk.java.net (Maurizio Cimadamore) Date: Thu, 2 Dec 2021 14:31:45 GMT Subject: [foreign-memaccess+abi] RFR: 8278151: Heap segments should handle alignment constraints in a deterministic fashion [v2] In-Reply-To: References: Message-ID: <3f0acRjoS6-p2wfNzkRXhCOzJ0kNBlSVmDbP4cKmieY=.d5bb7f07-216e-449c-852a-fb7f7e3c7a24@github.com> On Thu, 2 Dec 2021 14:27:17 GMT, Maurizio Cimadamore wrote: >> This patch fixes the issue with alignment checks on heap segment leading to failures which depend on VM implementation details and layout choices. >> >> This is discussed in more details here: >> https://mail.openjdk.java.net/pipermail/panama-dev/2021-November/015852.html >> >> The fix consists in adding a *max alignment* mask to all segments. Native segments have mask set at 0, whereas heap segment have the mask set at the element size of their backing array (e.g. 1 for `byte[]`, 2 for `short[]`/`char[]` and so forth). >> >> The alignment check is the computed as follows: >> >> >> if (((address | maxAlignMask) & alignmentMask) != 0) { >> throw ... >> } >> >> >> Where `address` is the long address being dereferenced, `maxAlignMask` is the max alignment associated with the segment being dereferenced, and `alignmentMask` is the alignment associated with the layout used during a dereference operation. >> This patch also applies alignment checks to bulk copy operations as well, and it consolidates the way in which alignment checks are carried out (by adding a couple of helper methods, in `Utils` and `AbstractMemorySegment`, respectively). >> >> This patch also changes alignment errors to uniformly throw IllegalArgumentException, in all cases. >> >> Finally, this patch clarifies that during bulk copy and spliterator calls, the element layout alignment cannot be bigger than its size (as the size is used as a stride). >> >> A new test `TestHeapAlignment` has been added to check that alignment of heap segment is correctly enforced. >> >> Performance-wise, this patch doesn't change anything; that's because the value layout constants in `ValueLayout` are all unaligned. For code using aligned layout, some slight regression when using heap segment is possible (whereas native segment should have same performance as before). Eventually, these performance issues should disappear once [1] is fixed. >> >> [1] - https://bugs.openjdk.java.net/browse/JDK-8277850 > > Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision: > > Add benchmarks for aligned access src/jdk.incubator.foreign/share/classes/jdk/internal/foreign/AbstractMemorySegmentImpl.java line 127: > 125: throw new IllegalArgumentException("Element layout size cannot be zero"); > 126: } > 127: if (elementLayout.byteAlignment() > elementLayout.byteSize()) { I wonder if we should add a similar check on the various `MemorySegment/MemoryAddress::[get/set]atIndex` ? I think accessing hyper-aligned elements is always going to fail, for certain offsets - in fact when deriving a var handle from a layout path, it is never possible to have an array var handle for an hyper-aligned element layout. ------------- PR: https://git.openjdk.java.net/panama-foreign/pull/622 From duke at openjdk.java.net Thu Dec 2 14:53:37 2021 From: duke at openjdk.java.net (Radoslaw Smogura) Date: Thu, 2 Dec 2021 14:53:37 GMT Subject: [foreign-memaccess+abi] RFR: 8278151: Heap segments should handle alignment constraints in a deterministic fashion [v2] In-Reply-To: References: Message-ID: On Thu, 2 Dec 2021 14:27:17 GMT, Maurizio Cimadamore wrote: >> This patch fixes the issue with alignment checks on heap segment leading to failures which depend on VM implementation details and layout choices. >> >> This is discussed in more details here: >> https://mail.openjdk.java.net/pipermail/panama-dev/2021-November/015852.html >> >> The fix consists in adding a *max alignment* mask to all segments. Native segments have mask set at 0, whereas heap segment have the mask set at the element size of their backing array (e.g. 1 for `byte[]`, 2 for `short[]`/`char[]` and so forth). >> >> The alignment check is the computed as follows: >> >> >> if (((address | maxAlignMask) & alignmentMask) != 0) { >> throw ... >> } >> >> >> Where `address` is the long address being dereferenced, `maxAlignMask` is the max alignment associated with the segment being dereferenced, and `alignmentMask` is the alignment associated with the layout used during a dereference operation. >> This patch also applies alignment checks to bulk copy operations as well, and it consolidates the way in which alignment checks are carried out (by adding a couple of helper methods, in `Utils` and `AbstractMemorySegment`, respectively). >> >> This patch also changes alignment errors to uniformly throw IllegalArgumentException, in all cases. >> >> Finally, this patch clarifies that during bulk copy and spliterator calls, the element layout alignment cannot be bigger than its size (as the size is used as a stride). >> >> A new test `TestHeapAlignment` has been added to check that alignment of heap segment is correctly enforced. >> >> Performance-wise, this patch doesn't change anything; that's because the value layout constants in `ValueLayout` are all unaligned. For code using aligned layout, some slight regression when using heap segment is possible (whereas native segment should have same performance as before). Eventually, these performance issues should disappear once [1] is fixed. >> >> [1] - https://bugs.openjdk.java.net/browse/JDK-8277850 > > Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision: > > Add benchmarks for aligned access src/java.base/share/classes/java/lang/invoke/X-VarHandleMemoryAccess.java.template line 119: > 117: long address = base + offset; > 118: long maxAlignMask = bb.maxAlignMask(); > 119: if (skipAlignmentMaskCheck && maxAlignMask == 0) { I've got minor comment. I wonder if we can skip `skipAlignmentMaskCheck` parameter and just base on `maxAlignMask` ------------- PR: https://git.openjdk.java.net/panama-foreign/pull/622 From duke at openjdk.java.net Thu Dec 2 14:58:42 2021 From: duke at openjdk.java.net (Radoslaw Smogura) Date: Thu, 2 Dec 2021 14:58:42 GMT Subject: [foreign-memaccess+abi] RFR: 8278151: Heap segments should handle alignment constraints in a deterministic fashion [v2] In-Reply-To: References: Message-ID: <1lPb90vl5gOBMOudtHHuwBgbKfsjVcsO57rKeqmsYvo=.19272a78-e253-4d3b-8c69-0f78a7f86fd1@github.com> On Thu, 2 Dec 2021 14:50:05 GMT, Radoslaw Smogura wrote: >> Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision: >> >> Add benchmarks for aligned access > > src/java.base/share/classes/java/lang/invoke/X-VarHandleMemoryAccess.java.template line 119: > >> 117: long address = base + offset; >> 118: long maxAlignMask = bb.maxAlignMask(); >> 119: if (skipAlignmentMaskCheck && maxAlignMask == 0) { > > I've got minor comment. I wonder if we can skip `skipAlignmentMaskCheck` parameter and just base on `maxAlignMask` Sorry, it was stupid question. Please ignore ------------- PR: https://git.openjdk.java.net/panama-foreign/pull/622 From mcimadamore at openjdk.java.net Thu Dec 2 15:08:38 2021 From: mcimadamore at openjdk.java.net (Maurizio Cimadamore) Date: Thu, 2 Dec 2021 15:08:38 GMT Subject: [foreign-memaccess+abi] RFR: 8278151: Heap segments should handle alignment constraints in a deterministic fashion [v2] In-Reply-To: <1lPb90vl5gOBMOudtHHuwBgbKfsjVcsO57rKeqmsYvo=.19272a78-e253-4d3b-8c69-0f78a7f86fd1@github.com> References: <1lPb90vl5gOBMOudtHHuwBgbKfsjVcsO57rKeqmsYvo=.19272a78-e253-4d3b-8c69-0f78a7f86fd1@github.com> Message-ID: On Thu, 2 Dec 2021 14:55:48 GMT, Radoslaw Smogura wrote: >> src/java.base/share/classes/java/lang/invoke/X-VarHandleMemoryAccess.java.template line 119: >> >>> 117: long address = base + offset; >>> 118: long maxAlignMask = bb.maxAlignMask(); >>> 119: if (skipAlignmentMaskCheck && maxAlignMask == 0) { >> >> I've got minor comment. I wonder if we can skip `skipAlignmentMaskCheck` parameter and just base on `maxAlignMask` > > Sorry, it was stupid question. Please ignore No problem - this is quite tricky. In general, `skipAlignmentMaskCheck` still does _something_ when accessing native segments (as the max align mask is zero there), but in general you are morally correct in observing that it's less useful than it used to be. My hope is that with the right VM fixes, we can get rid of `skipAlignmentMaskCheck` completely, and simplify all this. For the records, the difference between unaligned and aligned access is as follows: Benchmark Mode Cnt Score Error Units LoopOverNonConstant.segment_loop_instance avgt 30 0.229 ? 0.002 ms/op LoopOverNonConstant.segment_loop_instance_aligned avgt 30 0.335 ? 0.001 ms/op It's not terrible, but could of course be better. ------------- PR: https://git.openjdk.java.net/panama-foreign/pull/622 From mcimadamore at openjdk.java.net Thu Dec 2 16:04:22 2021 From: mcimadamore at openjdk.java.net (Maurizio Cimadamore) Date: Thu, 2 Dec 2021 16:04:22 GMT Subject: [foreign-memaccess+abi] RFR: 8278151: Heap segments should handle alignment constraints in a deterministic fashion [v3] In-Reply-To: References: Message-ID: > This patch fixes the issue with alignment checks on heap segment leading to failures which depend on VM implementation details and layout choices. > > This is discussed in more details here: > https://mail.openjdk.java.net/pipermail/panama-dev/2021-November/015852.html > > The fix consists in adding a *max alignment* mask to all segments. Native segments have mask set at 0, whereas heap segment have the mask set at the element size of their backing array (e.g. 1 for `byte[]`, 2 for `short[]`/`char[]` and so forth). > > The alignment check is the computed as follows: > > > if (((address | maxAlignMask) & alignmentMask) != 0) { > throw ... > } > > > Where `address` is the long address being dereferenced, `maxAlignMask` is the max alignment associated with the segment being dereferenced, and `alignmentMask` is the alignment associated with the layout used during a dereference operation. > This patch also applies alignment checks to bulk copy operations as well, and it consolidates the way in which alignment checks are carried out (by adding a couple of helper methods, in `Utils` and `AbstractMemorySegment`, respectively). > > This patch also changes alignment errors to uniformly throw IllegalArgumentException, in all cases. > > Finally, this patch clarifies that during bulk copy and spliterator calls, the element layout alignment cannot be bigger than its size (as the size is used as a stride). > > A new test `TestHeapAlignment` has been added to check that alignment of heap segment is correctly enforced. > > Performance-wise, this patch doesn't change anything; that's because the value layout constants in `ValueLayout` are all unaligned. For code using aligned layout, some slight regression when using heap segment is possible (whereas native segment should have same performance as before). Eventually, these performance issues should disappear once [1] is fixed. > > [1] - https://bugs.openjdk.java.net/browse/JDK-8277850 Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision: Improve support for skipAlignmentCheck ------------- Changes: - all: https://git.openjdk.java.net/panama-foreign/pull/622/files - new: https://git.openjdk.java.net/panama-foreign/pull/622/files/97ae5cfb..fb0ee5a5 Webrevs: - full: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=622&range=02 - incr: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=622&range=01-02 Stats: 45 lines in 4 files changed: 37 ins; 4 del; 4 mod Patch: https://git.openjdk.java.net/panama-foreign/pull/622.diff Fetch: git fetch https://git.openjdk.java.net/panama-foreign pull/622/head:pull/622 PR: https://git.openjdk.java.net/panama-foreign/pull/622 From mcimadamore at openjdk.java.net Thu Dec 2 16:04:23 2021 From: mcimadamore at openjdk.java.net (Maurizio Cimadamore) Date: Thu, 2 Dec 2021 16:04:23 GMT Subject: [foreign-memaccess+abi] RFR: 8278151: Heap segments should handle alignment constraints in a deterministic fashion [v2] In-Reply-To: References: Message-ID: <-JP6NNLU2aJGsEVRQdcIn64wlECzRczSP6ZfqQEBEfM=.94c23a65-3c7e-4a7c-890b-a3eacee4344b@github.com> On Thu, 2 Dec 2021 14:27:17 GMT, Maurizio Cimadamore wrote: >> This patch fixes the issue with alignment checks on heap segment leading to failures which depend on VM implementation details and layout choices. >> >> This is discussed in more details here: >> https://mail.openjdk.java.net/pipermail/panama-dev/2021-November/015852.html >> >> The fix consists in adding a *max alignment* mask to all segments. Native segments have mask set at 0, whereas heap segment have the mask set at the element size of their backing array (e.g. 1 for `byte[]`, 2 for `short[]`/`char[]` and so forth). >> >> The alignment check is the computed as follows: >> >> >> if (((address | maxAlignMask) & alignmentMask) != 0) { >> throw ... >> } >> >> >> Where `address` is the long address being dereferenced, `maxAlignMask` is the max alignment associated with the segment being dereferenced, and `alignmentMask` is the alignment associated with the layout used during a dereference operation. >> This patch also applies alignment checks to bulk copy operations as well, and it consolidates the way in which alignment checks are carried out (by adding a couple of helper methods, in `Utils` and `AbstractMemorySegment`, respectively). >> >> This patch also changes alignment errors to uniformly throw IllegalArgumentException, in all cases. >> >> Finally, this patch clarifies that during bulk copy and spliterator calls, the element layout alignment cannot be bigger than its size (as the size is used as a stride). >> >> A new test `TestHeapAlignment` has been added to check that alignment of heap segment is correctly enforced. >> >> Performance-wise, this patch doesn't change anything; that's because the value layout constants in `ValueLayout` are all unaligned. For code using aligned layout, some slight regression when using heap segment is possible (whereas native segment should have same performance as before). Eventually, these performance issues should disappear once [1] is fixed. >> >> [1] - https://bugs.openjdk.java.net/browse/JDK-8277850 > > Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision: > > Add benchmarks for aligned access I've uploaded a new revision which slightly improves existing support for skipping alignment check when the var handle has an offset that is already "provably aligned" (in which case only the base address needs to be checked). Here are some numbers: Benchmark Mode Cnt Score Error Units LoopOverNonConstant.segment_loop avgt 30 0.225 ? 0.003 ms/op LoopOverNonConstant.segment_loop_aligned avgt 30 0.228 ? 0.003 ms/op LoopOverNonConstant.segment_loop_instance avgt 30 0.226 ? 0.003 ms/op LoopOverNonConstant.segment_loop_instance_aligned avgt 30 0.330 ? 0.005 ms/op Benchmark (polluteProfile) Mode Cnt Score Error Units LoopOverNonConstantHeap.segment_loop false avgt 30 0.231 ? 0.001 ms/op LoopOverNonConstantHeap.segment_loop true avgt 30 0.227 ? 0.003 ms/op LoopOverNonConstantHeap.segment_loop_aligned false avgt 30 0.228 ? 0.002 ms/op LoopOverNonConstantHeap.segment_loop_aligned true avgt 30 0.229 ? 0.003 ms/op LoopOverNonConstantHeap.segment_loop_instance false avgt 30 0.225 ? 0.003 ms/op LoopOverNonConstantHeap.segment_loop_instance true avgt 30 0.225 ? 0.003 ms/op LoopOverNonConstantHeap.segment_loop_instance_aligned false avgt 30 0.329 ? 0.003 ms/op LoopOverNonConstantHeap.segment_loop_instance_aligned true avgt 30 0.321 ? 0.004 ms/op In other words, performance is fast for both unaligned and aligned - but only when using var handles derived from layout paths. When using instance methods, it gets slower (but this is true even before this patch). While this can be addressed by a convoluted workaround such as the one originally attempted in [1], I think it's better to wait for a fuller VM fix. [1] - https://git.openjdk.java.net/jdk/pull/6589 ------------- PR: https://git.openjdk.java.net/panama-foreign/pull/622 From mcimadamore at openjdk.java.net Thu Dec 2 16:14:27 2021 From: mcimadamore at openjdk.java.net (Maurizio Cimadamore) Date: Thu, 2 Dec 2021 16:14:27 GMT Subject: [foreign-memaccess+abi] RFR: 8278151: Heap segments should handle alignment constraints in a deterministic fashion [v4] In-Reply-To: References: Message-ID: > This patch fixes the issue with alignment checks on heap segment leading to failures which depend on VM implementation details and layout choices. > > This is discussed in more details here: > https://mail.openjdk.java.net/pipermail/panama-dev/2021-November/015852.html > > The fix consists in adding a *max alignment* mask to all segments. Native segments have mask set at 0, whereas heap segment have the mask set at the element size of their backing array (e.g. 1 for `byte[]`, 2 for `short[]`/`char[]` and so forth). > > The alignment check is the computed as follows: > > > if (((address | maxAlignMask) & alignmentMask) != 0) { > throw ... > } > > > Where `address` is the long address being dereferenced, `maxAlignMask` is the max alignment associated with the segment being dereferenced, and `alignmentMask` is the alignment associated with the layout used during a dereference operation. > This patch also applies alignment checks to bulk copy operations as well, and it consolidates the way in which alignment checks are carried out (by adding a couple of helper methods, in `Utils` and `AbstractMemorySegment`, respectively). > > This patch also changes alignment errors to uniformly throw IllegalArgumentException, in all cases. > > Finally, this patch clarifies that during bulk copy and spliterator calls, the element layout alignment cannot be bigger than its size (as the size is used as a stride). > > A new test `TestHeapAlignment` has been added to check that alignment of heap segment is correctly enforced. > > Performance-wise, this patch doesn't change anything; that's because the value layout constants in `ValueLayout` are all unaligned. For code using aligned layout, some slight regression when using heap segment is possible (whereas native segment should have same performance as before). Eventually, these performance issues should disappear once [1] is fixed. > > [1] - https://bugs.openjdk.java.net/browse/JDK-8277850 Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision: Strengthen test ------------- Changes: - all: https://git.openjdk.java.net/panama-foreign/pull/622/files - new: https://git.openjdk.java.net/panama-foreign/pull/622/files/fb0ee5a5..514e4888 Webrevs: - full: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=622&range=03 - incr: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=622&range=02-03 Stats: 5 lines in 1 file changed: 0 ins; 4 del; 1 mod Patch: https://git.openjdk.java.net/panama-foreign/pull/622.diff Fetch: git fetch https://git.openjdk.java.net/panama-foreign pull/622/head:pull/622 PR: https://git.openjdk.java.net/panama-foreign/pull/622 From paul.sandoz at oracle.com Thu Dec 2 17:12:15 2021 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Thu, 2 Dec 2021 17:12:15 +0000 Subject: CFV: New panama Committer: Julia Boes In-Reply-To: <9193507e-231f-c039-d89d-f301afc912ee@oracle.com> References: <9193507e-231f-c039-d89d-f301afc912ee@oracle.com> Message-ID: Vote: yes Paul. From john.r.rose at oracle.com Thu Dec 2 17:20:53 2021 From: john.r.rose at oracle.com (John Rose) Date: Thu, 2 Dec 2021 17:20:53 +0000 Subject: CFV: New panama Committer: Julia Boes In-Reply-To: <9193507e-231f-c039-d89d-f301afc912ee@oracle.com> References: <9193507e-231f-c039-d89d-f301afc912ee@oracle.com> Message-ID: Vote: yes > On Dec 2, 2021, at 3:12 AM, Maurizio Cimadamore wrote: > I hereby nominate Julia Boes (openjdk id: jboes) to Committer role in Project Panama. From duke at openjdk.java.net Thu Dec 2 18:07:22 2021 From: duke at openjdk.java.net (Radoslaw Smogura) Date: Thu, 2 Dec 2021 18:07:22 GMT Subject: [foreign-memaccess+abi] RFR: 8278151: Heap segments should handle alignment constraints in a deterministic fashion [v2] In-Reply-To: References: <1lPb90vl5gOBMOudtHHuwBgbKfsjVcsO57rKeqmsYvo=.19272a78-e253-4d3b-8c69-0f78a7f86fd1@github.com> Message-ID: On Thu, 2 Dec 2021 15:05:29 GMT, Maurizio Cimadamore wrote: >> Sorry, it was stupid question. Please ignore > > No problem - this is quite tricky. In general, `skipAlignmentMaskCheck` still does _something_ when accessing native segments (as the max align mask is zero there), but in general you are morally correct in observing that it's less useful than it used to be. My hope is that with the right VM fixes, we can get rid of `skipAlignmentMaskCheck` completely, and simplify all this. > > For the records, the difference between unaligned and aligned access is as follows: > > > Benchmark Mode Cnt Score Error Units > LoopOverNonConstant.segment_loop_instance avgt 30 0.229 ? 0.002 ms/op > LoopOverNonConstant.segment_loop_instance_aligned avgt 30 0.335 ? 0.001 ms/op > > > It's not terrible, but could of course be better. Hmm... I wonder a bit if this code can be optimized `if (((address | maxAlignMask) & alignmentMask) != 0) {` Max `maxAlignMask`, can be 1,2,4 (if I see it correctly) so if `maxAlignMask` `alignmentMask` and will not be correct, than exception will be thrown regardless of address? I wonder if making static check could be more performant as VM move such check before loop, than we could only focus on `address & alignmentMask != 0`. Or something like this. ------------- PR: https://git.openjdk.java.net/panama-foreign/pull/622 From mcimadamore at openjdk.java.net Thu Dec 2 18:14:32 2021 From: mcimadamore at openjdk.java.net (Maurizio Cimadamore) Date: Thu, 2 Dec 2021 18:14:32 GMT Subject: [foreign-memaccess+abi] RFR: 8278151: Heap segments should handle alignment constraints in a deterministic fashion [v2] In-Reply-To: References: <1lPb90vl5gOBMOudtHHuwBgbKfsjVcsO57rKeqmsYvo=.19272a78-e253-4d3b-8c69-0f78a7f86fd1@github.com> Message-ID: <_PwWiltgYAi0uF_PWdVM4QaCsFNFJRkgG6eu-J2pzwU=.2d20a0e9-501a-4d63-b0a0-33fefcf2713b@github.com> On Thu, 2 Dec 2021 18:04:28 GMT, Radoslaw Smogura wrote: >> No problem - this is quite tricky. In general, `skipAlignmentMaskCheck` still does _something_ when accessing native segments (as the max align mask is zero there), but in general you are morally correct in observing that it's less useful than it used to be. My hope is that with the right VM fixes, we can get rid of `skipAlignmentMaskCheck` completely, and simplify all this. >> >> For the records, the difference between unaligned and aligned access is as follows: >> >> >> Benchmark Mode Cnt Score Error Units >> LoopOverNonConstant.segment_loop_instance avgt 30 0.229 ? 0.002 ms/op >> LoopOverNonConstant.segment_loop_instance_aligned avgt 30 0.335 ? 0.001 ms/op >> >> >> It's not terrible, but could of course be better. > > Hmm... > > I wonder a bit if this code can be optimized `if (((address | maxAlignMask) & alignmentMask) != 0) {` > > Max `maxAlignMask`, can be 1,2,4 (if I see it correctly) so if `maxAlignMask` `alignmentMask` and will not be correct, than exception will be thrown regardless of address? I wonder if making static check could be more performant as VM move such check before loop, than we could only focus on `address & alignmentMask != 0`. Or something like this. The max align check is already moved out of the loop (as it only depends on the segment, which is a loop invariant). The problematic check, which is not moved outside the loop is exactly `address & alignmentMask != 0`. That check cannot be hoisted, because `address` is made up of `offset` and the segment base address; the latter is a loop invariant, but the former isn't. Of course C2 should be able to detect that offset is a function of the loop variable, and prove that the check can never fail - but this pattern is currently not detected (hence JDK-8277850). ------------- PR: https://git.openjdk.java.net/panama-foreign/pull/622 From duke at openjdk.java.net Thu Dec 2 18:35:33 2021 From: duke at openjdk.java.net (Radoslaw Smogura) Date: Thu, 2 Dec 2021 18:35:33 GMT Subject: [foreign-memaccess+abi] RFR: 8278151: Heap segments should handle alignment constraints in a deterministic fashion [v2] In-Reply-To: <_PwWiltgYAi0uF_PWdVM4QaCsFNFJRkgG6eu-J2pzwU=.2d20a0e9-501a-4d63-b0a0-33fefcf2713b@github.com> References: <1lPb90vl5gOBMOudtHHuwBgbKfsjVcsO57rKeqmsYvo=.19272a78-e253-4d3b-8c69-0f78a7f86fd1@github.com> <_PwWiltgYAi0uF_PWdVM4QaCsFNFJRkgG6eu-J2pzwU=.2d20a0e9-501a-4d63-b0a0-33fefcf2713b@github.com> Message-ID: On Thu, 2 Dec 2021 18:11:48 GMT, Maurizio Cimadamore wrote: >> Hmm... >> >> I wonder a bit if this code can be optimized `if (((address | maxAlignMask) & alignmentMask) != 0) {` >> >> Max `maxAlignMask`, can be 1,2,4 (if I see it correctly) so if `maxAlignMask` `alignmentMask` and will not be correct, than exception will be thrown regardless of address? I wonder if making static check could be more performant as VM move such check before loop, than we could only focus on `address & alignmentMask != 0`. Or something like this. > > The max align check is already moved out of the loop (as it only depends on the segment, which is a loop invariant). The problematic check, which is not moved outside the loop is exactly `address & alignmentMask != 0`. That check cannot be hoisted, because `address` is made up of `offset` and the segment base address; the latter is a loop invariant, but the former isn't. > > Of course C2 should be able to detect that offset is a function of the loop variable, and prove that the check can never fail - but this pattern is currently not detected (hence JDK-8277850). Yes, I was thinking about line 125 `if (((address | maxAlignMask) & alignmentMask) != 0) {` to split into to two `if ((maxAlignMask & alignmentMask) != 0) throw...` and `if (address & alignmentMask) != 0) throw...` if this could help a bit. ------------- PR: https://git.openjdk.java.net/panama-foreign/pull/622 From psandoz at openjdk.java.net Thu Dec 2 19:12:33 2021 From: psandoz at openjdk.java.net (Paul Sandoz) Date: Thu, 2 Dec 2021 19:12:33 GMT Subject: [foreign-memaccess+abi] RFR: 8278151: Heap segments should handle alignment constraints in a deterministic fashion [v4] In-Reply-To: References: Message-ID: On Thu, 2 Dec 2021 16:14:27 GMT, Maurizio Cimadamore wrote: >> This patch fixes the issue with alignment checks on heap segment leading to failures which depend on VM implementation details and layout choices. >> >> This is discussed in more details here: >> https://mail.openjdk.java.net/pipermail/panama-dev/2021-November/015852.html >> >> The fix consists in adding a *max alignment* mask to all segments. Native segments have mask set at 0, whereas heap segment have the mask set at the element size of their backing array (e.g. 1 for `byte[]`, 2 for `short[]`/`char[]` and so forth). >> >> The alignment check is the computed as follows: >> >> >> if (((address | maxAlignMask) & alignmentMask) != 0) { >> throw ... >> } >> >> >> Where `address` is the long address being dereferenced, `maxAlignMask` is the max alignment associated with the segment being dereferenced, and `alignmentMask` is the alignment associated with the layout used during a dereference operation. >> This patch also applies alignment checks to bulk copy operations as well, and it consolidates the way in which alignment checks are carried out (by adding a couple of helper methods, in `Utils` and `AbstractMemorySegment`, respectively). >> >> This patch also changes alignment errors to uniformly throw IllegalArgumentException, in all cases. >> >> Finally, this patch clarifies that during bulk copy and spliterator calls, the element layout alignment cannot be bigger than its size (as the size is used as a stride). >> >> A new test `TestHeapAlignment` has been added to check that alignment of heap segment is correctly enforced. >> >> Performance-wise, this patch doesn't change anything; that's because the value layout constants in `ValueLayout` are all unaligned. For code using aligned layout, some slight regression when using heap segment is possible (whereas native segment should have same performance as before). Eventually, these performance issues should disappear once [1] is fixed. >> >> [1] - https://bugs.openjdk.java.net/browse/JDK-8277850 > > Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision: > > Strengthen test Excellent analysis of the problem, and a very pleasing result. Having consistent alignment check behavior with sequenced layout construction and get/setAtIndex seems like a good thing, re: your comment. src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemorySegment.java line 170: > 168: *
  • if {@code AT = long[]}, then {@code A = 8} > 169: *
  • if {@code AT = double[]}, then {@code A = 8} > 170: * This might be clearer as a table then there is less need to appeal to `AT` and `A` e.g.: (copied from a table in `String`): *
    * * * * * * * * * * * * * ... * *
    Array type of an array backing a segment and its address aligment
    Array typeAlignment
    {@code boolean[]}{@code 1}
    {@code byte[]}{@code 1}
    src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemorySegment.java line 265: > 263: * {@code elementLayout} size is greater than zero, if this segment is > 264: * incompatible with the alignment constraints in the provided layout, > 265: * or if the {@code elementLayout} alignment is greater than its size. I believe its possible to have multiple declarations of `@throws IllegalArgumentException`, so if you wish for clarity there could be a declaration for each separate case. test/jdk/java/foreign/TestHeapAlignment.java line 57: > 55: if (arr != null) { > 56: assertAligned(align, layout, () -> MemorySegment.copy(arr, 0, segment, layout, 0, 1)); > 57: assertAligned(align, layout, () -> MemorySegment.copy(arr, 0, segment, layout, 0, 1)); Swap arguments for second invocation? Suggestion: assertAligned(align, layout, () -> MemorySegment.copy(segment, layout, 0, arr, 0, 1)); ------------- Marked as reviewed by psandoz (Committer). PR: https://git.openjdk.java.net/panama-foreign/pull/622 From duke at openjdk.java.net Fri Dec 3 04:47:39 2021 From: duke at openjdk.java.net (Mai =?UTF-8?B?xJDhurduZw==?= =?UTF-8?B?IA==?= =?UTF-8?B?UXXDom4=?= Anh) Date: Fri, 3 Dec 2021 04:47:39 GMT Subject: [vectorIntrinsics] Withdrawn: x86 intrinsics for zero extension casts In-Reply-To: References: Message-ID: On Wed, 20 Oct 2021 02:24:18 GMT, Mai ??ng Qu?n Anh wrote: > This patch implements the zero extension intrinsics for x86. I also fix the bug with the previous implementation where the sign elimination mask is calculated incorrectly and add several tests for this operation. I hope this will be useful. > > Thank you very much. This pull request has been closed without being integrated. ------------- PR: https://git.openjdk.java.net/panama-vector/pull/155 From duke at openjdk.java.net Fri Dec 3 11:07:54 2021 From: duke at openjdk.java.net (J.Duke) Date: Fri, 3 Dec 2021 11:07:54 GMT Subject: [foreign-memaccess+abi] RFR: Merge master Message-ID: Hi all, this is an _automatically_ generated pull request to notify you that there are 108 commits from the branch `master`that can **not** be merged into the branch `foreign-memaccess+abi`: The following files contains merge conflicts: - src/hotspot/cpu/x86/universalUpcallHandler_x86_64.cpp - src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/FunctionDescriptor.java - src/jdk.incubator.foreign/share/classes/jdk/internal/foreign/abi/CallingSequenceBuilder.java - test/jdk/java/foreign/TestUpcall.java - test/jdk/java/foreign/callarranger/TestSysVCallArranger.java All Committers in this [project](https://openjdk.java.net/census#panama) have access to my [personal fork](https://github.com/openjdk-bot/panama-foreign) and can therefore help resolve these merge conflicts (you may want to coordinate who should do this). The following paragraphs will give an example on how to solve these merge conflicts and push the resulting merge commit to this pull request. The below commands should be run in a local clone of your [personal fork](https://wiki.openjdk.java.net/display/skara#Skara-Personalforks) of the [openjdk/panama-foreign](https://github.com/openjdk/panama-foreign) repository. # Ensure target branch is up to date $ git checkout foreign-memaccess+abi $ git pull https://github.com/openjdk/panama-foreign.git foreign-memaccess+abi # Fetch and checkout the branch for this pull request $ git fetch https://github.com/openjdk-bot/panama-foreign.git +108:openjdk-bot-108 $ git checkout openjdk-bot-108 # Merge the target branch $ git merge foreign-memaccess+abi When you have resolved the conflicts resulting from the `git merge` command above, run the following commands to create a merge commit: $ git add paths/to/files/with/conflicts $ git commit -m 'Merge master' When you have created the merge commit, run the following command to push the merge commit to this pull request: $ git push https://github.com/openjdk-bot/panama-foreign.git openjdk-bot-108:108 _Note_: if you are using SSH to push commits to GitHub, then change the URL in the above `git push` command accordingly. Thanks, J. Duke ------------- Commit messages: - Automatic merge of jdk:master into master - 8278139: G1: Refactor G1BlockOffsetTablePart::block_at_or_preceding - 8277916: Gather non-strong reference count logic in a single place - 8278154: SimpleFileServer#createFileServer() should specify that the returned server is not started - 8278168: Add a few missing words to the specification of Files.mismatch - 8278163: --with-cacerts-src variable resolved after GenerateCacerts recipe setup - 8272234: Pass originating elements from Filer to JavaFileManager - 8278115: gc/stress/gclocker/TestGCLockerWithSerial.java has duplicate -Xmx - 8278116: runtime/modules/LoadUnloadModuleStress.java has duplicate -Xmx - 8278174: runtime/cds/appcds/LambdaWithJavaAgent.java fails with release VMs - ... and 98 more: https://git.openjdk.java.net/panama-foreign/compare/ddb61725...79cda8ef The webrev contains the conflicts with foreign-memaccess+abi: - merge conflicts: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=623&range=00.conflicts Changes: https://git.openjdk.java.net/panama-foreign/pull/623/files Stats: 8479 lines in 320 files changed: 5441 ins; 1617 del; 1421 mod Patch: https://git.openjdk.java.net/panama-foreign/pull/623.diff Fetch: git fetch https://git.openjdk.java.net/panama-foreign pull/623/head:pull/623 PR: https://git.openjdk.java.net/panama-foreign/pull/623 From duke at openjdk.java.net Fri Dec 3 11:08:33 2021 From: duke at openjdk.java.net (duke) Date: Fri, 3 Dec 2021 11:08:33 GMT Subject: git: openjdk/panama-foreign: master: 108 new changesets Message-ID: Changeset: ce0234b4 Author: Roman Kennke Date: 2021-11-26 14:54:09 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ce0234b47d5c40e74dac368396e92cdec5cc2de7 8277860: PPC: Remove duplicate info != NULL check Reviewed-by: chagedorn, mdoerr ! src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp Changeset: 3d810ad6 Author: Erik ?sterlund Date: 2021-11-26 14:55:02 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3d810ad6912b7bca03e212b604cf60412da11c18 8277411: C2 fast_unlock intrinsic on AArch64 has unnecessary ownership check Reviewed-by: ngasson, neliasso ! src/hotspot/cpu/aarch64/aarch64.ad Changeset: 40fef231 Author: Volker Simonis Date: 2021-11-26 16:21:15 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/40fef2311c95eca0ec34652f9fc0e56b827b8380 8275908: Record null_check traps for calls and array_check traps in the interpreter Reviewed-by: chagedorn, mdoerr ! src/hotspot/share/interpreter/interpreterRuntime.cpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/deoptimization.hpp + test/hotspot/jtreg/compiler/exceptions/OptimizeImplicitExceptions.java + test/hotspot/jtreg/compiler/uncommontrap/Decompile.java ! test/lib/jdk/test/whitebox/WhiteBox.java ! test/lib/sun/hotspot/WhiteBox.java Changeset: b9eb532d Author: Erik Gahlin Date: 2021-11-26 19:13:38 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/b9eb532de20be7c2c18a654a23dcc8dd66654049 8276685: Malformed Javadoc inline tags in JDK source in /jdk/management/jfr/RecordingInfo.java Reviewed-by: mgronlun ! src/jdk.management.jfr/share/classes/jdk/management/jfr/RecordingInfo.java Changeset: e9b36a83 Author: Hamlin Li Date: 2021-11-27 00:46:09 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e9b36a83160d3c1fa79841692e9fadf336bf7954 8276670: G1: Rename G1CardSetFreePool and related classes Reviewed-by: tschatzl, ayang - src/hotspot/share/gc/g1/g1CardSetFreeMemoryTask.cpp - src/hotspot/share/gc/g1/g1CardSetFreeMemoryTask.hpp ! src/hotspot/share/gc/g1/g1CardSetMemory.cpp ! src/hotspot/share/gc/g1/g1CardSetMemory.hpp ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.hpp + src/hotspot/share/gc/g1/g1SegmentedArrayFreeMemoryTask.cpp + src/hotspot/share/gc/g1/g1SegmentedArrayFreeMemoryTask.hpp ! src/hotspot/share/gc/g1/g1SegmentedArrayFreePool.cpp ! src/hotspot/share/gc/g1/g1SegmentedArrayFreePool.hpp ! src/hotspot/share/gc/g1/g1YoungCollector.cpp ! src/hotspot/share/gc/g1/g1YoungCollector.hpp ! src/hotspot/share/gc/g1/g1YoungGCPostEvacuateTasks.cpp ! src/hotspot/share/gc/g1/heapRegion.hpp ! src/hotspot/share/gc/g1/heapRegionRemSet.cpp ! src/hotspot/share/gc/g1/heapRegionRemSet.hpp ! test/hotspot/gtest/gc/g1/test_g1CardSet.cpp Changeset: 8f9eb620 Author: Ichiroh Takiguchi Date: 2021-11-29 00:11:28 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8f9eb620acbc447cf9124b1fe5574a9f02115f45 8274784: jshell: Garbled character was displayed by System.out.println(...) on Japanese Windows Reviewed-by: naoto ! src/jdk.internal.le/share/classes/jdk/internal/org/jline/terminal/impl/AbstractTerminal.java ! src/jdk.jshell/share/classes/jdk/jshell/execution/RemoteExecutionControl.java Changeset: c3a7f2f4 Author: Ludvig Janiuk Committer: Tobias Hartmann Date: 2021-11-29 06:41:55 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/c3a7f2f4bce9170c1630e01eebd4fcd174b44964 8277382: make c1 BlockMerger use IR::verify only when necessary Reviewed-by: thartmann, neliasso ! src/hotspot/share/c1/c1_Optimizer.cpp Changeset: 0c7a4b8a Author: Christian Hagedorn Date: 2021-11-29 07:47:28 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/0c7a4b8aa8bb672e87aae7090494719db018b9b1 8277842: IGV: Add jvms property to know where a node came from Reviewed-by: roland, neliasso, thartmann ! src/hotspot/share/opto/idealGraphPrinter.cpp Changeset: aed53eea Author: Nils Eliasson Date: 2021-11-29 08:19:24 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/aed53eea5ea2782c74ea05521462db2ab20b7ebd 8264838: IGV: enhance graph export functionality Co-authored-by: Roberto Casta?eda Lozano Co-authored-by: Nils Eliasson Reviewed-by: chagedorn, thartmann + src/utils/IdealGraphVisualizer/.java-version - src/utils/IdealGraphVisualizer/BatikSVGProxy/pom.xml - src/utils/IdealGraphVisualizer/BatikSVGProxy/src/main/java/com/sun/hotspot/igv/svg/BatikSVG.java - src/utils/IdealGraphVisualizer/BatikSVGProxy/src/main/java/com/sun/hotspot/igv/svg/package-info.java - src/utils/IdealGraphVisualizer/BatikSVGProxy/src/main/nbm/manifest.mf - src/utils/IdealGraphVisualizer/BatikSVGProxy/src/main/resources/com/sun/hotspot/igv/svg/Bundle.properties ! src/utils/IdealGraphVisualizer/View/pom.xml ! src/utils/IdealGraphVisualizer/View/src/main/java/com/sun/hotspot/igv/view/DiagramViewer.java ! src/utils/IdealGraphVisualizer/View/src/main/java/com/sun/hotspot/igv/view/EditorTopComponent.java ! src/utils/IdealGraphVisualizer/View/src/main/java/com/sun/hotspot/igv/view/actions/ExportAction.java ! src/utils/IdealGraphVisualizer/application/pom.xml ! src/utils/IdealGraphVisualizer/pom.xml Changeset: 9a3a9b13 Author: Leo Korinth Date: 2021-11-29 09:06:13 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9a3a9b139178f2645d51a0f12d95a8b424cd5b9d 8277865: G1: Change integer division to floating point division Reviewed-by: ayang, tschatzl ! src/hotspot/share/gc/g1/g1ConcurrentMark.cpp Changeset: e3e5908d Author: Julia Boes Date: 2021-11-29 09:22:16 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e3e5908d0d385ef908ba9752908aaf28b4b3e4f4 8277847: Support toolGuide tag in class-level documentation Reviewed-by: alanb, jjg ! make/jdk/src/classes/build/tools/taglet/ToolGuide.java Changeset: 72bacf8d Author: Patric Hedlin Date: 2021-11-29 10:34:13 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/72bacf8d256071773d8fd9f9c2d0aebb2cb32dea 8276108: Wrong instruction generation in aarch64 backend Co-authored-by: Nick Gasson Reviewed-by: aph, neliasso ! src/hotspot/cpu/aarch64/assembler_aarch64.hpp ! src/hotspot/cpu/aarch64/assembler_aarch64.inline.hpp ! src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp Changeset: 37de4422 Author: Andrey Turbanov Committer: Erik Gahlin Date: 2021-11-29 10:50:43 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/37de442269e8c14e0a112e26a8cbb63e12dec9e7 8275241: Unused ArrayList is created in RequestEngine.addHooks Reviewed-by: egahlin ! src/jdk.jfr/share/classes/jdk/jfr/internal/RequestEngine.java Changeset: 2622ab3f Author: Thomas Schatzl Date: 2021-11-29 11:58:13 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/2622ab3fe94814fb4f7f22e4015ef1519e546905 8277928: Fix compilation on macosx-aarch64 after 8276108 Reviewed-by: shade, dholmes ! src/hotspot/cpu/aarch64/assembler_aarch64.hpp Changeset: e5676f8d Author: Thomas Schatzl Date: 2021-11-29 12:05:10 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e5676f8d0b4f9e97497581e848e8b06fb7e11828 8277450: Record number of references into collection set during gc Reviewed-by: kbarrett, iwalulya ! src/hotspot/share/gc/g1/g1GCPhaseTimes.cpp ! src/hotspot/share/gc/g1/g1GCPhaseTimes.hpp ! src/hotspot/share/gc/g1/g1OopClosures.hpp ! src/hotspot/share/gc/g1/g1OopClosures.inline.hpp ! src/hotspot/share/gc/g1/g1RemSet.cpp ! test/hotspot/jtreg/gc/g1/TestGCLogMessages.java Changeset: 45e8973a Author: Albert Mingkun Yang Date: 2021-11-29 12:13:51 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/45e8973a22424d76d62cd29f6f934116ceb695fb 8277896: Remove unused BOTConstants member methods Reviewed-by: kbarrett ! src/hotspot/share/gc/shared/blockOffsetTable.hpp Changeset: 960bdde7 Author: Hamlin Li Date: 2021-11-29 12:19:45 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/960bdde7ebc59cefc5c60fc21b8c8267d7c0b631 8277904: G1: Remove G1CardSetArray::max_entries Reviewed-by: tschatzl ! src/hotspot/share/gc/g1/g1CardSetContainers.hpp Changeset: 614c6e61 Author: Volker Simonis Date: 2021-11-29 12:29:06 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/614c6e61fa3a9f094a311b12e780491c611657e6 8277878: Fix compiler tests after JDK-8275908 Reviewed-by: thartmann, chagedorn ! test/hotspot/jtreg/compiler/exceptions/OptimizeImplicitExceptions.java ! test/hotspot/jtreg/compiler/uncommontrap/Decompile.java Changeset: ad51d069 Author: Ivan Walulya Date: 2021-11-29 13:10:06 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ad51d0692534744d04a32959e7e50ee5e87adff5 8277789: G1: G1CardSetConfiguration prefixes num_ and max_ used interchangeably Reviewed-by: mli, tschatzl ! src/hotspot/share/gc/g1/g1Arguments.cpp ! src/hotspot/share/gc/g1/g1CardSet.cpp ! src/hotspot/share/gc/g1/g1CardSet.hpp ! src/hotspot/share/gc/g1/g1CardSetContainers.inline.hpp ! test/hotspot/gtest/gc/g1/test_g1CardSet.cpp Changeset: 05ab1767 Author: Zhengyu Gu Date: 2021-11-29 14:00:10 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/05ab1767684bee0a3b8c8214c610beafaad058f9 8277797: Remove undefined/unused SharedRuntime::trampoline_size() Reviewed-by: dholmes, stuefe ! src/hotspot/share/runtime/sharedRuntime.hpp Changeset: 3d39f09c Author: Roman Kennke Date: 2021-11-29 16:00:09 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3d39f09c6cdc875b44147b4e84e496b6abf93996 8277654: Shenandoah: Don't produce new memory state in C2 LRB runtime call Reviewed-by: roland, shade ! src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.hpp Changeset: 825e633e Author: Pavel Kharskii Committer: Sean Coffey Date: 2021-11-29 16:54:47 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/825e633e71ca942fe88c509e7f951ff8903c45cf 8277944: JDK 18 - update GA Release Date Reviewed-by: coffeys ! make/conf/version-numbers.conf Changeset: 3a4a94e5 Author: Jie Fu Date: 2021-11-29 23:17:39 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3a4a94e5a830c4e88ac12619b868f3d89aa416a5 8277854: The upper bound of GCCardSizeInBytes should be limited to 512 for 32-bit platforms Reviewed-by: tschatzl, mli ! src/hotspot/share/gc/shared/gc_globals.hpp Changeset: 560f9c93 Author: MeryKitty Committer: Jie Fu Date: 2021-11-29 23:21:04 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/560f9c937233d548ef8db8cd9044fdc6c4cefe41 8277426: Optimize mask reduction operations on x86 Reviewed-by: sviswanathan, jiefu ! src/hotspot/cpu/x86/assembler_x86.cpp ! src/hotspot/cpu/x86/assembler_x86.hpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.hpp ! src/hotspot/cpu/x86/x86.ad Changeset: 27299eaa Author: Liam Miller-Cushon Date: 2021-11-30 01:34:52 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/27299eaa98fd2d608a6cecfbf2b1a2a177bd5e9a 8277803: vmTestbase/nsk/jdi/TypeComponent/isSynthetic/issynthetic001 fails with "Synthetic fields not found" Reviewed-by: dholmes, cjplummer, sspitsyn ! test/hotspot/jtreg/ProblemList.txt ! test/hotspot/jtreg/vmTestbase/nsk/jdi/TypeComponent/isSynthetic/issynthetic001a.java Changeset: fde6fe79 Author: Albert Mingkun Yang Date: 2021-11-30 07:33:46 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/fde6fe7997a889b17af89b3a8fd25456568a1fa6 8277824: Remove empty RefProcSubPhasesWorkerTimeTracker destructor Co-authored-by: Kim Barrett Reviewed-by: tschatzl, kbarrett ! src/hotspot/share/gc/shared/referenceProcessorPhaseTimes.cpp ! src/hotspot/share/gc/shared/referenceProcessorPhaseTimes.hpp Changeset: d230feea Author: Albert Mingkun Yang Date: 2021-11-30 07:34:51 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/d230feea55379618a875566b9f9e3b01deb70795 8277931: Parallel: Remove unused PSVirtualSpace::expand_into Reviewed-by: tschatzl ! src/hotspot/share/gc/parallel/psVirtualspace.cpp ! src/hotspot/share/gc/parallel/psVirtualspace.hpp Changeset: 3ee26c6a Author: David Holmes Date: 2021-11-30 08:21:16 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3ee26c6a8152795be281924c26e5def329580352 8267767: Redundant condition check in SafepointSynchronize::thread_not_running Reviewed-by: hseigel, coleenp, ayang ! src/hotspot/share/runtime/safepoint.cpp Changeset: ceae380d Author: Jie Fu Date: 2021-11-30 08:33:00 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ceae380d3a3fcef5678e3073e25eb37ca0a24c46 8277843: [Vector API] scalar2vector generates incorrect type info for mask operations if Op_MaskAll is unavailable Co-authored-by: Jatin Bhateja Reviewed-by: thartmann, jbhateja ! src/hotspot/share/opto/vectornode.cpp Changeset: a5f2a58b Author: Martin Doerr Date: 2021-11-30 09:20:49 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/a5f2a58ba4ac25f4bd66f1f1f4c036a4f0024229 8277846: Implement fast-path for ASCII-compatible CharsetEncoders on ppc64 Reviewed-by: lucy, mbaesken ! src/hotspot/cpu/ppc/c2_MacroAssembler_ppc.cpp ! src/hotspot/cpu/ppc/c2_MacroAssembler_ppc.hpp ! src/hotspot/cpu/ppc/matcher_ppc.hpp ! src/hotspot/cpu/ppc/ppc.ad Changeset: fecf906f Author: Yi Yang Date: 2021-11-30 11:50:51 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/fecf906f0af9ddc0e83cb681845009f34555d5dc 8267928: Loop predicate gets inexact loop limit before PhaseIdealLoop::rc_predicate Reviewed-by: thartmann, chagedorn, kvn ! src/hotspot/share/opto/loopPredicate.cpp Changeset: 69f56a0e Author: Adam Sotona Date: 2021-11-30 12:56:48 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/69f56a0ea0c2d551b660909deb89f0051540f9d0 8264485: build.tools.depend.Depend.toString(byte[]) creates malformed hex strings Reviewed-by: jlahoda ! make/jdk/src/classes/build/tools/depend/Depend.java Changeset: 01cefc94 Author: Maxim Kartashev Committer: Magnus Ihse Bursie Date: 2021-11-30 13:01:17 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/01cefc94c766b87d426cf1dec89a8867454faf0e 8277977: Incorrect references to --enable-reproducible-builds in docs Reviewed-by: ihse ! doc/building.html ! doc/building.md ! make/autoconf/jdk-options.m4 Changeset: 91508404 Author: Albert Mingkun Yang Date: 2021-11-30 13:42:18 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/915084041f32bf6ffe4d12c031ac5e69adcc07f5 8277899: Parallel: Simplify PSVirtualSpace::initialize logic Reviewed-by: tschatzl, sjohanss ! src/hotspot/share/gc/parallel/objectStartArray.cpp ! src/hotspot/share/gc/parallel/psVirtualspace.cpp ! src/hotspot/share/gc/parallel/psVirtualspace.hpp Changeset: 98a9f037 Author: Jorn Vernee Date: 2021-11-30 14:34:00 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/98a9f037397d437d2c3221e8522ed8ab397a457a 8277602: Deopt code does not extend the stack enough if the caller is an optimize entry blob Reviewed-by: dlong, thartmann ! src/hotspot/cpu/x86/universalUpcallHandler_x86_64.cpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/frame.hpp ! src/hotspot/share/runtime/vframeArray.cpp + test/jdk/java/foreign/upcalldeopt/TestUpcallDeopt.java = test/jdk/java/foreign/upcalldeopt/libUpcallDeopt.c Changeset: 21d9ca6c Author: Xin Liu Date: 2021-11-30 18:55:24 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/21d9ca6cd942ac98a3be2577ded8eaf92dac7d46 8274983: C1 optimizes the invocation of private interface methods Reviewed-by: dlong, iveresov ! src/hotspot/share/c1/c1_GraphBuilder.cpp + test/micro/org/openjdk/bench/vm/compiler/InterfacePrivateCalls.java Changeset: 15a68064 Author: Kim Barrett Date: 2021-11-30 20:22:35 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/15a680647c4c5df4538e906960c594da79aebf5c 8277434: tests fail with "assert(is_forwarded()) failed: only decode when actually forwarded" Reviewed-by: ayang, shade, tschatzl ! src/hotspot/share/gc/g1/g1ParScanThreadState.cpp ! src/hotspot/share/gc/g1/g1ParScanThreadState.inline.hpp ! test/hotspot/jtreg/ProblemList.txt Changeset: 5a4a9bb9 Author: Daniel D. Daugherty Date: 2021-11-30 20:40:10 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/5a4a9bb9d55134deac0e02cf37f31d1dd2223024 8278019: ProblemList java/awt/dnd/BadSerializationTest/BadSerializationTest.java on linux and windows Reviewed-by: prr ! test/jdk/ProblemList.txt Changeset: e30e6767 Author: Petr Portnov Committer: Roger Riggs Date: 2021-11-30 20:50:13 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e30e67670981ee905724787c109b7b7fd2b70b42 8277606: String(String) constructor could copy hashIsZero Reviewed-by: redestad, rriggs ! src/java.base/share/classes/java/lang/String.java Changeset: 29426469 Author: Jonathan Gibbons Date: 2021-11-30 22:07:07 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/2942646957537b2a4b078bc8cb0becab967c21e2 8276683: Malformed Javadoc inline tags in JDK source in com/sun/tools/javac/util/RawDiagnosticFormatter.java Reviewed-by: darcy, prappo, iris ! src/jdk.compiler/share/classes/com/sun/tools/javac/util/RawDiagnosticFormatter.java Changeset: f1c20e91 Author: Naoto Sato Date: 2021-11-30 22:41:36 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f1c20e91d822c6df4c5da895f2abd6305e00bf8b 8190748: java/text/Format/DateFormat/DateFormatTest.java and NonGregorianFormatTest fail intermittently Reviewed-by: rriggs, joehw, lancea ! test/jdk/java/text/Format/DateFormat/DateFormatTest.java ! test/jdk/java/text/Format/DateFormat/NonGregorianFormatTest.java Changeset: 65251f76 Author: Kim Barrett Date: 2021-11-30 22:43:53 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/65251f76937d1844e2235ce64b42b17f4492d20e 8151594: Move concurrent refinement thread activation logging out of GC pause Reviewed-by: tschatzl, ayang ! src/hotspot/share/gc/g1/g1ConcurrentRefineThread.cpp Changeset: dd73e3ce Author: Kim Barrett Date: 2021-12-01 00:44:51 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/dd73e3cea238b231b20095de87e94f928700f15a 8277814: ConcurrentRefineThread should report rate when deactivating Reviewed-by: tschatzl, sjohanss ! src/hotspot/share/gc/g1/g1ConcurrentRefineStats.cpp ! src/hotspot/share/gc/g1/g1ConcurrentRefineStats.hpp ! src/hotspot/share/gc/g1/g1ConcurrentRefineThread.cpp Changeset: ab867f6c Author: Weijun Wang Date: 2021-12-01 00:48:28 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ab867f6c7c578ae7e65af2989b6836d523a41c5a 8272162: S4U2Self ticket without forwardable flag Reviewed-by: valeriep ! src/java.base/share/conf/security/java.security ! src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5Context.java ! src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5InitCredential.java ! src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5ProxyCredential.java ! src/java.security.jgss/share/classes/sun/security/krb5/Credentials.java ! src/java.security.jgss/share/classes/sun/security/krb5/KdcComm.java ! src/java.security.jgss/share/classes/sun/security/krb5/KrbAsReq.java ! src/java.security.jgss/share/classes/sun/security/krb5/KrbAsReqBuilder.java + src/java.security.jgss/share/classes/sun/security/krb5/KrbKdcReq.java ! src/java.security.jgss/share/classes/sun/security/krb5/KrbTgsRep.java ! src/java.security.jgss/share/classes/sun/security/krb5/KrbTgsReq.java ! src/java.security.jgss/share/classes/sun/security/krb5/internal/CredentialsUtil.java ! src/java.security.jgss/share/classes/sun/security/krb5/internal/KDCReq.java ! src/java.security.jgss/share/classes/sun/security/krb5/internal/ReferralsCache.java ! src/java.security.jgss/share/classes/sun/security/krb5/internal/Ticket.java ! test/jdk/sun/security/krb5/auto/KDC.java + test/jdk/sun/security/krb5/auto/S4U2selfNotF.java Changeset: 7049c13c Author: Weijun Wang Date: 2021-12-01 01:01:57 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7049c13cf4bf4cdfcd0c8f0fa96bf4c3748ae1e7 8231107: Allow store password to be null when saving a PKCS12 KeyStore Reviewed-by: mullan ! src/java.base/share/classes/java/security/KeyStore.java ! src/java.base/share/classes/java/security/KeyStoreSpi.java ! src/java.base/share/classes/sun/security/pkcs12/PKCS12KeyStore.java ! test/jdk/sun/security/pkcs12/EmptyPassword.java Changeset: 0a01baaf Author: Jaikiran Pai Date: 2021-12-01 01:17:07 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/0a01baaf2dd31a0fe2bc8b1327fb072cc3909eeb 8277986: Typo in javadoc of java.util.zip.ZipEntry#setTime Reviewed-by: alanb, iris, lancea ! src/java.base/share/classes/java/util/zip/ZipEntry.java Changeset: da2be99c Author: Pavel Rappo Date: 2021-12-01 01:25:17 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/da2be99cfe1121d5a59fa575ea0ac425ad4dbd0f 8277026: Remove blank lines remaining from snippet markup Reviewed-by: jjg ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/TagletWriterImpl.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/snippet/Parser.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/snippet/Style.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/snippet/StyledText.java ! test/langtools/jdk/javadoc/doclet/testSnippetTag/TestLangProperties.java ! test/langtools/jdk/javadoc/doclet/testSnippetTag/TestSnippetMarkup.java ! test/langtools/jdk/javadoc/doclet/testSnippetTag/TestSnippetTag.java Changeset: c7331935 Author: Masanori Yano Committer: Jayathirth D V Date: 2021-12-01 06:18:44 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/c73319354399596ab2b9aab0a7f62e8fa0ab9365 8262297: ImageIO.write() method will throw IndexOutOfBoundsException Reviewed-by: serb, jdv ! src/java.desktop/share/classes/com/sun/imageio/plugins/bmp/BMPImageWriter.java + test/jdk/javax/imageio/plugins/bmp/BMPBitsPerPixelTest.java Changeset: 349328c9 Author: Jie Fu Date: 2021-12-01 07:19:44 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/349328c929ccad242a344da69585404e4fea087f 8277777: [Vector API] assert(r->is_XMMRegister()) failed: must be in x86_32.ad Reviewed-by: thartmann, jbhateja ! src/hotspot/cpu/x86/x86_32.ad Changeset: 70d5dffb Author: Christian Hagedorn Date: 2021-12-01 08:24:59 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/70d5dffb4e7110902b59b56efaef31614916148c 8275326: C2: assert(no_dead_loop) failed: dead loop detected Reviewed-by: kvn, thartmann ! src/hotspot/share/opto/cfgnode.cpp Changeset: fde0b95e Author: Alan Bateman Date: 2021-12-01 08:44:51 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/fde0b95ede68c188479852c46df7e28dc4b79594 8277861: Terminally deprecate Thread.stop Reviewed-by: rriggs, mchung, uschindler, dholmes ! src/java.base/share/classes/java/lang/Thread.java ! src/java.base/share/classes/java/lang/ThreadGroup.java Changeset: 84aa0a19 Author: Jayathirth D V Date: 2021-12-01 10:22:17 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/84aa0a191b085a3d7cb338fd5e67281d0e4b57be 8278047: Few javax/imageio test regressed after JDK-8262297 fix Reviewed-by: tschatzl ! src/java.desktop/share/classes/com/sun/imageio/plugins/bmp/BMPImageWriter.java - test/jdk/javax/imageio/plugins/bmp/BMPBitsPerPixelTest.java Changeset: f505396c Author: Julia Boes Date: 2021-12-01 10:37:09 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f505396cccdd00a284b516dee1e314d1bf285f9e 8277459: Add jwebserver tool Reviewed-by: michaelm, dfuchs, ihse + make/modules/jdk.httpserver/Launcher.gmk ! src/jdk.httpserver/share/classes/com/sun/net/httpserver/SimpleFileServer.java ! src/jdk.httpserver/share/classes/com/sun/net/httpserver/package-info.java ! src/jdk.httpserver/share/classes/module-info.java + src/jdk.httpserver/share/classes/sun/net/httpserver/simpleserver/JWebServer.java ! src/jdk.httpserver/share/classes/sun/net/httpserver/simpleserver/Main.java ! src/jdk.httpserver/share/classes/sun/net/httpserver/simpleserver/SimpleFileServerImpl.java ! src/jdk.httpserver/share/classes/sun/net/httpserver/simpleserver/resources/simpleserver.properties + src/jdk.httpserver/share/man/jwebserver.1 ! test/jdk/com/sun/net/httpserver/simpleserver/CommandLineNegativeTest.java ! test/jdk/com/sun/net/httpserver/simpleserver/CommandLinePortNotSpecifiedTest.java ! test/jdk/com/sun/net/httpserver/simpleserver/CommandLinePositiveTest.java = test/jdk/com/sun/net/httpserver/simpleserver/jwebserver/CommandLineNegativeTest.java = test/jdk/com/sun/net/httpserver/simpleserver/jwebserver/CommandLinePortNotSpecifiedTest.java + test/jdk/com/sun/net/httpserver/simpleserver/jwebserver/CommandLinePositiveTest.java ! test/jdk/tools/launcher/HelpFlagsTest.java ! test/jdk/tools/launcher/VersionCheck.java Changeset: 0c29ee50 Author: Andrey Turbanov Committer: Erik Gahlin Date: 2021-12-01 11:09:31 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/0c29ee50f07aa003f7cdaaa54f96b5c75b1f04db 8274319: Replace usages of Collections.sort with List.sort call in jdk.jfr Reviewed-by: egahlin ! src/jdk.jfr/share/classes/jdk/jfr/internal/MetadataReader.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/PlatformRecorder.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/SettingsManager.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/TypeLibrary.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/RepositoryFiles.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/dcmd/AbstractDCmd.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/dcmd/DCmdCheck.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/tool/EventPrintWriter.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/tool/Metadata.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/tool/Summary.java Changeset: bc6dce14 Author: Hamlin Li Date: 2021-12-01 11:26:42 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/bc6dce149efef54b1d6c945c68cd75feb1276f5b 8277736: G1: Allow forced evacuation failure of first N regions in collection set Reviewed-by: ayang, tschatzl ! src/hotspot/share/gc/g1/g1ParScanThreadState.cpp ! src/hotspot/share/gc/g1/g1ParScanThreadState.hpp ! src/hotspot/share/gc/g1/g1YoungGCEvacFailureInjector.cpp ! src/hotspot/share/gc/g1/g1YoungGCEvacFailureInjector.hpp ! src/hotspot/share/gc/g1/g1YoungGCEvacFailureInjector.inline.hpp ! src/hotspot/share/gc/g1/g1_globals.hpp Changeset: 8d7958e4 Author: Aleksey Shipilev Date: 2021-12-01 12:06:07 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8d7958e46969fd59df7bc6dd1cbe31ae63686b05 8277981: String Deduplication table is never cleaned up due to bad dead_factor_for_cleanup Reviewed-by: zgu, kbarrett, tschatzl ! src/hotspot/share/gc/shared/stringdedup/stringDedupConfig.cpp Changeset: 37ff7f3b Author: KIRIYAMA Takuya Committer: Aleksey Shipilev Date: 2021-12-01 12:47:26 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/37ff7f3b66eaa74d62d6a93f2f34ec744db21834 8277866: gc/epsilon/TestMemoryMXBeans.java failed with wrong initial heap size Reviewed-by: tschatzl, shade ! test/hotspot/jtreg/gc/epsilon/TestMemoryMXBeans.java Changeset: abaa073b Author: Zhengyu Gu Date: 2021-12-01 13:14:09 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/abaa073bcbdb202658c8a97401ffb098d71e0f16 8277946: NMT: Deprecate and remove VM.native_memory shutdown jcmd command option Reviewed-by: stuefe, shade, dholmes ! src/hotspot/share/services/nmtDCmd.cpp ! src/hotspot/share/services/nmtDCmd.hpp ! test/hotspot/jtreg/runtime/NMT/JcmdWithNMTDisabled.java - test/hotspot/jtreg/runtime/NMT/ShutdownTwice.java - test/hotspot/jtreg/runtime/NMT/SummaryAfterShutdown.java Changeset: 1e9ed54d Author: Ravi Reddy Committer: Sean Coffey Date: 2021-12-01 15:35:00 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/1e9ed54d362b8c57be5fbbac2de5afbd0f05435f 8193682: Infinite loop in ZipOutputStream.close() Reviewed-by: lancea, coffeys ! src/java.base/share/classes/java/util/zip/DeflaterOutputStream.java ! src/java.base/share/classes/java/util/zip/GZIPOutputStream.java ! src/java.base/share/classes/java/util/zip/ZipOutputStream.java + test/jdk/java/util/zip/CloseDeflaterTest.java Changeset: 9b3e6720 Author: Paul Sandoz Date: 2021-12-01 16:12:46 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9b3e67205913daa1960373a4ab33422137082696 8278014: [vectorapi] Remove test run script Reviewed-by: sviswanathan, jiefu, shade - test/jdk/jdk/incubator/vector/build-tests.sh ! test/jdk/jdk/incubator/vector/clean.sh ! test/jdk/jdk/incubator/vector/config.sh ! test/jdk/jdk/incubator/vector/gen-tests.sh - test/jdk/jdk/incubator/vector/run-tests.sh Changeset: a363b7b9 Author: Naoto Sato Date: 2021-12-01 17:14:53 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/a363b7b9217cbb9a7580a87b812da8d5a4215326 8177819: DateTimeFormatterBuilder zone parsing should recognise DST 8277049: ZonedDateTime parse in Fall DST transition fails to retain the correct zonename. Reviewed-by: joehw, scolebourne ! src/java.base/share/classes/java/time/format/DateTimeFormatter.java ! src/java.base/share/classes/java/time/format/DateTimeFormatterBuilder.java ! src/java.base/share/classes/java/time/format/DateTimeParseContext.java ! src/java.base/share/classes/java/time/format/Parsed.java ! test/jdk/java/time/test/java/time/format/TestZoneTextPrinterParser.java Changeset: f41e768b Author: Andrew Leonard Date: 2021-12-01 18:13:16 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f41e768bba2b2ce3b3cc5813ccb1ac4984dcefbd 8277762: Allow configuration of HOTSPOT_BUILD_USER Reviewed-by: erikj ! make/autoconf/basic.m4 ! make/autoconf/jdk-version.m4 Changeset: 0dfb3a70 Author: Hannes Walln?fer Date: 2021-12-01 18:19:26 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/0dfb3a705d2ad0ce4ac0f7dd18fb65d7ae735f16 8268582: javadoc throws NPE with --ignore-source-errors option Reviewed-by: jjg ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java ! test/langtools/jdk/javadoc/tool/IgnoreSourceErrors.java Changeset: 51d6d7a3 Author: Mikael Vidstedt Date: 2021-12-01 20:21:38 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/51d6d7a36b760b2b2b77269cc06438108a9931a2 8266839: Enable pandoc on macosx-aarch64 at Oracle Reviewed-by: erikj ! make/conf/jib-profiles.js Changeset: 67745fa7 Author: Hamlin Li Date: 2021-12-02 01:06:45 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/67745fa749e5075b37aeca7db9d446bc287da835 8276299: G1: Unify the wording buffer/node/element in G1SegmentedArrayXxx, G1CardSetXxx and related classes Reviewed-by: tschatzl, ayang, iwalulya ! src/hotspot/share/gc/g1/g1Arguments.cpp ! src/hotspot/share/gc/g1/g1CardSet.cpp ! src/hotspot/share/gc/g1/g1CardSetContainers.hpp ! src/hotspot/share/gc/g1/g1CardSetContainers.inline.hpp ! src/hotspot/share/gc/g1/g1CardSetMemory.cpp ! src/hotspot/share/gc/g1/g1CardSetMemory.hpp ! src/hotspot/share/gc/g1/g1CardSetMemory.inline.hpp ! src/hotspot/share/gc/g1/g1EvacFailureObjectsSet.cpp ! src/hotspot/share/gc/g1/g1EvacFailureObjectsSet.hpp ! src/hotspot/share/gc/g1/g1RemSetSummary.cpp ! src/hotspot/share/gc/g1/g1SegmentedArray.hpp ! src/hotspot/share/gc/g1/g1SegmentedArray.inline.hpp ! src/hotspot/share/gc/g1/g1SegmentedArrayFreePool.cpp ! src/hotspot/share/gc/g1/g1SegmentedArrayFreePool.hpp Changeset: 09522db5 Author: Jaikiran Pai Date: 2021-12-02 01:29:52 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/09522db5aa9503131381bbb4fe3f2eae829645ce 8277647: [REDO] JDK-8277507 Add jlink.debug system property while launching jpackage tests to help diagonize recent intermittent failures Reviewed-by: sundar ! test/jdk/tools/jpackage/helpers/jdk/jpackage/test/JPackageCommand.java Changeset: b226ab99 Author: Joe Wang Date: 2021-12-02 02:50:13 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/b226ab99c872e791d3ed9fca015cf92847904c34 8276141: XPathFactory set/getProperty method Reviewed-by: rriggs, naoto, lancea, iris, alanb ! src/java.xml/share/classes/com/sun/org/apache/xpath/internal/jaxp/XPathFactoryImpl.java ! src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources.java ! src/java.xml/share/classes/javax/xml/xpath/XPathFactory.java + test/jaxp/javax/xml/jaxp/unittest/xpath/XPathFactoryDummyImpl.java ! test/jaxp/javax/xml/jaxp/unittest/xpath/XPathTest.java Changeset: 8198807b Author: Jayathirth D V Date: 2021-12-02 05:00:48 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8198807b4a811040c7d9f65fb98494fc7d840814 8266435: WBMPImageReader.read() should not truncate the input stream Reviewed-by: serb ! src/java.desktop/share/classes/com/sun/imageio/plugins/wbmp/WBMPImageReader.java + test/jdk/javax/imageio/plugins/wbmp/WBMPStreamTruncateTest.java Changeset: a093cddd Author: Joe Wang Date: 2021-12-02 06:52:45 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/a093cdddaf5ab88eb84a147e523db5c3e1be54be 8276657: XSLT compiler tries to define a class with empty name Reviewed-by: naoto ! src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java Changeset: 088b244e Author: Patric Hedlin Date: 2021-12-02 09:25:12 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/088b244ec6d9393a1fcd2233fa5b4cf46f9ae0dd 8251216: Implement MD5 intrinsics on AArch64 Co-authored-by: Ludovic Henry Reviewed-by: aph, neliasso ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/aarch64/stubRoutines_aarch64.hpp ! src/hotspot/cpu/aarch64/vm_version_aarch64.cpp ! test/hotspot/jtreg/compiler/testlibrary/sha/predicate/IntrinsicPredicates.java Changeset: 103da8fa Author: Hannes Walln?fer Date: 2021-12-02 09:40:24 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/103da8fae12a2aaff1a02a219690ce89fc098641 8274639: Provide a way to disable warnings for cross-modular links Reviewed-by: jjg ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard.properties ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/BaseOptions.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Extern.java ! test/langtools/jdk/javadoc/doclet/testLinkOption/TestLinkOptionWithModule.java Changeset: 84ca14d0 Author: Markus Gr?nlund Date: 2021-12-02 09:56:39 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/84ca14d0e90fd2c0390a07fc1bcfad0fce14cd3b 8277194: applications/runthese/RunThese30M.java crashes with jfrSymbolTable.cpp:305 assert(_instance != null) Reviewed-by: shade ! src/hotspot/share/jfr/periodic/jfrFinalizerStatisticsEvent.cpp Changeset: 16cfbc4f Author: Maurizio Cimadamore Date: 2021-12-02 10:41:36 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/16cfbc4f4c0e979160cc8fb946453fa8afa5d1cc 8278071: typos in MemorySegment::set, MemorySegment::setAtIndex javadoc Reviewed-by: iris ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemorySegment.java Changeset: e002bfec Author: Albert Mingkun Yang Date: 2021-12-02 10:45:36 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e002bfec8cb815b551c9b0f851a8a5b288e8360d 8278049: G1: add precondition to set_remainder_to_point_to_start Reviewed-by: mli, tschatzl ! src/hotspot/share/gc/g1/g1BlockOffsetTable.cpp Changeset: ea905bd3 Author: Maurizio Cimadamore Date: 2021-12-02 11:22:31 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ea905bd3dad5fc1baad66e714bdd01fa679d2d46 8277924: Small tweaks to foreign function and memory API Reviewed-by: jvernee, psandoz ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/FunctionDescriptor.java ! src/jdk.incubator.foreign/share/classes/jdk/internal/foreign/abi/CallingSequenceBuilder.java ! test/jdk/java/foreign/TestFunctionDescriptor.java ! test/jdk/java/foreign/TestIntrinsics.java ! test/jdk/java/foreign/TestUpcall.java ! test/jdk/java/foreign/callarranger/TestSysVCallArranger.java ! test/micro/org/openjdk/bench/jdk/incubator/foreign/Upcalls.java Changeset: b79554bb Author: Hannes Walln?fer Date: 2021-12-02 11:33:46 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/b79554bb5cef14590d427543a40efbcc60c66548 8278130: Failure in jdk/javadoc/tool/CheckManPageOptions.java after JDK-8274639 Reviewed-by: prappo ! test/langtools/jdk/javadoc/tool/CheckManPageOptions.java Changeset: 3d98ec1b Author: Jim Laskey Date: 2021-12-02 13:00:14 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3d98ec1b7bc77237177ecfc069c0e9a7e75829bc 8273056: java.util.random does not correctly sample exponential or Gaussian distributions Co-authored-by: Guy Steele Reviewed-by: bpb, darcy ! src/java.base/share/classes/jdk/internal/util/random/RandomSupport.java Changeset: 76968979 Author: Andy Herrick Date: 2021-12-02 14:08:33 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7696897932a35708b1632517127c1a3a59919878 8276837: [macos]: Error when signing the additional launcher Reviewed-by: asemenyuk, almatvee ! src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacAppImageBuilder.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/IOUtils.java ! test/jdk/tools/jpackage/macosx/SigningAppImageTest.java Changeset: d2b16c89 Author: Calvin Cheung Date: 2021-12-02 14:39:27 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/d2b16c89855d584a563caa4f725802dc91a83407 8276126: Dump time class transformation causes heap objects of non-boot classes to be archived Reviewed-by: iklam, minqi ! src/hotspot/share/cds/heapShared.cpp ! src/hotspot/share/cds/heapShared.hpp ! src/hotspot/share/classfile/classLoader.cpp ! src/hotspot/share/classfile/classLoader.hpp ! src/hotspot/share/classfile/classLoaderExt.cpp ! src/hotspot/share/classfile/classLoaderExt.hpp ! src/hotspot/share/classfile/klassFactory.cpp ! test/hotspot/jtreg/TEST.groups + test/hotspot/jtreg/runtime/cds/appcds/LambdaWithJavaAgent.java + test/hotspot/jtreg/runtime/cds/appcds/test-classes/TransformBootClass.java + test/hotspot/jtreg/runtime/cds/appcds/test-classes/TransformBootClass.mf Changeset: 3889af3f Author: Roland Westrelin Date: 2021-12-02 15:09:58 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3889af3f7debc4f8d75f620bb54134d1d11a6c83 8277906: Incorrect type for IV phi of long counted loops after CCP Reviewed-by: thartmann, chagedorn ! src/hotspot/share/opto/phaseX.cpp + test/hotspot/jtreg/compiler/longcountedloops/TestIVPhiTypeIncorrectAfterCCP.java Changeset: 65960f71 Author: Jie Fu Date: 2021-12-02 15:15:06 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/65960f712ed6d4c4478d74f0842ce78d500d4229 8277753: Long*VectorTests.java fail with "bad AD file" on x86_32 after JDK-8276162 Reviewed-by: kvn, thartmann ! src/hotspot/cpu/x86/x86_32.ad Changeset: 8d9cb2ef Author: Adam Sotona Date: 2021-12-02 15:29:26 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8d9cb2efe655cc3945b3fe51a5e7d90f48b688e6 8278078: Cannot reference super before supertype constructor has been called Reviewed-by: mcimadamore ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java + test/langtools/tools/javac/8278078/InvalidThisAndSuperInConstructorArgTest.java + test/langtools/tools/javac/8278078/InvalidThisAndSuperInConstructorArgTest.out + test/langtools/tools/javac/8278078/ValidThisAndSuperInConstructorArgTest.java Changeset: dc2abc9f Author: Andrew Leonard Date: 2021-12-02 15:36:43 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/dc2abc9f05c2b7c52aeb242082359c48963f9854 8278080: Add --with-cacerts-src='user cacerts folder' to enable deterministic cacerts generation Reviewed-by: erikj ! make/autoconf/jdk-options.m4 ! make/autoconf/spec.gmk.in ! make/modules/java.base/Gendata.gmk Changeset: 7c4ef3ab Author: Leo Korinth Date: 2021-12-02 15:59:50 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7c4ef3abaff55b29dddc50f2aea8a04a3214f9fb 8277985: G1: Compare max_parallel_refinement_threads to UINT_MAX Reviewed-by: kbarrett, tschatzl ! src/hotspot/share/gc/g1/g1Arguments.cpp Changeset: ad1ff27b Author: Lance Andersen Date: 2021-12-02 16:33:32 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ad1ff27b730773a141d73744e5f5a899bdfbea78 8277422: tools/jar/JarEntryTime.java fails with modified time mismatch Reviewed-by: joehw, msheppar, naoto ! test/jdk/tools/jar/JarEntryTime.java Changeset: 8b042d14 Author: Joe Darcy Date: 2021-12-02 18:17:32 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8b042d14b78c66b50495d0d8b559ca3f6744d806 8257856: Make ClassFileVersionsTest.java robust to JDK version updates Reviewed-by: alanb ! test/jdk/java/lang/module/ClassFileVersionsTest.java Changeset: 8f196a24 Author: Ao Qi Committer: Martin Doerr Date: 2021-12-02 18:57:23 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8f196a2487982a0ae827cdef17243b8c64ba3217 8278037: Clean up PPC32 related code in C1 Reviewed-by: jiefu, stuefe, shade, mdoerr ! src/hotspot/share/c1/c1_LIR.cpp ! src/hotspot/share/c1/c1_LinearScan.cpp ! src/hotspot/share/c1/c1_Runtime1.cpp Changeset: 4f15be2c Author: Liam Miller-Cushon Date: 2021-12-02 19:17:09 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/4f15be2cd41252d2e5a3f0832f07b98462e9076d 8277965: Enclosing instance optimization affects serialization Reviewed-by: darcy ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java ! test/langtools/tools/javac/optimizeOuterThis/OptimizeOuterThis.java Changeset: 669c90e2 Author: Valerie Peng Date: 2021-12-02 19:28:42 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/669c90e23b2397fa9fb4388e8380c95c3b19eb48 8278099: two sun/security/pkcs11/Signature tests failed with AssertionError Reviewed-by: dcubed ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/CK_MECHANISM.java Changeset: 30087cc1 Author: Andrey Turbanov Committer: Roger Riggs Date: 2021-12-02 19:40:17 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/30087cc1b829e4c2cd77b7c28d077426888160e3 8275342: Change nested classes in java.prefs to static nested classes Reviewed-by: dfuchs, rriggs ! src/java.prefs/macosx/classes/java/util/prefs/MacOSXPreferencesFile.java ! src/java.prefs/share/classes/java/util/prefs/AbstractPreferences.java ! src/java.prefs/unix/classes/java/util/prefs/FileSystemPreferences.java Changeset: 73a9654c Author: Sergey Tsypanov Committer: Roger Riggs Date: 2021-12-02 20:00:49 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/73a9654c2685e14454a355a16bfe3f6687966f14 8276806: Use Objects.checkFromIndexSize where possible in java.base Reviewed-by: rriggs, lancea ! src/java.base/share/classes/java/io/ObjectInputStream.java ! src/java.base/share/classes/java/io/ObjectOutputStream.java ! src/java.base/share/classes/java/io/PipedInputStream.java ! src/java.base/share/classes/java/io/PushbackInputStream.java ! src/java.base/share/classes/java/io/SequenceInputStream.java ! src/java.base/share/classes/java/lang/AbstractStringBuilder.java ! src/java.base/share/classes/java/util/zip/DeflaterInputStream.java ! src/java.base/share/classes/java/util/zip/InflaterInputStream.java ! src/java.base/share/classes/java/util/zip/InflaterOutputStream.java ! src/java.base/share/classes/java/util/zip/ZipInputStream.java ! src/java.base/share/classes/java/util/zip/ZipOutputStream.java Changeset: e0f1fc78 Author: Scott Gibbons Committer: Sandhya Viswanathan Date: 2021-12-02 20:06:05 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e0f1fc783cb492dd1eb18f2d56c57bdc160a410d 8277358: Accelerate CRC32-C Co-authored-by: Greg Tucker Co-authored-by: Scott Gibbons Reviewed-by: kvn, sviswanathan, ecaspole ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp ! src/hotspot/cpu/x86/stubRoutines_x86.cpp ! src/hotspot/cpu/x86/stubRoutines_x86.hpp + test/micro/org/openjdk/bench/java/util/TestCRC32C.java Changeset: 652b5f85 Author: Tim Prinzing Committer: Brent Christian Date: 2021-12-02 20:47:29 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/652b5f8546d0453238166f8fcd0cd3d882886bb4 8276674: Malformed Javadoc inline tags in JDK source Reviewed-by: jjg, rriggs, prappo, bchristi ! src/java.base/share/classes/java/util/stream/AbstractTask.java ! src/java.base/share/classes/java/util/stream/FindOps.java ! src/java.base/share/classes/java/util/stream/Node.java ! src/java.base/share/classes/java/util/stream/Nodes.java ! src/java.base/share/classes/java/util/stream/PipelineHelper.java ! src/jdk.jshell/share/classes/jdk/internal/jshell/tool/Feedback.java ! test/hotspot/jtreg/vmTestbase/nsk/share/ClassFileFinder.java ! test/langtools/tools/javac/classfiles/attributes/lib/TestResult.java Changeset: 15345e3e Author: Brian Burkhalter Date: 2021-12-02 20:53:13 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/15345e3edcd8beee0d2c3192cfaaf76c7accee1f 8276661: (fs) UserDefinedFileAttributeView no longer works with long path (win) Reviewed-by: alanb ! src/java.base/windows/classes/sun/nio/fs/WindowsPath.java ! src/java.base/windows/classes/sun/nio/fs/WindowsUserDefinedFileAttributeView.java ! test/jdk/java/nio/file/attribute/UserDefinedFileAttributeView/Basic.java Changeset: b310f301 Author: Alexey Ivanov Date: 2021-12-02 20:59:46 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/b310f301efd5390408fb56b62cc09eb9a1604413 8277396: [TESTBUG] In DefaultButtonModelCrashTest.java, frame is accessed from main thread Reviewed-by: serb, psadhukhan ! test/jdk/javax/swing/DefaultButtonModel/DefaultButtonModelCrashTest.java Changeset: b8ac0d20 Author: Tim Prinzing Committer: Lance Andersen Date: 2021-12-02 21:22:43 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/b8ac0d20ceec26b3a1dd0b9577817fa6320ea9ef 8276681: Additional malformed Javadoc inline tags in JDK source Reviewed-by: lancea ! src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/AnimationController.java ! src/java.management/share/classes/javax/management/modelmbean/RequiredModelMBean.java ! src/java.net.http/share/classes/jdk/internal/net/http/ResponseSubscribers.java ! src/java.rmi/share/classes/java/rmi/server/RemoteObject.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/signature/SignatureProperties.java ! src/jdk.compiler/share/classes/com/sun/source/util/Trees.java ! test/jdk/java/awt/Desktop/DesktopEventsExceptions/DesktopEventsExceptions.java ! test/jdk/java/awt/regtesthelpers/process/ProcessCommunicator.java ! test/jdk/java/net/httpclient/reactivestreams-tck/org/reactivestreams/tck/flow/support/PublisherVerificationRules.java Changeset: c93552c8 Author: Magnus Ihse Bursie Date: 2021-12-02 21:31:13 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/c93552c8bbcdabb6219327d67409bf63432f49d8 8277069: [REDO] JDK-8276743 Make openjdk build Zip Archive generation "reproducible" Co-authored-by: Andrew Leonard Co-authored-by: Magnus Ihse Bursie Reviewed-by: erikj ! make/Main.gmk ! make/ToolsJdk.gmk ! make/common/ZipArchive.gmk + make/jdk/src/classes/build/tools/makezipreproducible/MakeZipReproducible.java Changeset: 19ce33d5 Author: Chris Plummer Date: 2021-12-02 22:16:55 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/19ce33d5e770dc3fd7a9588e7954bbb499b7a05c 8258512: serviceability/sa/TestJmapCore.java timed out on macOS 10.13.6 Reviewed-by: lmesnik, dcubed ! test/hotspot/jtreg/serviceability/sa/TestJmapCore.java Changeset: 473ececa Author: Jie Fu Date: 2021-12-03 06:00:14 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/473ececaf5df8392e76d022d7126770526be31f7 8278174: runtime/cds/appcds/LambdaWithJavaAgent.java fails with release VMs Reviewed-by: dholmes ! test/hotspot/jtreg/runtime/cds/appcds/LambdaWithJavaAgent.java Changeset: bef5c7a2 Author: Aleksey Shipilev Date: 2021-12-03 07:19:48 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/bef5c7a2865e53778e9e476e57c31c0b0f98bcb1 8278116: runtime/modules/LoadUnloadModuleStress.java has duplicate -Xmx Reviewed-by: dholmes ! test/hotspot/jtreg/runtime/modules/LoadUnloadModuleStress.java Changeset: 0fbd2713 Author: Aleksey Shipilev Date: 2021-12-03 07:20:39 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/0fbd2713f1b47c343172fa34be021706c957520e 8278115: gc/stress/gclocker/TestGCLockerWithSerial.java has duplicate -Xmx Reviewed-by: mli, tschatzl ! test/hotspot/jtreg/gc/stress/gclocker/TestGCLockerWithSerial.java Changeset: 89070032 Author: Jan Lahoda Date: 2021-12-03 07:40:34 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/890700320a379c2712fe420017f7b84a8904c0c3 8272234: Pass originating elements from Filer to JavaFileManager Reviewed-by: jjg ! src/java.compiler/share/classes/javax/tools/ForwardingJavaFileManager.java ! src/java.compiler/share/classes/javax/tools/JavaFileManager.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/api/ClientCodeWrapper.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/main/DelegatingJavaFileManager.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacFiler.java ! test/langtools/tools/javac/api/TestClientCodeWrapper.java + test/langtools/tools/javac/processing/filer/TestOriginatingElements.java Changeset: 45da3aea Author: Andrew Leonard Date: 2021-12-03 08:28:37 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/45da3aea22fd85f214e661b2c98631cb91ddb55d 8278163: --with-cacerts-src variable resolved after GenerateCacerts recipe setup Reviewed-by: ihse ! make/modules/java.base/Gendata.gmk Changeset: d1cad246 Author: Pavel Rappo Date: 2021-12-03 09:54:23 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/d1cad2463a3f70d4ff9246d5bbae268bfa6717d7 8278168: Add a few missing words to the specification of Files.mismatch Reviewed-by: rriggs, bpb, iris, alanb ! src/java.base/share/classes/java/nio/file/Files.java Changeset: 53df9ffb Author: Julia Boes Date: 2021-12-03 10:18:21 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/53df9ffbca841358eb8bb49837ec4bf43a1a743b 8278154: SimpleFileServer#createFileServer() should specify that the returned server is not started Reviewed-by: dfuchs ! src/jdk.httpserver/share/classes/com/sun/net/httpserver/SimpleFileServer.java Changeset: e4774e68 Author: Albert Mingkun Yang Date: 2021-12-03 10:57:18 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e4774e68e3bdb186269e909247bbd1b9f8e4f4be 8277916: Gather non-strong reference count logic in a single place Reviewed-by: sjohanss, mli ! src/hotspot/share/gc/shared/referenceProcessor.cpp ! src/hotspot/share/gc/shared/referenceProcessorPhaseTimes.cpp ! src/hotspot/share/gc/shared/referenceProcessorPhaseTimes.hpp Changeset: dda8f26c Author: Albert Mingkun Yang Date: 2021-12-03 10:58:14 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/dda8f26ce0d2b54ef78b74b82e58255aca80576a 8278139: G1: Refactor G1BlockOffsetTablePart::block_at_or_preceding Reviewed-by: sjohanss, mli ! src/hotspot/share/gc/g1/g1BlockOffsetTable.inline.hpp Changeset: 79cda8ef Author: duke Date: 2021-12-03 11:01:20 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/79cda8eff607ac5b902051ea54f8cf00017526b4 Automatic merge of jdk:master into master From mcimadamore at openjdk.java.net Fri Dec 3 13:20:04 2021 From: mcimadamore at openjdk.java.net (Maurizio Cimadamore) Date: Fri, 3 Dec 2021 13:20:04 GMT Subject: [foreign-memaccess+abi] RFR: 8278151: Heap segments should handle alignment constraints in a deterministic fashion [v5] In-Reply-To: References: Message-ID: > This patch fixes the issue with alignment checks on heap segment leading to failures which depend on VM implementation details and layout choices. > > This is discussed in more details here: > https://mail.openjdk.java.net/pipermail/panama-dev/2021-November/015852.html > > The fix consists in adding a *max alignment* mask to all segments. Native segments have mask set at 0, whereas heap segment have the mask set at the element size of their backing array (e.g. 1 for `byte[]`, 2 for `short[]`/`char[]` and so forth). > > The alignment check is the computed as follows: > > > if (((address | maxAlignMask) & alignmentMask) != 0) { > throw ... > } > > > Where `address` is the long address being dereferenced, `maxAlignMask` is the max alignment associated with the segment being dereferenced, and `alignmentMask` is the alignment associated with the layout used during a dereference operation. > This patch also applies alignment checks to bulk copy operations as well, and it consolidates the way in which alignment checks are carried out (by adding a couple of helper methods, in `Utils` and `AbstractMemorySegment`, respectively). > > This patch also changes alignment errors to uniformly throw IllegalArgumentException, in all cases. > > Finally, this patch clarifies that during bulk copy and spliterator calls, the element layout alignment cannot be bigger than its size (as the size is used as a stride). > > A new test `TestHeapAlignment` has been added to check that alignment of heap segment is correctly enforced. > > Performance-wise, this patch doesn't change anything; that's because the value layout constants in `ValueLayout` are all unaligned. For code using aligned layout, some slight regression when using heap segment is possible (whereas native segment should have same performance as before). Eventually, these performance issues should disappear once [1] is fixed. > > [1] - https://bugs.openjdk.java.net/browse/JDK-8277850 Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision: Check for hyper alignment in indexed getter/setters Improve javadoc (address review comment) Add more tests ------------- Changes: - all: https://git.openjdk.java.net/panama-foreign/pull/622/files - new: https://git.openjdk.java.net/panama-foreign/pull/622/files/514e4888..765e2277 Webrevs: - full: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=622&range=04 - incr: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=622&range=03-04 Stats: 174 lines in 9 files changed: 124 ins; 14 del; 36 mod Patch: https://git.openjdk.java.net/panama-foreign/pull/622.diff Fetch: git fetch https://git.openjdk.java.net/panama-foreign pull/622/head:pull/622 PR: https://git.openjdk.java.net/panama-foreign/pull/622 From mcimadamore at openjdk.java.net Fri Dec 3 13:26:42 2021 From: mcimadamore at openjdk.java.net (Maurizio Cimadamore) Date: Fri, 3 Dec 2021 13:26:42 GMT Subject: [foreign-memaccess+abi] RFR: 8278151: Heap segments should handle alignment constraints in a deterministic fashion [v4] In-Reply-To: References: Message-ID: On Thu, 2 Dec 2021 17:52:50 GMT, Paul Sandoz wrote: >> Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision: >> >> Strengthen test > > src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemorySegment.java line 265: > >> 263: * {@code elementLayout} size is greater than zero, if this segment is >> 264: * incompatible with the alignment constraints in the provided layout, >> 265: * or if the {@code elementLayout} alignment is greater than its size. > > I believe its possible to have multiple declarations of `@throws IllegalArgumentException`, so if you wish for clarity there could be a declaration for each separate case. This is a good suggestion, but I'd prefer to handle it separately, as there are also other places where this can come in handy. ------------- PR: https://git.openjdk.java.net/panama-foreign/pull/622 From duke at openjdk.java.net Fri Dec 3 16:43:21 2021 From: duke at openjdk.java.net (J.Duke) Date: Fri, 3 Dec 2021 16:43:21 GMT Subject: [foreign-memaccess+abi] RFR: Merge master [v2] In-Reply-To: References: Message-ID: > Hi all, > > this is an _automatically_ generated pull request to notify you that there are 108 commits from the branch `master`that can **not** be merged into the branch `foreign-memaccess+abi`: > > The following files contains merge conflicts: > > - src/hotspot/cpu/x86/universalUpcallHandler_x86_64.cpp > - src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/FunctionDescriptor.java > - src/jdk.incubator.foreign/share/classes/jdk/internal/foreign/abi/CallingSequenceBuilder.java > - test/jdk/java/foreign/TestUpcall.java > - test/jdk/java/foreign/callarranger/TestSysVCallArranger.java > > All Committers in this [project](https://openjdk.java.net/census#panama) have access to my [personal fork](https://github.com/openjdk-bot/panama-foreign) and can therefore help resolve these merge conflicts (you may want to coordinate who should do this). > The following paragraphs will give an example on how to solve these merge conflicts and push the resulting merge commit to this pull request. > The below commands should be run in a local clone of your [personal fork](https://wiki.openjdk.java.net/display/skara#Skara-Personalforks) of the [openjdk/panama-foreign](https://github.com/openjdk/panama-foreign) repository. > > > # Ensure target branch is up to date > $ git checkout foreign-memaccess+abi > $ git pull https://github.com/openjdk/panama-foreign.git foreign-memaccess+abi > > # Fetch and checkout the branch for this pull request > $ git fetch https://github.com/openjdk-bot/panama-foreign.git +108:openjdk-bot-108 > $ git checkout openjdk-bot-108 > > # Merge the target branch > $ git merge foreign-memaccess+abi > > > When you have resolved the conflicts resulting from the `git merge` command above, run the following commands to create a merge commit: > > > $ git add paths/to/files/with/conflicts > $ git commit -m 'Merge master' > > > > When you have created the merge commit, run the following command to push the merge commit to this pull request: > > > $ git push https://github.com/openjdk-bot/panama-foreign.git openjdk-bot-108:108 > > > _Note_: if you are using SSH to push commits to GitHub, then change the URL in the above `git push` command accordingly. > > Thanks, > J. Duke J. Duke 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 854 additional commits since the last revision: - Merge branch 'foreign-memaccess+abi' into openjdk-bot-108 - 8277945: Use snippets in jdk.incubator.foreign API documentation Reviewed-by: psandoz, mcimadamore, sundar - Merge master - 8277657: OptimizedEntryBlob should extend RuntimeBlob directly Reviewed-by: mcimadamore - Merge master - Add missing include for Linux Reviewed-by: mcimadamore - 8275647: Enable multi-register return values for optimized upcall stubs Reviewed-by: mcimadamore, ngasson - 8276987: Optimized upcall stub should be printed with -XX:+PrintStubCode Reviewed-by: jvernee - Merge master - 8275646: Implement optimized upcall stubs on AArch64 Reviewed-by: jvernee - ... and 844 more: https://git.openjdk.java.net/panama-foreign/compare/79cda8ef...5283f510 ------------- Changes: - all: https://git.openjdk.java.net/panama-foreign/pull/623/files - new: https://git.openjdk.java.net/panama-foreign/pull/623/files/79cda8ef..5283f510 Webrevs: - full: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=623&range=01 - incr: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=623&range=00-01 Stats: 29649 lines in 127 files changed: 26538 ins; 2110 del; 1001 mod Patch: https://git.openjdk.java.net/panama-foreign/pull/623.diff Fetch: git fetch https://git.openjdk.java.net/panama-foreign pull/623/head:pull/623 PR: https://git.openjdk.java.net/panama-foreign/pull/623 From duke at openjdk.java.net Fri Dec 3 16:43:23 2021 From: duke at openjdk.java.net (J.Duke) Date: Fri, 3 Dec 2021 16:43:23 GMT Subject: [foreign-memaccess+abi] Integrated: Merge master In-Reply-To: References: Message-ID: On Fri, 3 Dec 2021 11:01:42 GMT, J. Duke wrote: > Hi all, > > this is an _automatically_ generated pull request to notify you that there are 108 commits from the branch `master`that can **not** be merged into the branch `foreign-memaccess+abi`: > > The following files contains merge conflicts: > > - src/hotspot/cpu/x86/universalUpcallHandler_x86_64.cpp > - src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/FunctionDescriptor.java > - src/jdk.incubator.foreign/share/classes/jdk/internal/foreign/abi/CallingSequenceBuilder.java > - test/jdk/java/foreign/TestUpcall.java > - test/jdk/java/foreign/callarranger/TestSysVCallArranger.java > > All Committers in this [project](https://openjdk.java.net/census#panama) have access to my [personal fork](https://github.com/openjdk-bot/panama-foreign) and can therefore help resolve these merge conflicts (you may want to coordinate who should do this). > The following paragraphs will give an example on how to solve these merge conflicts and push the resulting merge commit to this pull request. > The below commands should be run in a local clone of your [personal fork](https://wiki.openjdk.java.net/display/skara#Skara-Personalforks) of the [openjdk/panama-foreign](https://github.com/openjdk/panama-foreign) repository. > > > # Ensure target branch is up to date > $ git checkout foreign-memaccess+abi > $ git pull https://github.com/openjdk/panama-foreign.git foreign-memaccess+abi > > # Fetch and checkout the branch for this pull request > $ git fetch https://github.com/openjdk-bot/panama-foreign.git +108:openjdk-bot-108 > $ git checkout openjdk-bot-108 > > # Merge the target branch > $ git merge foreign-memaccess+abi > > > When you have resolved the conflicts resulting from the `git merge` command above, run the following commands to create a merge commit: > > > $ git add paths/to/files/with/conflicts > $ git commit -m 'Merge master' > > > > When you have created the merge commit, run the following command to push the merge commit to this pull request: > > > $ git push https://github.com/openjdk-bot/panama-foreign.git openjdk-bot-108:108 > > > _Note_: if you are using SSH to push commits to GitHub, then change the URL in the above `git push` command accordingly. > > Thanks, > J. Duke This pull request has now been integrated. Changeset: 8a16279e Author: J. Duke Committer: Maurizio Cimadamore URL: https://git.openjdk.java.net/panama-foreign/commit/8a16279e9270c333d6f0f0f1edb88d427908e4e8 Stats: 8419 lines in 317 files changed: 5397 ins; 1617 del; 1405 mod Merge master ------------- PR: https://git.openjdk.java.net/panama-foreign/pull/623 From duke at openjdk.java.net Fri Dec 3 16:46:55 2021 From: duke at openjdk.java.net (J.Duke) Date: Fri, 3 Dec 2021 16:46:55 GMT Subject: [foreign-jextract] RFR: Merge foreign-memaccess+abi Message-ID: Hi all, this is an _automatically_ generated pull request to notify you that there are 109 commits from the branch `foreign-memaccess+abi`that can **not** be merged into the branch `foreign-jextract`: The following file contains merge conflicts: - test/jdk/tools/launcher/HelpFlagsTest.java All Committers in this [project](https://openjdk.java.net/census#panama) have access to my [personal fork](https://github.com/openjdk-bot/panama-foreign) and can therefore help resolve these merge conflicts (you may want to coordinate who should do this). The following paragraphs will give an example on how to solve these merge conflicts and push the resulting merge commit to this pull request. The below commands should be run in a local clone of your [personal fork](https://wiki.openjdk.java.net/display/skara#Skara-Personalforks) of the [openjdk/panama-foreign](https://github.com/openjdk/panama-foreign) repository. # Ensure target branch is up to date $ git checkout foreign-jextract $ git pull https://github.com/openjdk/panama-foreign.git foreign-jextract # Fetch and checkout the branch for this pull request $ git fetch https://github.com/openjdk-bot/panama-foreign.git +109:openjdk-bot-109 $ git checkout openjdk-bot-109 # Merge the target branch $ git merge foreign-jextract When you have resolved the conflicts resulting from the `git merge` command above, run the following commands to create a merge commit: $ git add paths/to/files/with/conflicts $ git commit -m 'Merge foreign-memaccess+abi' When you have created the merge commit, run the following command to push the merge commit to this pull request: $ git push https://github.com/openjdk-bot/panama-foreign.git openjdk-bot-109:109 _Note_: if you are using SSH to push commits to GitHub, then change the URL in the above `git push` command accordingly. Thanks, J. Duke ------------- Commit messages: - Merge master - Automatic merge of jdk:master into master - 8278139: G1: Refactor G1BlockOffsetTablePart::block_at_or_preceding - 8277916: Gather non-strong reference count logic in a single place - 8278154: SimpleFileServer#createFileServer() should specify that the returned server is not started - 8278168: Add a few missing words to the specification of Files.mismatch - 8278163: --with-cacerts-src variable resolved after GenerateCacerts recipe setup - 8272234: Pass originating elements from Filer to JavaFileManager - 8278115: gc/stress/gclocker/TestGCLockerWithSerial.java has duplicate -Xmx - 8278116: runtime/modules/LoadUnloadModuleStress.java has duplicate -Xmx - ... and 99 more: https://git.openjdk.java.net/panama-foreign/compare/43478b9b...8a16279e The webrev contains the conflicts with foreign-jextract: - merge conflicts: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=624&range=00.conflicts Changes: https://git.openjdk.java.net/panama-foreign/pull/624/files Stats: 8419 lines in 317 files changed: 5397 ins; 1617 del; 1405 mod Patch: https://git.openjdk.java.net/panama-foreign/pull/624.diff Fetch: git fetch https://git.openjdk.java.net/panama-foreign pull/624/head:pull/624 PR: https://git.openjdk.java.net/panama-foreign/pull/624 From mail at smogura.eu Fri Dec 3 17:02:16 2021 From: mail at smogura.eu (=?iso-8859-2?Q?Rados=B3aw_Smogura?=) Date: Fri, 3 Dec 2021 17:02:16 +0000 Subject: Off-topic - Panama project logo if any Message-ID: Hi all, I'm preparing a small presentation about the Panama project. I wonder if there's any logo? Kind regards, Rado From duke at openjdk.java.net Fri Dec 3 17:10:52 2021 From: duke at openjdk.java.net (J.Duke) Date: Fri, 3 Dec 2021 17:10:52 GMT Subject: [foreign-jextract] RFR: Merge foreign-memaccess+abi [v2] In-Reply-To: References: Message-ID: > Hi all, > > this is an _automatically_ generated pull request to notify you that there are 109 commits from the branch `foreign-memaccess+abi`that can **not** be merged into the branch `foreign-jextract`: > > The following file contains merge conflicts: > > - test/jdk/tools/launcher/HelpFlagsTest.java > > All Committers in this [project](https://openjdk.java.net/census#panama) have access to my [personal fork](https://github.com/openjdk-bot/panama-foreign) and can therefore help resolve these merge conflicts (you may want to coordinate who should do this). > The following paragraphs will give an example on how to solve these merge conflicts and push the resulting merge commit to this pull request. > The below commands should be run in a local clone of your [personal fork](https://wiki.openjdk.java.net/display/skara#Skara-Personalforks) of the [openjdk/panama-foreign](https://github.com/openjdk/panama-foreign) repository. > > > # Ensure target branch is up to date > $ git checkout foreign-jextract > $ git pull https://github.com/openjdk/panama-foreign.git foreign-jextract > > # Fetch and checkout the branch for this pull request > $ git fetch https://github.com/openjdk-bot/panama-foreign.git +109:openjdk-bot-109 > $ git checkout openjdk-bot-109 > > # Merge the target branch > $ git merge foreign-jextract > > > When you have resolved the conflicts resulting from the `git merge` command above, run the following commands to create a merge commit: > > > $ git add paths/to/files/with/conflicts > $ git commit -m 'Merge foreign-memaccess+abi' > > > > When you have created the merge commit, run the following command to push the merge commit to this pull request: > > > $ git push https://github.com/openjdk-bot/panama-foreign.git openjdk-bot-109:109 > > > _Note_: if you are using SSH to push commits to GitHub, then change the URL in the above `git push` command accordingly. > > Thanks, > J. Duke J. Duke 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 609 additional commits since the last revision: - Merge branch 'foreign-jextract' into openjdk-bot-109 - Automatic merge of foreign-memaccess+abi into foreign-jextract - 8277830: jextract generated code should not depend on Java layouts Reviewed-by: sundar, jvernee - Replace `ofAddressNative` with `ofAddress` Reviewed-by: jvernee - Automatic merge of foreign-memaccess+abi into foreign-jextract - Automatic merge of foreign-memaccess+abi into foreign-jextract - 8277645: TreeMaker should not call type() on pointer types too early Reviewed-by: jvernee - Automatic merge of foreign-memaccess+abi into foreign-jextract - Automatic merge of foreign-memaccess+abi into foreign-jextract - Automatic merge of foreign-memaccess+abi into foreign-jextract - ... and 599 more: https://git.openjdk.java.net/panama-foreign/compare/8a16279e...81d7b99f ------------- Changes: - all: https://git.openjdk.java.net/panama-foreign/pull/624/files - new: https://git.openjdk.java.net/panama-foreign/pull/624/files/8a16279e..81d7b99f Webrevs: - full: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=624&range=01 - incr: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=624&range=00-01 Stats: 31286 lines in 277 files changed: 31280 ins; 0 del; 6 mod Patch: https://git.openjdk.java.net/panama-foreign/pull/624.diff Fetch: git fetch https://git.openjdk.java.net/panama-foreign pull/624/head:pull/624 PR: https://git.openjdk.java.net/panama-foreign/pull/624 From duke at openjdk.java.net Fri Dec 3 17:10:54 2021 From: duke at openjdk.java.net (J.Duke) Date: Fri, 3 Dec 2021 17:10:54 GMT Subject: [foreign-jextract] Integrated: Merge foreign-memaccess+abi In-Reply-To: References: Message-ID: On Fri, 3 Dec 2021 16:39:27 GMT, J. Duke wrote: > Hi all, > > this is an _automatically_ generated pull request to notify you that there are 109 commits from the branch `foreign-memaccess+abi`that can **not** be merged into the branch `foreign-jextract`: > > The following file contains merge conflicts: > > - test/jdk/tools/launcher/HelpFlagsTest.java > > All Committers in this [project](https://openjdk.java.net/census#panama) have access to my [personal fork](https://github.com/openjdk-bot/panama-foreign) and can therefore help resolve these merge conflicts (you may want to coordinate who should do this). > The following paragraphs will give an example on how to solve these merge conflicts and push the resulting merge commit to this pull request. > The below commands should be run in a local clone of your [personal fork](https://wiki.openjdk.java.net/display/skara#Skara-Personalforks) of the [openjdk/panama-foreign](https://github.com/openjdk/panama-foreign) repository. > > > # Ensure target branch is up to date > $ git checkout foreign-jextract > $ git pull https://github.com/openjdk/panama-foreign.git foreign-jextract > > # Fetch and checkout the branch for this pull request > $ git fetch https://github.com/openjdk-bot/panama-foreign.git +109:openjdk-bot-109 > $ git checkout openjdk-bot-109 > > # Merge the target branch > $ git merge foreign-jextract > > > When you have resolved the conflicts resulting from the `git merge` command above, run the following commands to create a merge commit: > > > $ git add paths/to/files/with/conflicts > $ git commit -m 'Merge foreign-memaccess+abi' > > > > When you have created the merge commit, run the following command to push the merge commit to this pull request: > > > $ git push https://github.com/openjdk-bot/panama-foreign.git openjdk-bot-109:109 > > > _Note_: if you are using SSH to push commits to GitHub, then change the URL in the above `git push` command accordingly. > > Thanks, > J. Duke This pull request has now been integrated. Changeset: 2e60d107 Author: J. Duke Committer: Maurizio Cimadamore URL: https://git.openjdk.java.net/panama-foreign/commit/2e60d1076cb876b7d6fbdc76e774bd32e2359629 Stats: 8419 lines in 317 files changed: 5397 ins; 1617 del; 1405 mod Merge foreign-memaccess+abi ------------- PR: https://git.openjdk.java.net/panama-foreign/pull/624 From psandoz at openjdk.java.net Fri Dec 3 17:19:23 2021 From: psandoz at openjdk.java.net (Paul Sandoz) Date: Fri, 3 Dec 2021 17:19:23 GMT Subject: [foreign-memaccess+abi] RFR: 8278151: Heap segments should handle alignment constraints in a deterministic fashion [v5] In-Reply-To: References: Message-ID: On Fri, 3 Dec 2021 13:20:04 GMT, Maurizio Cimadamore wrote: >> This patch fixes the issue with alignment checks on heap segment leading to failures which depend on VM implementation details and layout choices. >> >> This is discussed in more details here: >> https://mail.openjdk.java.net/pipermail/panama-dev/2021-November/015852.html >> >> The fix consists in adding a *max alignment* mask to all segments. Native segments have mask set at 0, whereas heap segment have the mask set at the element size of their backing array (e.g. 1 for `byte[]`, 2 for `short[]`/`char[]` and so forth). >> >> The alignment check is the computed as follows: >> >> >> if (((address | maxAlignMask) & alignmentMask) != 0) { >> throw ... >> } >> >> >> Where `address` is the long address being dereferenced, `maxAlignMask` is the max alignment associated with the segment being dereferenced, and `alignmentMask` is the alignment associated with the layout used during a dereference operation. >> This patch also applies alignment checks to bulk copy operations as well, and it consolidates the way in which alignment checks are carried out (by adding a couple of helper methods, in `Utils` and `AbstractMemorySegment`, respectively). >> >> This patch also changes alignment errors to uniformly throw IllegalArgumentException, in all cases. >> >> Finally, this patch clarifies that during bulk copy and spliterator calls, the element layout alignment cannot be bigger than its size (as the size is used as a stride). >> >> A new test `TestHeapAlignment` has been added to check that alignment of heap segment is correctly enforced. >> >> Performance-wise, this patch doesn't change anything; that's because the value layout constants in `ValueLayout` are all unaligned. For code using aligned layout, some slight regression when using heap segment is possible (whereas native segment should have same performance as before). Eventually, these performance issues should disappear once [1] is fixed. >> >> [1] - https://bugs.openjdk.java.net/browse/JDK-8277850 > > Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision: > > Check for hyper alignment in indexed getter/setters > Improve javadoc (address review comment) > Add more tests Marked as reviewed by psandoz (Committer). ------------- PR: https://git.openjdk.java.net/panama-foreign/pull/622 From maurizio.cimadamore at oracle.com Fri Dec 3 17:20:40 2021 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Fri, 3 Dec 2021 17:20:40 +0000 Subject: Off-topic - Panama project logo if any In-Reply-To: References: Message-ID: <45140641-d1d7-3045-2750-bc929d338d58@oracle.com> Hi Rado, I'm afraid we have no "official" logo, sorry. Maurizio On 03/12/2021 17:02, Rados?aw Smogura wrote: > Hi all, > > I'm preparing a small presentation about the Panama project. I wonder if there's any logo? > > Kind regards, > Rado From maurizio.cimadamore at oracle.com Fri Dec 3 18:21:48 2021 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Fri, 3 Dec 2021 18:21:48 +0000 Subject: panama/foreign status update Message-ID: Hi, as you might have noticed, we have integrated the latest set of API (JEP-419) changes into Java 18, so I think it is now a good time to take a look at where we are, and where we are headed. When we started this journey (back in Java 14), we had three main goals: 1. Provide an alternative to the byte buffer API with similar performance/safety characteristics, but without some of the downsides (limited addressing space, lack of deterministic deallocation); 2. Make native libraries more accessible, by replacing JNI with a more Java-oriented workflow; 3. Provide basic building blocks which would enable other frameworks to define higher-level native interop. After few years of having the API available as an incubating API in the JDK, it is natural to ask whether the API we have delivered is successful in addressing the above goals. On (1), the fact that big frameworks such as Netty [1] and Lucene [2] (I hope Sketches will join the party soon) have come up with experimental branches written on top of the new API is a good sign. A couple of years ago there were some issues, mainly due to the ownership model being too restrictive, but those issues have been sorted out (since Java 16). On (2), over the last few months we had some fairly significant examples of developers using jextract + foreign API to tackle pretty sizeable native APIs, from OpenGL [3], to OpenSSL [4], to UCX [5], to FUSE [6]. (Apologies in advance for the ones that I might have forgotten about!). On (3) we don't have much data yet - for Java - as some of the biggest frameworks (JNA, JNR and JavaCPP) did not have a chance to play with the API as of yet. But what I find interesting/encouraging is that other VM languages have picked up the challenge and came up with creative ways to use the foreign API to implement a more direct native interop layer, in Scala [7] and in Clojure [8]. I think all this makes us confident that the API we have is solid enough to write real world software. Over then next few months we're going to transition the API from an incubating API (module jdk.incubator.foreign) to a _preview_ API (in java.base, package name TBD). We will soon open a new branch and start moving the code across modules. In parallel, we will keep making changes to the foreign linker runtime (see [9]), to simplify the implementation, reduce the number of code paths and, ultimately, make it easier for other JVM port maintainers to support this API in full. On the jextract front, as mentioned in the past [10] we would like to transition to a model where jextract is delivered as a separate tool. This means that jextract will live in its own github repo, which will hopefully make it easier for developers to contribute. Oracle will still provide some EA ready-made jextract binaries (location TBD). In the past few weeks we've been making slow but steady progress in order to make that happen - I still cannot say definitively _when_ that will happen, but it looks certainly closer now than it was few months ago. I'd like to, once again, thank the team for working so hard on this project - and I would like to thank all of you for trying out the various bits, reading documents and providing feedback. A projects like this cannot exist in isolation - and we would not be in the position we are in now without your help. Thanks Maurizio [1] - https://github.com/netty/netty-incubator-buffer-api [2] - https://github.com/apache/lucene/pull/173 [3] - https://github.com/jzy3d/panama-gl [4] - https://github.com/rmaucher/openssl-panama-foreign [5] - https://github.com/hhu-bsinfo/infinileap [6] - https://github.com/skymatic/fuse-panama [7] - https://gitlab.com/mhammons/slinc [8] - https://github.com/IGJoshua/coffi [9] - https://mail.openjdk.java.net/pipermail/panama-dev/2021-October/015244.html [10] - https://mail.openjdk.java.net/pipermail/panama-dev/2021-May/013898.html From mail at smogura.eu Fri Dec 3 18:38:09 2021 From: mail at smogura.eu (=?iso-8859-2?Q?Rados=B3aw_Smogura?=) Date: Fri, 3 Dec 2021 18:38:09 +0000 Subject: Off-topic - Panama project logo if any In-Reply-To: <45140641-d1d7-3045-2750-bc929d338d58@oracle.com> References: <45140641-d1d7-3045-2750-bc929d338d58@oracle.com> Message-ID: Thank you, Maurizio, And a bit pitty. Kind regards, Rado ________________________________ From: Maurizio Cimadamore Sent: Friday, December 3, 2021 18:20 To: Rados?aw Smogura ; panama-dev at openjdk.java.net Subject: Re: Off-topic - Panama project logo if any Hi Rado, I'm afraid we have no "official" logo, sorry. Maurizio On 03/12/2021 17:02, Rados?aw Smogura wrote: > Hi all, > > I'm preparing a small presentation about the Panama project. I wonder if there's any logo? > > Kind regards, > Rado From forax at univ-mlv.fr Fri Dec 3 18:46:37 2021 From: forax at univ-mlv.fr (Remi Forax) Date: Fri, 3 Dec 2021 19:46:37 +0100 (CET) Subject: Off-topic - Panama project logo if any In-Reply-To: References: <45140641-d1d7-3045-2750-bc929d338d58@oracle.com> Message-ID: <1364489031.2996331.1638557197973.JavaMail.zimbra@u-pem.fr> ----- Original Message ----- > From: "Rados?aw Smogura" > To: "Maurizio Cimadamore" , "panama-dev at openjdk.java.net'" > Sent: Vendredi 3 D?cembre 2021 19:38:09 > Subject: Re: Off-topic - Panama project logo if any > Thank you, Maurizio, > > And a bit pitty. A duke with a panama hat should not be that hard to create. I think we can start a contest, i can provide some virtual champagne for the winners :) > > Kind regards, > Rado regards, R?mi > ________________________________ > From: Maurizio Cimadamore > Sent: Friday, December 3, 2021 18:20 > To: Rados?aw Smogura ; panama-dev at openjdk.java.net > > Subject: Re: Off-topic - Panama project logo if any > > Hi Rado, > I'm afraid we have no "official" logo, sorry. > > Maurizio > > On 03/12/2021 17:02, Rados?aw Smogura wrote: >> Hi all, >> >> I'm preparing a small presentation about the Panama project. I wonder if there's >> any logo? >> >> Kind regards, > > Rado From maurizio.cimadamore at oracle.com Fri Dec 3 18:55:10 2021 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Fri, 3 Dec 2021 18:55:10 +0000 Subject: Off-topic - Panama project logo if any In-Reply-To: <1364489031.2996331.1638557197973.JavaMail.zimbra@u-pem.fr> References: <45140641-d1d7-3045-2750-bc929d338d58@oracle.com> <1364489031.2996331.1638557197973.JavaMail.zimbra@u-pem.fr> Message-ID: On 03/12/2021 18:46, Remi Forax wrote: > ----- Original Message ----- >> From: "Rados?aw Smogura" >> To: "Maurizio Cimadamore" , "panama-dev at openjdk.java.net'" >> Sent: Vendredi 3 D?cembre 2021 19:38:09 >> Subject: Re: Off-topic - Panama project logo if any >> Thank you, Maurizio, >> >> And a bit pitty. > A duke with a panama hat should not be that hard to create. > > I think we can start a contest, i can provide some virtual champagne for the winners :) We do have that (hat tip to Jeff Dinkins, as usual :-) )... but it never stuck too much. Let me know if you received the attachment. Otherwise I'll uplaod somewhere. Maurizio > >> Kind regards, >> Rado > regards, > R?mi > >> ________________________________ >> From: Maurizio Cimadamore >> Sent: Friday, December 3, 2021 18:20 >> To: Rados?aw Smogura ; panama-dev at openjdk.java.net >> >> Subject: Re: Off-topic - Panama project logo if any >> >> Hi Rado, >> I'm afraid we have no "official" logo, sorry. >> >> Maurizio >> >> On 03/12/2021 17:02, Rados?aw Smogura wrote: >>> Hi all, >>> >>> I'm preparing a small presentation about the Panama project. I wonder if there's >>> any logo? >>> >>> Kind regards, >>> Rado From maurizio.cimadamore at oracle.com Fri Dec 3 19:10:24 2021 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Fri, 3 Dec 2021 19:10:24 +0000 Subject: Off-topic - Panama project logo if any In-Reply-To: References: <45140641-d1d7-3045-2750-bc929d338d58@oracle.com> <1364489031.2996331.1638557197973.JavaMail.zimbra@u-pem.fr> Message-ID: I think that didn't work: http://cr.openjdk.java.net/~mcimadamore/panama/panama-hat.png Maurizio On 03/12/2021 18:55, Maurizio Cimadamore wrote: > > On 03/12/2021 18:46, Remi Forax wrote: >> ----- Original Message ----- >>> From: "Rados?aw Smogura" >>> To: "Maurizio Cimadamore" , >>> "panama-dev at openjdk.java.net'" >>> Sent: Vendredi 3 D?cembre 2021 19:38:09 >>> Subject: Re: Off-topic - Panama project logo if any >>> Thank you, Maurizio, >>> >>> And a bit pitty. >> A duke with a panama hat should not be that hard to create. >> >> I think we can start a contest, i can provide some virtual champagne >> for the winners :) > > We do have that (hat tip to Jeff Dinkins, as usual :-) )... but it > never stuck too much. > > Let me know if you received the attachment. Otherwise I'll uplaod > somewhere. > > Maurizio > > >> >>> Kind regards, >>> Rado >> regards, >> R?mi >> >>> ________________________________ >>> From: Maurizio Cimadamore >>> Sent: Friday, December 3, 2021 18:20 >>> To: Rados?aw Smogura ; panama-dev at openjdk.java.net >>> >>> Subject: Re: Off-topic - Panama project logo if any >>> >>> Hi Rado, >>> I'm afraid we have no "official" logo, sorry. >>> >>> Maurizio >>> >>> On 03/12/2021 17:02, Rados?aw Smogura wrote: >>>> Hi all, >>>> >>>> I'm preparing a small presentation about the Panama project. I >>>> wonder if there's >>>> any logo? >>>> >>>> Kind regards, >>>> Rado From jrose at openjdk.java.net Fri Dec 3 19:44:29 2021 From: jrose at openjdk.java.net (John R Rose) Date: Fri, 3 Dec 2021 19:44:29 GMT Subject: [foreign-memaccess+abi] RFR: 8278151: Heap segments should handle alignment constraints in a deterministic fashion [v5] In-Reply-To: References: Message-ID: On Fri, 3 Dec 2021 13:20:04 GMT, Maurizio Cimadamore wrote: >> This patch fixes the issue with alignment checks on heap segment leading to failures which depend on VM implementation details and layout choices. >> >> This is discussed in more details here: >> https://mail.openjdk.java.net/pipermail/panama-dev/2021-November/015852.html >> >> The fix consists in adding a *max alignment* mask to all segments. Native segments have mask set at 0, whereas heap segment have the mask set at the element size of their backing array (e.g. 1 for `byte[]`, 2 for `short[]`/`char[]` and so forth). >> >> The alignment check is the computed as follows: >> >> >> if (((address | maxAlignMask) & alignmentMask) != 0) { >> throw ... >> } >> >> >> Where `address` is the long address being dereferenced, `maxAlignMask` is the max alignment associated with the segment being dereferenced, and `alignmentMask` is the alignment associated with the layout used during a dereference operation. >> This patch also applies alignment checks to bulk copy operations as well, and it consolidates the way in which alignment checks are carried out (by adding a couple of helper methods, in `Utils` and `AbstractMemorySegment`, respectively). >> >> This patch also changes alignment errors to uniformly throw IllegalArgumentException, in all cases. >> >> Finally, this patch clarifies that during bulk copy and spliterator calls, the element layout alignment cannot be bigger than its size (as the size is used as a stride). >> >> A new test `TestHeapAlignment` has been added to check that alignment of heap segment is correctly enforced. >> >> Performance-wise, this patch doesn't change anything; that's because the value layout constants in `ValueLayout` are all unaligned. For code using aligned layout, some slight regression when using heap segment is possible (whereas native segment should have same performance as before). Eventually, these performance issues should disappear once [1] is fixed. >> >> [1] - https://bugs.openjdk.java.net/browse/JDK-8277850 > > Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision: > > Check for hyper alignment in indexed getter/setters > Improve javadoc (address review comment) > Add more tests I would prefer to reserve the term "hyper aligned" for the RFE in https://bugs.openjdk.java.net/browse/JDK-8167334 which talks about support for 128-bit alignment (and more) in the JVM. The odd condition being called "hyper aligned" in this PR is, IIUC, an overflow condition where the alignment of a layout exceeds its size. ------------- PR: https://git.openjdk.java.net/panama-foreign/pull/622 From mail at smogura.eu Fri Dec 3 19:59:18 2021 From: mail at smogura.eu (Rado Smogura) Date: Fri, 3 Dec 2021 20:59:18 +0100 Subject: Off-topic - Panama project logo if any In-Reply-To: References: <45140641-d1d7-3045-2750-bc929d338d58@oracle.com> <1364489031.2996331.1638557197973.JavaMail.zimbra@u-pem.fr> Message-ID: For Vector API (foreign part later) Duke Vector For text based clients: https://drive.google.com/file/d/1TXBZfYv3SfmL7GCLRZJtCl5IGiWdrRpA/view?usp=sharing https://drive.google.com/file/d/1yb1MLdBlS7cLbtHP4zEMpOgg-nJVwgdA/view?usp=sharing BR, Rado On 03.12.2021 20:10, Maurizio Cimadamore wrote: > I think that didn't work: > > http://cr.openjdk.java.net/~mcimadamore/panama/panama-hat.png > > Maurizio > > On 03/12/2021 18:55, Maurizio Cimadamore wrote: >> >> On 03/12/2021 18:46, Remi Forax wrote: >>> ----- Original Message ----- >>>> From: "Rados?aw Smogura" >>>> To: "Maurizio Cimadamore" , >>>> "panama-dev at openjdk.java.net'" >>>> Sent: Vendredi 3 D?cembre 2021 19:38:09 >>>> Subject: Re: Off-topic - Panama project logo if any >>>> Thank you, Maurizio, >>>> >>>> And a bit pitty. >>> A duke with a panama hat should not be that hard to create. >>> >>> I think we can start a contest, i can provide some virtual champagne >>> for the winners :) >> >> We do have that (hat tip to Jeff Dinkins, as usual :-) )... but it >> never stuck too much. >> >> Let me know if you received the attachment. Otherwise I'll uplaod >> somewhere. >> >> Maurizio >> >> >>> >>>> Kind regards, >>>> Rado >>> regards, >>> R?mi >>> >>>> ________________________________ >>>> From: Maurizio Cimadamore >>>> Sent: Friday, December 3, 2021 18:20 >>>> To: Rados?aw Smogura ; panama-dev at openjdk.java.net >>>> >>>> Subject: Re: Off-topic - Panama project logo if any >>>> >>>> Hi Rado, >>>> I'm afraid we have no "official" logo, sorry. >>>> >>>> Maurizio >>>> >>>> On 03/12/2021 17:02, Rados?aw Smogura wrote: >>>>> Hi all, >>>>> >>>>> I'm preparing a small presentation about the Panama project. I >>>>> wonder if there's >>>>> any logo? >>>>> >>>>> Kind regards, >>>>> Rado From mail at smogura.eu Fri Dec 3 20:10:47 2021 From: mail at smogura.eu (=?iso-8859-2?Q?Rados=B3aw_Smogura?=) Date: Fri, 3 Dec 2021 20:10:47 +0000 Subject: Off-topic - Panama project logo if any In-Reply-To: References: <45140641-d1d7-3045-2750-bc929d338d58@oracle.com> <1364489031.2996331.1638557197973.JavaMail.zimbra@u-pem.fr> Message-ID: Quite nice. I like it. ________________________________ From: Maurizio Cimadamore Sent: Friday, December 3, 2021 20:10 To: Remi Forax ; Rados?aw Smogura Cc: panama-dev at openjdk.java.net' Subject: Re: Off-topic - Panama project logo if any I think that didn't work: http://cr.openjdk.java.net/~mcimadamore/panama/panama-hat.png Maurizio On 03/12/2021 18:55, Maurizio Cimadamore wrote: > > On 03/12/2021 18:46, Remi Forax wrote: >> ----- Original Message ----- >>> From: "Rados?aw Smogura" >>> To: "Maurizio Cimadamore" , >>> "panama-dev at openjdk.java.net'" >>> Sent: Vendredi 3 D?cembre 2021 19:38:09 >>> Subject: Re: Off-topic - Panama project logo if any >>> Thank you, Maurizio, >>> >>> And a bit pitty. >> A duke with a panama hat should not be that hard to create. >> >> I think we can start a contest, i can provide some virtual champagne >> for the winners :) > > We do have that (hat tip to Jeff Dinkins, as usual :-) )... but it > never stuck too much. > > Let me know if you received the attachment. Otherwise I'll uplaod > somewhere. > > Maurizio > > >> >>> Kind regards, >>> Rado >> regards, >> R?mi >> >>> ________________________________ >>> From: Maurizio Cimadamore >>> Sent: Friday, December 3, 2021 18:20 >>> To: Rados?aw Smogura ; panama-dev at openjdk.java.net >>> >>> Subject: Re: Off-topic - Panama project logo if any >>> >>> Hi Rado, >>> I'm afraid we have no "official" logo, sorry. >>> >>> Maurizio >>> >>> On 03/12/2021 17:02, Rados?aw Smogura wrote: >>>> Hi all, >>>> >>>> I'm preparing a small presentation about the Panama project. I >>>> wonder if there's >>>> any logo? >>>> >>>> Kind regards, >>>> Rado From mcimadamore at openjdk.java.net Fri Dec 3 21:23:30 2021 From: mcimadamore at openjdk.java.net (Maurizio Cimadamore) Date: Fri, 3 Dec 2021 21:23:30 GMT Subject: [foreign-memaccess+abi] RFR: 8278151: Heap segments should handle alignment constraints in a deterministic fashion [v5] In-Reply-To: References: Message-ID: On Fri, 3 Dec 2021 19:41:16 GMT, John R Rose wrote: > I would prefer to reserve the term "hyper aligned" for the RFE in https://bugs.openjdk.java.net/browse/JDK-8167334 which talks about support for 128-bit alignment (and more) in the JVM. The odd condition being called "hyper aligned" in this PR is, IIUC, an overflow condition where the alignment of a layout exceeds its size. I don't think the term leaks anywhere in the API - but only in an helper function and some tests. That said, I thought the term was fitting to describe a datum whose alignment constraints were bigger than its natural one (read, the size). But I'm happy to change the names there. ------------- PR: https://git.openjdk.java.net/panama-foreign/pull/622 From mail at smogura.eu Sat Dec 4 18:49:42 2021 From: mail at smogura.eu (Rado Smogura) Date: Sat, 4 Dec 2021 19:49:42 +0100 Subject: Testing long RCE Message-ID: Hi all, I tried to test long range checks 8259609 - as this is long awaiting thing. I'm not sure if I do something wrong, but I can't get a good results Approach 1. LoopOverNonConstant.segment_loop change int to long as counter AbstractMemorySegmentImpl.checkBounds I used followed code if (length < 0) { throw outOfBoundException(offset, length); } Objects.checkIndex(offset, this.length - (length - 1)); Results were like Iteration 8: 0.376 ms/op Approach 2 AbstractMemorySegmentImpl.checkBounds use code like in 1, but without segment_loop changes Iteration 8: 0.239 ms/op Approach 3 - original test Iteration 8: 0.230 ms/op Sorry for not posting whole results (just grabbed partial results). In graph as well I can see number of range checks in main loop :( Kind regards, Rado From maurizio.cimadamore at oracle.com Sun Dec 5 11:41:53 2021 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Sun, 5 Dec 2021 11:41:53 +0000 Subject: Testing long RCE In-Reply-To: References: Message-ID: <6c69727c-013a-c5c4-d611-1b744d0a0034@oracle.com> Hi Rado, to achieve performance parity in existing benchmarks there's another piece we need: https://bugs.openjdk.java.net/browse/JDK-8276116 Without that patch, the VM only optimizes if it detects a loop on a long variable (but all our benchmarks use an int variable). I suggest you use this branch (against jdk/jdk): https://github.com/mcimadamore/jdk/tree/long_loop_workarounds_removal Which contains full removal of existing workaround - I've been testing this with Roland over the last few months. Cheers Maurizio On 04/12/2021 18:49, Rado Smogura wrote: > Hi all, > > I tried to test long range checks 8259609 - as this is long awaiting > thing. I'm not sure if I do something wrong, but I can't get a good > results > > > Approach 1. > LoopOverNonConstant.segment_loop change int to long as counter > > AbstractMemorySegmentImpl.checkBounds I used followed code > > if (length < 0) { > ??? throw outOfBoundException(offset, length); > } > > Objects.checkIndex(offset, this.length - (length - 1)); > > Results were like Iteration?? 8: 0.376 ms/op > > > Approach 2 > > AbstractMemorySegmentImpl.checkBounds use code like in 1, but without > segment_loop changes > > Iteration?? 8: 0.239 ms/op > > Approach 3 - original test > Iteration?? 8: 0.230 ms/op > > Sorry for not posting whole results (just grabbed partial results). In > graph as well I can see number of range checks in main loop :( > > Kind regards, > Rado > From maurizio.cimadamore at oracle.com Sun Dec 5 11:49:48 2021 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Sun, 5 Dec 2021 11:49:48 +0000 Subject: Testing long RCE In-Reply-To: <6c69727c-013a-c5c4-d611-1b744d0a0034@oracle.com> References: <6c69727c-013a-c5c4-d611-1b744d0a0034@oracle.com> Message-ID: <4c8005ce-b161-bf24-99eb-5859dbf714fd@oracle.com> For the records the numbers I see in this branch are as follows: ``` Benchmark????????????????????????????? Mode? Cnt? Score?? Error Units LoopOverNonConstant.segment_loop_int?? avgt?? 30? 0.363 ? 0.001 ms/op LoopOverNonConstant.segment_loop_long? avgt?? 30? 0.231 ? 0.003 ms/op ``` Which seem vaguely similar to what you got (but in your case it's odd, because you seem to get worse results with a loop over a long variable - but maybe there's some other issue in the patch you're using?). Maurizio On 05/12/2021 11:41, Maurizio Cimadamore wrote: > Hi Rado, > to achieve performance parity in existing benchmarks there's another > piece we need: > > https://bugs.openjdk.java.net/browse/JDK-8276116 > > Without that patch, the VM only optimizes if it detects a loop on a > long variable (but all our benchmarks use an int variable). > > I suggest you use this branch (against jdk/jdk): > > https://github.com/mcimadamore/jdk/tree/long_loop_workarounds_removal > > Which contains full removal of existing workaround - I've been testing > this with Roland over the last few months. > > Cheers > Maurizio > > On 04/12/2021 18:49, Rado Smogura wrote: >> Hi all, >> >> I tried to test long range checks 8259609 - as this is long awaiting >> thing. I'm not sure if I do something wrong, but I can't get a good >> results >> >> >> Approach 1. >> LoopOverNonConstant.segment_loop change int to long as counter >> >> AbstractMemorySegmentImpl.checkBounds I used followed code >> >> if (length < 0) { >> ??? throw outOfBoundException(offset, length); >> } >> >> Objects.checkIndex(offset, this.length - (length - 1)); >> >> Results were like Iteration?? 8: 0.376 ms/op >> >> >> Approach 2 >> >> AbstractMemorySegmentImpl.checkBounds use code like in 1, but without >> segment_loop changes >> >> Iteration?? 8: 0.239 ms/op >> >> Approach 3 - original test >> Iteration?? 8: 0.230 ms/op >> >> Sorry for not posting whole results (just grabbed partial results). >> In graph as well I can see number of range checks in main loop :( >> >> Kind regards, >> Rado >> From mail at smogura.eu Mon Dec 6 08:10:21 2021 From: mail at smogura.eu (=?iso-8859-2?Q?Rados=B3aw_Smogura?=) Date: Mon, 6 Dec 2021 08:10:21 +0000 Subject: Testing long RCE In-Reply-To: <4c8005ce-b161-bf24-99eb-5859dbf714fd@oracle.com> References: <6c69727c-013a-c5c4-d611-1b744d0a0034@oracle.com> <4c8005ce-b161-bf24-99eb-5859dbf714fd@oracle.com> Message-ID: Hi, I'll check it for curiosity - I think debug mode does not have an impact on results. Sometimes it can behave strangely - once I got worse results when commenting out the body of checkBounds() - I checked this a few times, as I could not believe - more code faster. Kind regards, Rado ________________________________ From: Maurizio Cimadamore Sent: Sunday, December 5, 2021 12:49 To: Rado Smogura ; panama-dev at openjdk.java.net Subject: Re: Testing long RCE For the records the numbers I see in this branch are as follows: ``` Benchmark Mode Cnt Score Error Units LoopOverNonConstant.segment_loop_int avgt 30 0.363 ? 0.001 ms/op LoopOverNonConstant.segment_loop_long avgt 30 0.231 ? 0.003 ms/op ``` Which seem vaguely similar to what you got (but in your case it's odd, because you seem to get worse results with a loop over a long variable - but maybe there's some other issue in the patch you're using?). Maurizio On 05/12/2021 11:41, Maurizio Cimadamore wrote: > Hi Rado, > to achieve performance parity in existing benchmarks there's another > piece we need: > > https://bugs.openjdk.java.net/browse/JDK-8276116 > > Without that patch, the VM only optimizes if it detects a loop on a > long variable (but all our benchmarks use an int variable). > > I suggest you use this branch (against jdk/jdk): > > https://github.com/mcimadamore/jdk/tree/long_loop_workarounds_removal > > Which contains full removal of existing workaround - I've been testing > this with Roland over the last few months. > > Cheers > Maurizio > > On 04/12/2021 18:49, Rado Smogura wrote: >> Hi all, >> >> I tried to test long range checks 8259609 - as this is long awaiting >> thing. I'm not sure if I do something wrong, but I can't get a good >> results >> >> >> Approach 1. >> LoopOverNonConstant.segment_loop change int to long as counter >> >> AbstractMemorySegmentImpl.checkBounds I used followed code >> >> if (length < 0) { >> throw outOfBoundException(offset, length); >> } >> >> Objects.checkIndex(offset, this.length - (length - 1)); >> >> Results were like Iteration 8: 0.376 ms/op >> >> >> Approach 2 >> >> AbstractMemorySegmentImpl.checkBounds use code like in 1, but without >> segment_loop changes >> >> Iteration 8: 0.239 ms/op >> >> Approach 3 - original test >> Iteration 8: 0.230 ms/op >> >> Sorry for not posting whole results (just grabbed partial results). >> In graph as well I can see number of range checks in main loop :( >> >> Kind regards, >> Rado >> From remm at apache.org Mon Dec 6 08:54:15 2021 From: remm at apache.org (=?UTF-8?Q?R=C3=A9my_Maucherat?=) Date: Mon, 6 Dec 2021 09:54:15 +0100 Subject: OpenSSL and panama-foreign In-Reply-To: References: <510f22de-a49e-df17-2e02-029a15c75ee7@oracle.com> <048afb97-dd2d-0221-1eff-d207fe816a7a@oracle.com> <60c217bc-2fa8-c1f9-080e-fe3342ce47b2@oracle.com> Message-ID: On Thu, Nov 11, 2021 at 6:01 PM Maurizio Cimadamore wrote: > > Just to be clear - can you see the cleaner working with your current > implementation? > > After thinking about your use case some more, I'm not convinced that > what you do is enough to prevent reachability issues. > > That is - the MH is kept alive by the CLinker runtime (at least until > the scope is closed). But, with `bindTo`, the MH also keeps `this` alive. > > It follows that, unless the scope is closed, `this` will never become > unreachable. Which seems to defeat the point of registering `this` > against a cleaner on construction? > > Maurizio > > P.S. > > I did some experiments with your panama-foreign branch, and it seems > like, when running the `ab` test, all calls to the cleaner action comes > from the shutdown method, which invokes the cleaner's cloneable > manually. If I remove the call to Cleanable::clean in shutdown, then I > don't see any call to the cleanup action being executed for the entire > duration of the benchmark. I have made some progress since then. Thanks for all the help ! The Java 17 version now resides here: https://github.com/apache/tomcat/tree/main/modules/openssl-java17 (it should be integrated in the Tomcat binary soon since the jar is very small and the Java 17 target is reasonable) and all seem well. Actually, except that it is slapped as "super experimental early preview" and will have to stay that way for a while, it looks a lot better to me than the JNI code in tomcat-native. I have the following feedback for the API: - It seems bound upcalls will always leak memory, there's no way to release them. Is a functional fix possible in the future ? - When using a close action attached to a scope (let's say an implicit scope, which is what I am now using thanks to your good recommendations), the action cannot use a reference to a memory segment from the scope (it has to use a memory address instead), otherwise the GC thinks it's a real reference to the scope and GC will never happen. - On JVM shutdown, the implicit scopes don't seem to be closed, I only get my close action called on a GC. Am I missing something (again ;) ) ? - I know it is planned, but right now the handling of heap memory with segments is not very useful. One of the first things I tried is MemorySegment.ofByteBuffer, and it worked great ... with a direct ByteBuffer. This seemed like a good opportunity for a big optimization since it would save a lot of byte copying, and the code as a whole could likely stop using direct ByteBuffer. - Could there be some opportunities for stronger typing with the code that jextract generates ? I (not very surprisingly) experienced a few bugs caused by the wrong address being passed to a call. Example: could there be a Pointer as a "fake" type for a MemorySegment, but providing strong typing ? R?my > > > On 11/11/2021 15:26, Maurizio Cimadamore wrote: > > I'm not sure I follow your point entirely. > > > > But yes, if you do a bindTo(this), then using an implicit scope is not > > very useful as long as the scope is reachable from `this`. > > > > We might be able to refine the implementation and improve this in the > > future, but for now I think that's something we have to live with. > > > > Thanks > > Maurizio > > > > > > On 11/11/2021 14:41, R?my Maucherat wrote: > >> Unless I missed something the API has a side effect with upcalls. I > >> understand after reading the javadoc where the suggestion comes from, > >> as it makes memory management very much like Java. This is of course > >> excellent. However, I use upcalls (as you know) and many of them are > >> bound to an instance (since this makes state tracking very very nice). > >> This however creates a reference that never goes away and an implicit > >> scope is never going to get GCed and closed (I saw that with visualvm) > >> and memory leaks. Initially I was planning to use a static Map >> State> for my state (OpenSSL allows passing references and getting > >> them in callbacks, but this is a lot handier in C and doesn't make a > >> lot of sense in Java), then I found MethodHandle.bindTo actually > >> worked and this is quite magical. > >> > >> So with that in mind, what is the recommendation ? Should the API > >> provide a way to remove the MethodHandle upcall ? Or should I avoid > >> using bindTo instead ? From maurizio.cimadamore at oracle.com Mon Dec 6 11:05:47 2021 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Mon, 6 Dec 2021 11:05:47 +0000 Subject: OpenSSL and panama-foreign In-Reply-To: References: <510f22de-a49e-df17-2e02-029a15c75ee7@oracle.com> <048afb97-dd2d-0221-1eff-d207fe816a7a@oracle.com> <60c217bc-2fa8-c1f9-080e-fe3342ce47b2@oracle.com> Message-ID: > I have made some progress since then. Thanks for all the help ! > > The Java 17 version now resides here: > https://urldefense.com/v3/__https://github.com/apache/tomcat/tree/main/modules/openssl-java17__;!!ACWV5N9M2RV99hQ!Z-4p41ECvTd-Gf3IWB2Y7qYBN0gMId9qKAXx2f5FgE00I0Pc4TdJ7hD97faRbwzTxmrN2Nw$ (it > should be integrated in the Tomcat binary soon since the jar is very > small and the Java 17 target is reasonable) and all seem well. > Actually, except that it is slapped as "super experimental early > preview" and will have to stay that way for a while, it looks a lot > better to me than the JNI code in tomcat-native. Hi Remy, thanks for trying out the bits and the feedback so far. Some replies > > I have the following feedback for the API: > - It seems bound upcalls will always leak memory, there's no way to > release them. Is a functional fix possible in the future ? In this case, the issue is that if you use implicit scope with an upcall, and the upcall has a strong reference (via its method handle) back to the scope, there is an (unavoidable, I think) issue: the method handle is stored somewhere (as a global JNI handle) in the VM stub. This is enough to keep the MH alive (which we need to), but also, indirectly (as the scope is attached to the MH in your case), to keep the scope alive. If we create a weak handle on the VM stub side, that would solve the issue in terms of the stub not keeping the reachability on the scope - but it will create other issue (e.g. an upcall crashing because the MH it refers to has disappeared). Jorn and I have thought about this case a bit - at the moment we don't have any clever ideas - I think using bound MHs with VM upcalls is something to be used with care, given implications on reachability. But we'll keep thinking of course. > - When using a close action attached to a scope (let's say an implicit > scope, which is what I am now using thanks to your good > recommendations), the action cannot use a reference to a memory > segment from the scope (it has to use a memory address instead), > otherwise the GC thinks it's a real reference to the scope and GC will > never happen. This is, I think, to be expected - as this is in line with recommendentation for cleanup action for Cleaners - e.g. that they have to be "static" so as not to capture reference to the object being collected. With the API, there is typically an option to "drop down" at the memory address level. In 18, a MemoryAddress is just a wrapper around a long, so it won't keep a scope alive. You can convert the address back to a segment if needed (MemorySegment::ofAddress) - not sure whether this will help your particular use case, but it's an option to keep in mind. > - On JVM shutdown, the implicit scopes don't seem to be closed, I only > get my close action called on a GC. Am I missing something (again ;) ) > ? We register the scope against a cleaner, it is possible that cleaner actions are only called under GC pressure, but not on VM shutdown. I'd say that there's no guarantee as to _when_ these actions can be called (it's all GC implementation dependent). I think your question is: how do I create a memory resource that is destroyed implicitly on VM shutdown? We do not support that use case at the moment; an implicit scope is just a scope backed by a cleaner. > - I know it is planned, but right now the handling of heap memory with > segments is not very useful. One of the first things I tried is > MemorySegment.ofByteBuffer, and it worked great ... with a direct > ByteBuffer. This seemed like a good opportunity for a big optimization > since it would save a lot of byte copying, and the code as a whole > could likely stop using direct ByteBuffer. Not sure I follow here. Do you intend to say that MemorySegment.ofByteBuffer doesn't work with an heap byte buffer (that would be odd, but if true I'd like to know more!) - or that MemorySegment are not very useful when interacting with heap arrays (which I think has been addressed in 18) ? > - Could there be some opportunities for stronger typing with the code > that jextract generates ? I (not very surprisingly) experienced a few > bugs caused by the wrong address being passed to a call. Example: > could there be a Pointer as a "fake" type for a MemorySegment, > but providing strong typing ? We remain on the outlook for such opportunities - at the moment, introducing these types is not possible w/o a significant cost in terms of instances being created and/or additional overhead on memory dereference (or both). Some future language/VM features (Valhalla) might significantly change the peformance trade off, iin which case we will obviously reconsider. Thanks Maurizio > > R?my > > >> >> On 11/11/2021 15:26, Maurizio Cimadamore wrote: >>> I'm not sure I follow your point entirely. >>> >>> But yes, if you do a bindTo(this), then using an implicit scope is not >>> very useful as long as the scope is reachable from `this`. >>> >>> We might be able to refine the implementation and improve this in the >>> future, but for now I think that's something we have to live with. >>> >>> Thanks >>> Maurizio >>> >>> >>> On 11/11/2021 14:41, R?my Maucherat wrote: >>>> Unless I missed something the API has a side effect with upcalls. I >>>> understand after reading the javadoc where the suggestion comes from, >>>> as it makes memory management very much like Java. This is of course >>>> excellent. However, I use upcalls (as you know) and many of them are >>>> bound to an instance (since this makes state tracking very very nice). >>>> This however creates a reference that never goes away and an implicit >>>> scope is never going to get GCed and closed (I saw that with visualvm) >>>> and memory leaks. Initially I was planning to use a static Map>>> State> for my state (OpenSSL allows passing references and getting >>>> them in callbacks, but this is a lot handier in C and doesn't make a >>>> lot of sense in Java), then I found MethodHandle.bindTo actually >>>> worked and this is quite magical. >>>> >>>> So with that in mind, what is the recommendation ? Should the API >>>> provide a way to remove the MethodHandle upcall ? Or should I avoid >>>> using bindTo instead ? From jorn.vernee at oracle.com Mon Dec 6 13:35:59 2021 From: jorn.vernee at oracle.com (Jorn Vernee) Date: Mon, 6 Dec 2021 14:35:59 +0100 Subject: OpenSSL and panama-foreign In-Reply-To: References: <510f22de-a49e-df17-2e02-029a15c75ee7@oracle.com> <048afb97-dd2d-0221-1eff-d207fe816a7a@oracle.com> <60c217bc-2fa8-c1f9-080e-fe3342ce47b2@oracle.com> Message-ID: >> - It seems bound upcalls will always leak memory, there's no way to >> release them. Is a functional fix possible in the future ? > > In this case, the issue is that if you use implicit scope with an > upcall, and the upcall has a strong reference (via its method handle) > back to the scope, there is an (unavoidable, I think) issue: the > method handle is stored somewhere (as a global JNI handle) in the VM > stub. This is enough to keep the MH alive (which we need to), but > also, indirectly (as the scope is attached to the MH in your case), to > keep the scope alive. If we create a weak handle on the VM stub side, > that would solve the issue in terms of the stub not keeping the > reachability on the scope - but it will create other issue (e.g. an > upcall crashing because the MH it refers to has disappeared). Jorn and > I have thought about this case a bit - at the moment we don't have any > clever ideas - I think using bound MHs with VM upcalls is something to > be used with care, given implications on reachability. > > But we'll keep thinking of course. After our last discussion I thought some more about this. Essentially, a cleaner's cleanup action can not (directly or indirectly) reference the object being cleaned up. If we were able to do that, we could potentially resurrect the object being cleaned up, and any other object that it references as well, which might also already be dead (no guarantee on the order in which objects are cleaned). This applies to implicit scopes as well: a scope cleanup action can not reference the scope. We register the upcall stub on a scope with a cleaup action, so the method handle can not reference the scope either. I don't think there's a way around that, even if we dropped the use of a global JNI handle, there's still a need for the stub to reference the method handle, and keep it alive. I think for cases where a cycle is an absolute requirement, where the method handle of an upcall stub references the scope the upcall stub is registered against, the solution is to have an 'outside observer' object, which isn't a part of the cycle itself, and register a cleanup action on that object instead: ??? observer -\ ???????????????????? scope -> ... -> upcall stub -> ... -> scope The scope would be a shared scope instead of an implicit scope, and a cleanup action would be registered on the observer object which would close the scope. When the cleaner runs, the entire cycle would be released at the same time. Jorn From maurizio.cimadamore at oracle.com Mon Dec 6 14:26:38 2021 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Mon, 6 Dec 2021 14:26:38 +0000 Subject: OpenSSL and panama-foreign In-Reply-To: References: <510f22de-a49e-df17-2e02-029a15c75ee7@oracle.com> <048afb97-dd2d-0221-1eff-d207fe816a7a@oracle.com> <60c217bc-2fa8-c1f9-080e-fe3342ce47b2@oracle.com> Message-ID: > > After our last discussion I thought some more about this. Essentially, > a cleaner's cleanup action can not (directly or indirectly) reference > the object being cleaned up. If we were able to do that, we could > potentially resurrect the object being cleaned up, and any other > object that it references as well, which might also already be dead > (no guarantee on the order in which objects are cleaned). > > This applies to implicit scopes as well: a scope cleanup action can > not reference the scope. We register the upcall stub on a scope with a > cleaup action, so the method handle can not reference the scope > either. I don't think there's a way around that, even if we dropped > the use of a global JNI handle, there's still a need for the stub to > reference the method handle, and keep it alive. Well, one might argue that, in principle, we could use weak references to the MH in the upcall stub. Then, when an upcall is called we check if the MH is there, if not we fail. The problem is that this check would occur _inside_ the upcall stub assembly code itself, which is cleared when the scope goes away. So there's no guarantee that we will have a chance to check that the native code is dealing with a stale function pointer (unless we leave the upcall stub around even after the upcall scope has been closed, which doesn't seem desirable). > > I think for cases where a cycle is an absolute requirement, where the > method handle of an upcall stub references the scope the upcall stub > is registered against, the solution is to have an 'outside observer' > object, which isn't a part of the cycle itself, and register a cleanup > action on that object instead: > > ??? observer -\ > ???????????????????? scope -> ... -> upcall stub -> ... -> scope > > The scope would be a shared scope instead of an implicit scope, and a > cleanup action would be registered on the observer object which would > close the scope. When the cleaner runs, the entire cycle would be > released at the same time. Yes, this is a workable approach. I think implicit scopes can be handy esp. when transitioning from ByteBuffer code (given that ByteBuffer has a cleaner-based deallocation policy). But when putting together complex scopes, especially in the case of native interop, it might be difficult to prove that your application is doing exacty what you need it to be doing, when relying on implicit semantics. In these cases I found that using explicit scopes is almost always a superior solution, given that it's very clear when things are supposed to be taken care of (but of course this comes at an extra burden for the developer). When I initially looked at your usage of the API, it seemed like an implicit scope was what you needed - but the more I kept looking at it, the less I'm convinced that having a single scope with cleaner is a workable solution in your case. In your case, the "observable" approach (e.g. don't register the scope with the cleaner, register some other object which, when unreachable, will cause its cleanup action to close() its scope field), seems a more robust approach. In a way, your "observer" is a "witness" for the scope object; in principle the API could feature an overloaded implicit factory, like this: ResourceScope.newImplicitScope(); ResourceScope.newImplicitScope(Object witness); But I'm not sure if the benefit it's worth the API surface (after all, this setup is possible with the existing API, at the cost of managing the cleaner object/close calls explicitly). What I think is required, is better documentation on the implications of using a scope associated with a cleaner (especially in the context of upcalls). Maurizio > > Jorn > From jvernee at openjdk.java.net Mon Dec 6 15:06:42 2021 From: jvernee at openjdk.java.net (Jorn Vernee) Date: Mon, 6 Dec 2021 15:06:42 GMT Subject: [foreign-memaccess+abi] RFR: 8278151: Heap segments should handle alignment constraints in a deterministic fashion [v5] In-Reply-To: References: Message-ID: <4O3kMGSMBcu7RU9uNxKsgUPou2GLOG61FXcoSX-jweo=.6e8865a7-fcb3-495c-b9ab-420fbf778cec@github.com> On Fri, 3 Dec 2021 13:20:04 GMT, Maurizio Cimadamore wrote: >> This patch fixes the issue with alignment checks on heap segment leading to failures which depend on VM implementation details and layout choices. >> >> This is discussed in more details here: >> https://mail.openjdk.java.net/pipermail/panama-dev/2021-November/015852.html >> >> The fix consists in adding a *max alignment* mask to all segments. Native segments have mask set at 0, whereas heap segment have the mask set at the element size of their backing array (e.g. 1 for `byte[]`, 2 for `short[]`/`char[]` and so forth). >> >> The alignment check is the computed as follows: >> >> >> if (((address | maxAlignMask) & alignmentMask) != 0) { >> throw ... >> } >> >> >> Where `address` is the long address being dereferenced, `maxAlignMask` is the max alignment associated with the segment being dereferenced, and `alignmentMask` is the alignment associated with the layout used during a dereference operation. >> This patch also applies alignment checks to bulk copy operations as well, and it consolidates the way in which alignment checks are carried out (by adding a couple of helper methods, in `Utils` and `AbstractMemorySegment`, respectively). >> >> This patch also changes alignment errors to uniformly throw IllegalArgumentException, in all cases. >> >> Finally, this patch clarifies that during bulk copy and spliterator calls, the element layout alignment cannot be bigger than its size (as the size is used as a stride). >> >> A new test `TestHeapAlignment` has been added to check that alignment of heap segment is correctly enforced. >> >> Performance-wise, this patch doesn't change anything; that's because the value layout constants in `ValueLayout` are all unaligned. For code using aligned layout, some slight regression when using heap segment is possible (whereas native segment should have same performance as before). Eventually, these performance issues should disappear once [1] is fixed. >> >> [1] - https://bugs.openjdk.java.net/browse/JDK-8277850 > > Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision: > > Check for hyper alignment in indexed getter/setters > Improve javadoc (address review comment) > Add more tests src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemorySegment.java line 1128: > 1126: * a thread other than the thread owning that scope. > 1127: * @throws IllegalArgumentException if the dereference operation is > 1128: * incompatible with the alignment constraints in the provided layout. Why is this only added to `get` but not to `set`? (same for all the other accessors. Seems like the javadoc should be added for both get and set). src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemorySegment.java line 1448: > 1446: * @throws IndexOutOfBoundsException when the dereference operation falls outside the spatial bounds of the > 1447: * memory segment. > 1448: * @throws UnsupportedOperationException if this segment is {@linkplain #isReadOnly() read-only}. Seems spurious. `get` should still work on read-only segments? Suggestion: src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemorySegment.java line 1737: > 1735: Objects.checkFromIndexSize(srcIndex, elementCount, Array.getLength(srcArray)); > 1736: AbstractMemorySegmentImpl destImpl = (AbstractMemorySegmentImpl)dstSegment; > 1737: Utils.checkNotHyperAligned(dstLayout, "Source layout alignment greater than its size"); Suggestion: Utils.checkNotHyperAligned(dstLayout, "Destination layout alignment greater than its size"); ------------- PR: https://git.openjdk.java.net/panama-foreign/pull/622 From remm at apache.org Tue Dec 7 14:40:41 2021 From: remm at apache.org (=?UTF-8?Q?R=C3=A9my_Maucherat?=) Date: Tue, 7 Dec 2021 15:40:41 +0100 Subject: OpenSSL and panama-foreign In-Reply-To: References: <510f22de-a49e-df17-2e02-029a15c75ee7@oracle.com> <048afb97-dd2d-0221-1eff-d207fe816a7a@oracle.com> <60c217bc-2fa8-c1f9-080e-fe3342ce47b2@oracle.com> Message-ID: Hi Maurizio, Thanks a lot for the new ideas and discussion. On Mon, Dec 6, 2021 at 12:06 PM Maurizio Cimadamore wrote: > > > > I have made some progress since then. Thanks for all the help ! > > > > The Java 17 version now resides here: > > https://urldefense.com/v3/__https://github.com/apache/tomcat/tree/main/modules/openssl-java17__;!!ACWV5N9M2RV99hQ!Z-4p41ECvTd-Gf3IWB2Y7qYBN0gMId9qKAXx2f5FgE00I0Pc4TdJ7hD97faRbwzTxmrN2Nw$ (it > > should be integrated in the Tomcat binary soon since the jar is very > > small and the Java 17 target is reasonable) and all seem well. > > Actually, except that it is slapped as "super experimental early > > preview" and will have to stay that way for a while, it looks a lot > > better to me than the JNI code in tomcat-native. > Hi Remy, thanks for trying out the bits and the feedback so far. Some > replies > > > > I have the following feedback for the API: > > - It seems bound upcalls will always leak memory, there's no way to > > release them. Is a functional fix possible in the future ? > > In this case, the issue is that if you use implicit scope with an > upcall, and the upcall has a strong reference (via its method handle) > back to the scope, there is an (unavoidable, I think) issue: the method > handle is stored somewhere (as a global JNI handle) in the VM stub. This > is enough to keep the MH alive (which we need to), but also, indirectly > (as the scope is attached to the MH in your case), to keep the scope > alive. If we create a weak handle on the VM stub side, that would solve > the issue in terms of the stub not keeping the reachability on the scope > - but it will create other issue (e.g. an upcall crashing because the MH > it refers to has disappeared). Jorn and I have thought about this case a > bit - at the moment we don't have any clever ideas - I think using bound > MHs with VM upcalls is something to be used with care, given > implications on reachability. > > But we'll keep thinking of course. The Java 17 code using an implicit scope looks decent to me right now. Not optimal in every scenario, but functionally acceptable. I'll refactor again the code that targets Java 18+ since I'm very interested in better scope handling techniques. Documenting clearly the GC roots created by each API call could be a good idea. Limiting them as much as possible and allowing cleaning them up would be a good bonus too. > > - When using a close action attached to a scope (let's say an implicit > > scope, which is what I am now using thanks to your good > > recommendations), the action cannot use a reference to a memory > > segment from the scope (it has to use a memory address instead), > > otherwise the GC thinks it's a real reference to the scope and GC will > > never happen. > > This is, I think, to be expected - as this is in line with > recommendentation for cleanup action for Cleaners - e.g. that they have > to be "static" so as not to capture reference to the object being collected. > > With the API, there is typically an option to "drop down" at the memory > address level. In 18, a MemoryAddress is just a wrapper around a long, > so it won't keep a scope alive. You can convert the address back to a > segment if needed (MemorySegment::ofAddress) - not sure whether this > will help your particular use case, but it's an option to keep in mind. > > > - On JVM shutdown, the implicit scopes don't seem to be closed, I only > > get my close action called on a GC. Am I missing something (again ;) ) > > ? > > We register the scope against a cleaner, it is possible that cleaner > actions are only called under GC pressure, but not on VM shutdown. I'd > say that there's no guarantee as to _when_ these actions can be called > (it's all GC implementation dependent). > > I think your question is: how do I create a memory resource that is > destroyed implicitly on VM shutdown? We do not support that use case at > the moment; an implicit scope is just a scope backed by a cleaner. > > > - I know it is planned, but right now the handling of heap memory with > > segments is not very useful. One of the first things I tried is > > MemorySegment.ofByteBuffer, and it worked great ... with a direct > > ByteBuffer. This seemed like a good opportunity for a big optimization > > since it would save a lot of byte copying, and the code as a whole > > could likely stop using direct ByteBuffer. > Not sure I follow here. Do you intend to say that > MemorySegment.ofByteBuffer doesn't work with an heap byte buffer (that > would be odd, but if true I'd like to know more!) - or that > MemorySegment are not very useful when interacting with heap arrays > (which I think has been addressed in 18) ? My problem is already described by https://bugs.openjdk.java.net/browse/JDK-8254693 > > - Could there be some opportunities for stronger typing with the code > > that jextract generates ? I (not very surprisingly) experienced a few > > bugs caused by the wrong address being passed to a call. Example: > > could there be a Pointer as a "fake" type for a MemorySegment, > > but providing strong typing ? > > We remain on the outlook for such opportunities - at the moment, > introducing these types is not possible w/o a significant cost in terms > of instances being created and/or additional overhead on memory > dereference (or both). Some future language/VM features (Valhalla) might > significantly change the peformance trade off, iin which case we will > obviously reconsider. Ok ! As of right now, I was not hoping for real Java types, you seem to imply that's what you would like to have (if that's doable eventually, this would be waaaaay beyond my wildest expectations !). Instead, for now, I was only thinking about empty marker types, just to give a compiler hint and produce errors (mostly when using the wrong pointer type for a downcall) without really doing anything more. Just a dumb code generation trick, essentially ... For example: jextract generates an "SSL" empty class (which I filter out since it's not actually useful). Instead of doing nothing with it, this marker type could be matched to the native code signatures and used in the generated code as a generic to a type that extends MemoryAddress/Segment. R?my > > Thanks > Maurizio > > > > > R?my > > > > > >> > >> On 11/11/2021 15:26, Maurizio Cimadamore wrote: > >>> I'm not sure I follow your point entirely. > >>> > >>> But yes, if you do a bindTo(this), then using an implicit scope is not > >>> very useful as long as the scope is reachable from `this`. > >>> > >>> We might be able to refine the implementation and improve this in the > >>> future, but for now I think that's something we have to live with. > >>> > >>> Thanks > >>> Maurizio > >>> > >>> > >>> On 11/11/2021 14:41, R?my Maucherat wrote: > >>>> Unless I missed something the API has a side effect with upcalls. I > >>>> understand after reading the javadoc where the suggestion comes from, > >>>> as it makes memory management very much like Java. This is of course > >>>> excellent. However, I use upcalls (as you know) and many of them are > >>>> bound to an instance (since this makes state tracking very very nice). > >>>> This however creates a reference that never goes away and an implicit > >>>> scope is never going to get GCed and closed (I saw that with visualvm) > >>>> and memory leaks. Initially I was planning to use a static Map >>>> State> for my state (OpenSSL allows passing references and getting > >>>> them in callbacks, but this is a lot handier in C and doesn't make a > >>>> lot of sense in Java), then I found MethodHandle.bindTo actually > >>>> worked and this is quite magical. > >>>> > >>>> So with that in mind, what is the recommendation ? Should the API > >>>> provide a way to remove the MethodHandle upcall ? Or should I avoid > >>>> using bindTo instead ? From maurizio.cimadamore at oracle.com Tue Dec 7 14:52:42 2021 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Tue, 7 Dec 2021 14:52:42 +0000 Subject: OpenSSL and panama-foreign In-Reply-To: References: <510f22de-a49e-df17-2e02-029a15c75ee7@oracle.com> <048afb97-dd2d-0221-1eff-d207fe816a7a@oracle.com> <60c217bc-2fa8-c1f9-080e-fe3342ce47b2@oracle.com> Message-ID: <24560365-3cca-8076-e116-7f175fb29bbb@oracle.com> On 07/12/2021 14:40, R?my Maucherat wrote: > My problem is already described by > https://bugs.openjdk.java.net/browse/JDK-8254693 Ok - but that's about passing heap memory directly to native code, which is quite an advanced use case; from your description it sounded like an issue with direct buffer and segments. Passing heap memory to native code requires heap pinning. Not all GC take pinning well - it is relatively trivial to do in the API - but outcome will vary depending on which GC you happen to run on. AFAIK, most implementation end up blocking the whole GC: https://tschatzl.github.io/2021/06/28/evacuation-failure.html Shenandoah seems to differ, at least according to this: https://shipilev.net/jvm/anatomy-quarks/9-jni-critical-gclocker/ This means that, unless you are using Shenandoah, even if we did provide an API to pin heap segments, you will end up with more troubles than the ones you started with. That said, this is an area we're monitoring. As soon as GC impl will catch up (and G1 seems to be moving in the right direction), we will add some support. > >>> - Could there be some opportunities for stronger typing with the code >>> that jextract generates ? I (not very surprisingly) experienced a few >>> bugs caused by the wrong address being passed to a call. Example: >>> could there be a Pointer as a "fake" type for a MemorySegment, >>> but providing strong typing ? >> We remain on the outlook for such opportunities - at the moment, >> introducing these types is not possible w/o a significant cost in terms >> of instances being created and/or additional overhead on memory >> dereference (or both). Some future language/VM features (Valhalla) might >> significantly change the peformance trade off, iin which case we will >> obviously reconsider. > Ok ! As of right now, I was not hoping for real Java types, you seem > to imply that's what you would like to have (if that's doable > eventually, this would be waaaaay beyond my wildest expectations !). > Instead, for now, I was only thinking about empty marker types, just > to give a compiler hint and produce errors (mostly when using the > wrong pointer type for a downcall) without really doing anything more. > Just a dumb code generation trick, essentially ... > For example: jextract generates an "SSL" empty class (which I filter > out since it's not actually useful). Instead of doing nothing with it, > this marker type could be matched to the native code signatures and > used in the generated code as a generic to a type that extends > MemoryAddress/Segment. We could definitively generate wrappers for structs - but that would mean that when reading/writing more allocation will occur (as you will have to allocate a struct which is a view of a segment/address). Moreover, this will only work if what you have is a struct - if you work with an int*, there will be no wrapper generated for that. So, while I'm all for sprinkling useful info, it is not very clear to me what we can sprinkle on top of what we have to make it more useful (w/o resorting to a full blown higher-level pointer/struct API). Maurizio From maurizio.cimadamore at oracle.com Fri Dec 10 10:55:02 2021 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Fri, 10 Dec 2021 10:55:02 +0000 Subject: status of VM long loop optimizations - call for action Message-ID: (resending since mailing lists were down yesterday - I apologize if this results in duplicates). Hi, few days ago some VM enhancements were integrated [1, 2], so it is time to take a look again at where we are. I put together a branch which removes all workarounds (both for long loops and for alignment checks): https://github.com/mcimadamore/jdk/tree/long_loop_workarounds_removal I also ran memory access benchmarks before/after, to see what the difference is like - here's a visual report: https://jmh.morethan.io/?gists=dfa7075db33f7e6a2690ac80a64aa252,7f894f48460a6a0c9891cbe3158b43a7 Overall, I think the numbers are solid. The branch w/o workarounds keep up with mainline in basically all cases but one (UnrolledAccess - this code pattern needs more work in the VM, but Roland Westrelin has identified a possible fix for it). In some cases (parallel tests) we see quite a big jump forward. I think it's hard to say how these results will translate in real world - my gut feeling is that the simpler bound checking logic will almost invariably result in performance improvements with more complex code patterns, despite what synthetic benchmark might say (the current logic in mainline is fragile as it has to guard against integer overflow, which in turns sometimes kills BCE optimizations). So I'd be inclined to integrate these changes in 18. If you gave a project that works agaist the Java 18 API, it would be very helpful for us if you could try it on the above branch and report back. This will help us make a more informed decision. Cheers Maurizio [1] - https://bugs.openjdk.java.net/browse/JDK-8276116 [2] - https://bugs.openjdk.java.net/browse/JDK-8277850 From duke at openjdk.java.net Fri Dec 10 11:09:43 2021 From: duke at openjdk.java.net (duke) Date: Fri, 10 Dec 2021 11:09:43 GMT Subject: git: openjdk/panama-foreign: master: 126 new changesets Message-ID: <5d6b1fbf-ff4f-49a5-acb8-67406a2993c5@openjdk.org> Changeset: 18c54b4e Author: Andrey Turbanov Committer: Alexey Ivanov Date: 2021-12-03 13:04:26 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/18c54b4e1ade2ea5531054ed19441d5bff84fcdc 8274640: Cleanup unnecessary null comparison before instanceof check in java.desktop Reviewed-by: aivanov ! src/java.desktop/macosx/classes/com/apple/laf/AquaBorder.java ! src/java.desktop/macosx/classes/com/apple/laf/AquaButtonBorder.java ! src/java.desktop/macosx/classes/com/apple/laf/AquaComboBoxUI.java ! src/java.desktop/macosx/classes/com/apple/laf/AquaFileChooserUI.java ! src/java.desktop/macosx/classes/com/apple/laf/AquaLookAndFeel.java ! src/java.desktop/macosx/classes/com/apple/laf/AquaRootPaneUI.java ! src/java.desktop/macosx/classes/com/apple/laf/AquaSliderUI.java ! src/java.desktop/macosx/classes/com/apple/laf/AquaTableHeaderUI.java ! src/java.desktop/macosx/classes/com/apple/laf/ScreenMenu.java ! src/java.desktop/macosx/classes/sun/font/CFontManager.java ! src/java.desktop/macosx/classes/sun/lwawt/macosx/CAccessibility.java ! src/java.desktop/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java ! src/java.desktop/macosx/classes/sun/lwawt/macosx/CPrinterJob.java ! src/java.desktop/share/classes/com/sun/imageio/plugins/bmp/BMPImageWriter.java ! src/java.desktop/share/classes/com/sun/imageio/plugins/common/SimpleCMYKColorSpace.java ! src/java.desktop/share/classes/com/sun/imageio/plugins/gif/GIFWritableImageMetadata.java ! src/java.desktop/share/classes/com/sun/imageio/plugins/jpeg/JPEGMetadata.java ! src/java.desktop/share/classes/com/sun/imageio/plugins/tiff/TIFFBaseJPEGCompressor.java ! src/java.desktop/share/classes/com/sun/imageio/plugins/tiff/TIFFImageWriter.java ! src/java.desktop/share/classes/com/sun/java/swing/plaf/motif/MotifFileChooserUI.java ! src/java.desktop/share/classes/com/sun/java/swing/plaf/motif/MotifMenuUI.java ! src/java.desktop/share/classes/com/sun/media/sound/AbstractMidiDevice.java ! src/java.desktop/share/classes/com/sun/media/sound/AudioFloatFormatConverter.java ! src/java.desktop/share/classes/com/sun/media/sound/PortMixer.java ! src/java.desktop/share/classes/com/sun/media/sound/SoftMixingDataLine.java ! src/java.desktop/share/classes/com/sun/media/sound/SoftSynthesizer.java ! src/java.desktop/share/classes/java/awt/AWTEvent.java ! src/java.desktop/share/classes/java/awt/Component.java ! src/java.desktop/share/classes/java/awt/Container.java ! src/java.desktop/share/classes/java/awt/MenuComponent.java ! src/java.desktop/share/classes/java/awt/dnd/DropTarget.java ! src/java.desktop/share/classes/java/awt/image/AreaAveragingScaleFilter.java ! src/java.desktop/share/classes/java/awt/image/ComponentSampleModel.java ! src/java.desktop/share/classes/java/awt/image/MultiPixelPackedSampleModel.java ! src/java.desktop/share/classes/java/awt/image/ReplicateScaleFilter.java ! src/java.desktop/share/classes/java/awt/image/SinglePixelPackedSampleModel.java ! src/java.desktop/share/classes/java/beans/IndexedPropertyDescriptor.java ! src/java.desktop/share/classes/java/beans/PropertyDescriptor.java ! src/java.desktop/share/classes/javax/imageio/ImageTypeSpecifier.java ! src/java.desktop/share/classes/javax/print/DocFlavor.java ! src/java.desktop/share/classes/javax/print/MimeType.java ! src/java.desktop/share/classes/javax/print/attribute/DateTimeSyntax.java ! src/java.desktop/share/classes/javax/print/attribute/HashAttributeSet.java ! src/java.desktop/share/classes/javax/print/attribute/IntegerSyntax.java ! src/java.desktop/share/classes/javax/print/attribute/ResolutionSyntax.java ! src/java.desktop/share/classes/javax/print/attribute/SetOfIntegerSyntax.java ! src/java.desktop/share/classes/javax/print/attribute/Size2DSyntax.java ! src/java.desktop/share/classes/javax/print/attribute/TextSyntax.java ! src/java.desktop/share/classes/javax/print/attribute/URISyntax.java ! src/java.desktop/share/classes/javax/print/attribute/standard/Media.java ! src/java.desktop/share/classes/javax/swing/AbstractAction.java ! src/java.desktop/share/classes/javax/swing/AbstractButton.java ! src/java.desktop/share/classes/javax/swing/DebugGraphics.java ! src/java.desktop/share/classes/javax/swing/JComboBox.java ! src/java.desktop/share/classes/javax/swing/JComponent.java ! src/java.desktop/share/classes/javax/swing/JInternalFrame.java ! src/java.desktop/share/classes/javax/swing/JLabel.java ! src/java.desktop/share/classes/javax/swing/JList.java ! src/java.desktop/share/classes/javax/swing/JMenu.java ! src/java.desktop/share/classes/javax/swing/JMenuBar.java ! src/java.desktop/share/classes/javax/swing/JOptionPane.java ! src/java.desktop/share/classes/javax/swing/JPopupMenu.java ! src/java.desktop/share/classes/javax/swing/JSlider.java ! src/java.desktop/share/classes/javax/swing/JTable.java ! src/java.desktop/share/classes/javax/swing/JTree.java ! src/java.desktop/share/classes/javax/swing/MenuSelectionManager.java ! src/java.desktop/share/classes/javax/swing/RepaintManager.java ! src/java.desktop/share/classes/javax/swing/SpinnerDateModel.java ! src/java.desktop/share/classes/javax/swing/SpinnerNumberModel.java ! src/java.desktop/share/classes/javax/swing/SwingUtilities.java ! src/java.desktop/share/classes/javax/swing/TransferHandler.java ! src/java.desktop/share/classes/javax/swing/event/EventListenerList.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicDesktopPaneUI.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicInternalFrameUI.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicMenuUI.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicOptionPaneUI.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicSpinnerUI.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicSplitPaneUI.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicTableHeaderUI.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicTableUI.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicTextUI.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicToolBarUI.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicTreeUI.java ! src/java.desktop/share/classes/javax/swing/plaf/metal/MetalFileChooserUI.java ! src/java.desktop/share/classes/javax/swing/plaf/synth/SynthTextFieldUI.java ! src/java.desktop/share/classes/javax/swing/plaf/synth/SynthTreeUI.java ! src/java.desktop/share/classes/javax/swing/text/BoxView.java ! src/java.desktop/share/classes/javax/swing/text/DefaultStyledDocument.java ! src/java.desktop/share/classes/javax/swing/text/JTextComponent.java ! src/java.desktop/share/classes/javax/swing/text/html/AccessibleHTML.java ! src/java.desktop/share/classes/javax/swing/text/html/CSS.java ! src/java.desktop/share/classes/javax/swing/text/html/HRuleView.java ! src/java.desktop/share/classes/javax/swing/text/html/HTMLDocument.java ! src/java.desktop/share/classes/javax/swing/text/html/HTMLEditorKit.java ! src/java.desktop/share/classes/javax/swing/text/html/HTMLWriter.java ! src/java.desktop/share/classes/javax/swing/text/html/HiddenTagView.java ! src/java.desktop/share/classes/javax/swing/text/html/Map.java ! src/java.desktop/share/classes/javax/swing/text/html/StyleSheet.java ! src/java.desktop/share/classes/javax/swing/text/rtf/RTFGenerator.java ! src/java.desktop/share/classes/javax/swing/tree/DefaultMutableTreeNode.java ! src/java.desktop/share/classes/javax/swing/tree/DefaultTreeModel.java ! src/java.desktop/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java ! src/java.desktop/share/classes/sun/awt/im/InputContext.java ! src/java.desktop/share/classes/sun/awt/shell/ShellFolder.java ! src/java.desktop/share/classes/sun/font/AttributeValues.java ! src/java.desktop/share/classes/sun/font/FontUtilities.java ! src/java.desktop/share/classes/sun/print/PSStreamPrintService.java ! src/java.desktop/share/classes/sun/print/PathGraphics.java ! src/java.desktop/share/classes/sun/print/PrintJob2D.java ! src/java.desktop/share/classes/sun/print/ServiceDialog.java ! src/java.desktop/share/classes/sun/swing/DefaultLookup.java ! src/java.desktop/share/classes/sun/swing/MenuItemLayoutHelper.java ! src/java.desktop/unix/classes/sun/awt/X11/XComponentPeer.java ! src/java.desktop/unix/classes/sun/awt/X11/XEmbedCanvasPeer.java ! src/java.desktop/unix/classes/sun/awt/X11/XWindow.java ! src/java.desktop/unix/classes/sun/awt/X11/XWindowPeer.java ! src/java.desktop/unix/classes/sun/java2d/xr/XRSurfaceData.java ! src/java.desktop/unix/classes/sun/print/IPPPrintService.java ! src/java.desktop/unix/classes/sun/print/UnixPrintJob.java ! src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsFileChooserUI.java ! src/java.desktop/windows/classes/sun/awt/shell/Win32ShellFolder2.java ! src/java.desktop/windows/classes/sun/awt/windows/WPrinterJob.java Changeset: ba2a8e5a Author: Athijegannathan Sundararajan Date: 2021-12-03 13:20:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ba2a8e5a496799451095362279b9dd4b6df20b67 8278205: jlink plugins should dump .class file in debug mode Reviewed-by: jlaskey ! src/jdk.jlink/share/classes/jdk/tools/jlink/internal/JlinkTask.java ! src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/AbstractPlugin.java ! src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/IncludeLocalesPlugin.java ! src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/StripJavaDebugAttributesPlugin.java ! src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/VersionPropsPlugin.java Changeset: 3f28a214 Author: Maurizio Cimadamore Date: 2021-12-03 13:23:36 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3f28a21414be32375dc0f4b12d349826bacd4810 8278144: Javadoc for MemorySegment::set/MemorySegment::setAtIndex is missing throws tag Reviewed-by: sundar ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemorySegment.java Changeset: f7237793 Author: Denghui Dong Date: 2021-12-03 13:31:06 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f7237793ffa3a5a804fea49f165c8b9f1935cfac 8278079: C2: expand_dtrace_alloc_probe doesn't take effect in macro.cpp Reviewed-by: thartmann, kvn, chagedorn ! src/hotspot/share/opto/macro.cpp Changeset: 53a43427 Author: Aleksey Shipilev Date: 2021-12-03 15:42:18 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/53a4342783d94cead4d26e5b29d286421b9432c3 8278137: JFR: PrettyWriter uses incorrect year specifier Reviewed-by: egahlin ! src/jdk.jfr/share/classes/jdk/jfr/internal/tool/PrettyWriter.java Changeset: 0e7b6bcd Author: Aleksey Shipilev Date: 2021-12-03 15:43:51 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/0e7b6bcd8260293c3d39417f04b9b1e4409aa20a 8278141: LIR_OpLoadKlass::_info shadows the field of the same name from LIR_Op Reviewed-by: thartmann, rkennke ! src/hotspot/share/c1/c1_LIR.hpp Changeset: 0d938ced Author: Brian Burkhalter Date: 2021-12-03 16:00:27 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/0d938cedcaf55886058b94dc280a8f7181c79fdf 8278172: java/nio/channels/FileChannel/BlockDeviceSize.java should only run on Linux Reviewed-by: lancea, alanb ! test/jdk/java/nio/channels/FileChannel/BlockDeviceSize.java Changeset: 0a090926 Author: Calvin Cheung Date: 2021-12-03 16:36:19 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/0a0909263194032ae7d8348484e3638f84090233 8268288: jdk/jfr/api/consumer/streaming/TestOutOfProcessMigration.java fails with "Error: ShouldNotReachHere()" Reviewed-by: minqi, iklam ! src/hotspot/share/cds/filemap.cpp Changeset: fbf096ee Author: Magnus Ihse Bursie Date: 2021-12-03 16:56:36 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/fbf096eea46756bdac6f474266caec500c4dc5c5 8251400: Fix incorrect addition of library to test in JDK-8237858 Reviewed-by: dholmes, erikj ! make/common/TestFilesCompilation.gmk ! make/test/JtregNativeJdk.gmk Changeset: 2e30fa93 Author: merykitty Committer: Paul Sandoz Date: 2021-12-03 17:07:11 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/2e30fa936dd5fffceb17d338271f5e725c85801c 8278171: [vectorapi] Mask incorrectly computed for zero extending cast Reviewed-by: psandoz ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/AbstractVector.java ! test/jdk/jdk/incubator/vector/VectorReshapeTests.java Changeset: 660f21a4 Author: Prasanta Sadhukhan Date: 2021-12-03 17:08:40 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/660f21a418ee4c616d0b91133fd44e74a77d4d53 8278119: ProblemList few headful test failing in macosx12-aarch64 system Reviewed-by: dcubed ! test/jdk/ProblemList.txt Changeset: 01cb2b98 Author: Christian Hagedorn Date: 2021-12-03 17:14:10 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/01cb2b9883d7c9ecdba0ee5bd42124faed4d080c 8277529: SIGSEGV in C2 CompilerThread Node::rematerialize() compiling Packet::readUnsignedTrint Reviewed-by: thartmann, roland, kvn ! src/hotspot/share/opto/loopPredicate.cpp ! src/hotspot/share/opto/memnode.cpp + test/hotspot/jtreg/compiler/loopopts/TestDepBetweenLoopAndPredicate.java Changeset: 678ac589 Author: Daniel D. Daugherty Date: 2021-12-03 17:22:14 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/678ac589adeba0e9c2ae6d123f05ff20f02082c8 8278240: ProblemList containers/docker/TestJcmd.java on linux-aarch64 Reviewed-by: mseledtsov, tschatzl ! test/hotspot/jtreg/ProblemList.txt Changeset: 780b8b10 Author: Joe Darcy Date: 2021-12-03 18:14:33 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/780b8b1072811208968e4f32f5368eab622fcdcc 8278179: Enable all doclint warnings for build of java.naming Reviewed-by: iris, erikj ! make/modules/java.naming/Java.gmk Changeset: 38f525e9 Author: vamsi-parasa Committer: Sandhya Viswanathan Date: 2021-12-03 18:17:54 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/38f525e96e767597d16698d4b243b681782acc9f 8275821: Optimize random number generators developed in JDK-8248862 using Math.unsignedMultiplyHigh() Reviewed-by: psandoz, jlaskey ! src/jdk.random/share/classes/jdk/random/L128X1024MixRandom.java ! src/jdk.random/share/classes/jdk/random/L128X128MixRandom.java ! src/jdk.random/share/classes/jdk/random/L128X256MixRandom.java + test/micro/org/openjdk/bench/java/util/RandomGeneratorNext.java Changeset: a729a70c Author: Weijun Wang Date: 2021-12-03 18:52:17 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/a729a70c0119ed071ff490b0dfd4e3e2cb1a5ae4 8225181: KeyStore should have a getAttributes method Reviewed-by: mullan ! src/java.base/share/classes/java/security/KeyStore.java ! src/java.base/share/classes/java/security/KeyStoreSpi.java ! src/java.base/share/classes/sun/security/pkcs12/PKCS12KeyStore.java ! src/java.base/share/classes/sun/security/provider/DomainKeyStore.java ! src/java.base/share/classes/sun/security/util/KeyStoreDelegator.java + test/jdk/sun/security/pkcs12/GetAttributes.java Changeset: e1cde19d Author: Weijun Wang Date: 2021-12-03 19:52:18 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e1cde19dbdbbca365ecfea6d1e2e85a42ed8bde0 8278247: KeyStoreSpi::engineGetAttributes does not throws KeyStoreException Reviewed-by: mullan ! src/java.base/share/classes/java/security/KeyStoreSpi.java Changeset: 2b87c2b4 Author: Jatin Bhateja Date: 2021-12-03 20:21:21 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/2b87c2b429f1c9f0d940795d5f74a54a20c2f5c0 8277793: Support vector F2I and D2L cast operations for X86 Reviewed-by: neliasso, sviswanathan ! src/hotspot/cpu/x86/assembler_x86.cpp ! src/hotspot/cpu/x86/assembler_x86.hpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.hpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.hpp ! src/hotspot/cpu/x86/x86.ad Changeset: 24e16ac6 Author: Sandhya Viswanathan Date: 2021-12-03 21:06:16 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/24e16ac637095d7dee1d6fe34f996b68eedfa8bc 8277617: Adjust AVX3Threshold for copy/fill stubs Reviewed-by: jbhateja, dholmes, neliasso, jiefu ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86_arrayCopy_avx3.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp ! src/hotspot/cpu/x86/vm_version_x86.cpp ! src/hotspot/cpu/x86/vm_version_x86.hpp Changeset: 02ee337a Author: Joe Darcy Date: 2021-12-04 02:12:35 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/02ee337ae0d163ae44b1691eb9de12c5608ba178 8278175: Enable all doclint warnings for build of java.desktop Reviewed-by: erikj, prr ! make/modules/java.desktop/Java.gmk ! src/java.desktop/share/classes/java/awt/BufferCapabilities.java ! src/java.desktop/share/classes/java/awt/Component.java ! src/java.desktop/share/classes/java/awt/event/KeyEvent.java ! src/java.desktop/share/classes/java/beans/beancontext/BeanContextServicesSupport.java ! src/java.desktop/share/classes/java/beans/beancontext/BeanContextSupport.java ! src/java.desktop/share/classes/javax/swing/DefaultListSelectionModel.java ! src/java.desktop/share/classes/javax/swing/JApplet.java ! src/java.desktop/share/classes/javax/swing/JDialog.java ! src/java.desktop/share/classes/javax/swing/JScrollBar.java ! src/java.desktop/share/classes/javax/swing/filechooser/FileSystemView.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicMenuItemUI.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicMenuUI.java ! src/java.desktop/share/classes/javax/swing/plaf/metal/MetalBorders.java ! src/java.desktop/share/classes/javax/swing/text/LayeredHighlighter.java ! src/java.desktop/share/classes/javax/swing/text/html/HTML.java ! src/java.desktop/share/classes/javax/swing/text/html/HTMLEditorKit.java ! src/java.desktop/share/classes/javax/swing/text/html/parser/AttributeList.java ! src/java.desktop/share/classes/javax/swing/text/html/parser/Parser.java ! src/java.desktop/share/classes/javax/swing/undo/UndoableEditSupport.java Changeset: 9642629d Author: Markus Karg Committer: Alan Bateman Date: 2021-12-04 09:27:23 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9642629d15d9631d8da9a3abdabc40323f3c774b 8276779: (ch) InputStream returned by Channels.newInputStream should have fast path for SelectableChannels Reviewed-by: lancea, alanb ! src/java.base/share/classes/java/nio/channels/Channels.java ! src/java.base/share/classes/sun/nio/ch/ChannelInputStream.java ! test/jdk/java/nio/channels/Channels/TransferTo.java Changeset: 267c024e Author: Coleen Phillimore Date: 2021-12-04 13:05:06 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/267c024eb52acd1611188dd5b1417b877ff3eafd 8265150: AsyncGetCallTrace crashes on ResourceMark Reviewed-by: dholmes, stuefe, eosterlund, sspitsyn ! src/hotspot/share/oops/method.cpp ! src/hotspot/share/prims/jvmtiEnvBase.cpp Changeset: 839b6067 Author: Aleksey Shipilev Date: 2021-12-05 21:38:45 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/839b6067c85cfc260803af9b01dd1e7e7f8388db 8278143: Remove unused "argc" from ConstantPool::copy_bootstrap_arguments_at_impl Reviewed-by: lfoltan, dholmes ! src/hotspot/share/oops/constantPool.cpp Changeset: 104aa1f7 Author: Srikanth Adayapalam Date: 2021-12-06 06:24:56 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/104aa1f7f9f212318113e304e16e185a6acbec6c 8268575: Annotations not visible on model elements before they are generated Reviewed-by: mcimadamore ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Annotate.java + test/langtools/tools/javac/processing/8268575/Processor.java + test/langtools/tools/javac/processing/8268575/T8268575.java Changeset: f180a459 Author: Aleksey Shipilev Date: 2021-12-06 06:26:50 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f180a4591f52d0af0c030aa85be33c51b06c90ee 8278016: Add compiler tests to tier{2,3} Reviewed-by: kvn, dholmes ! test/hotspot/jtreg/TEST.groups Changeset: f39fe5b3 Author: Tobias Holenstein Committer: Tobias Hartmann Date: 2021-12-06 08:23:49 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f39fe5b3d629c6d557eb7bab8d1ff81350c616cc 8154011: Make TraceDeoptimization a diagnostic flag Reviewed-by: kvn, dholmes, thartmann ! src/hotspot/share/runtime/globals.hpp Changeset: 194cdf4e Author: Jan Lahoda Date: 2021-12-06 08:42:26 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/194cdf4e28225133dcdf29cf1bf4e580f3fd9208 8277864: Compilation error thrown while doing a boxing conversion on selector expression Reviewed-by: jlaskey, vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TransPatterns.java ! test/langtools/tools/javac/patterns/Switches.java Changeset: 8d190dd0 Author: Ludvig Janiuk Committer: Nils Eliasson Date: 2021-12-06 08:58:41 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8d190dd003c58aa9ebb403e95a73a128af7e8941 8277496: Remove duplication in c1 Block successor lists Reviewed-by: neliasso, kvn ! src/hotspot/share/c1/c1_CFGPrinter.cpp ! src/hotspot/share/c1/c1_GraphBuilder.cpp ! src/hotspot/share/c1/c1_IR.cpp ! src/hotspot/share/c1/c1_Instruction.cpp ! src/hotspot/share/c1/c1_Instruction.hpp ! src/hotspot/share/c1/c1_InstructionPrinter.cpp ! src/hotspot/share/c1/c1_LIR.cpp ! src/hotspot/share/c1/c1_Optimizer.cpp Changeset: d14f06a9 Author: Markus Gr?nlund Date: 2021-12-06 09:29:28 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/d14f06a9630d2cd2a929d0e44ebe4bb10e20dbd4 8278031: MultiThreadedRefCounter should not use relaxed atomic decrement Reviewed-by: kbarrett ! src/hotspot/share/jfr/utilities/jfrRefCountPointer.hpp Changeset: 286a26c3 Author: Hamlin Li Date: 2021-12-06 11:50:11 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/286a26c36600ed82726f1678194363b2828851dd 8278277: G1: Simplify implementation of G1GCPhaseTimes::record_or_add_time_secs Reviewed-by: iwalulya, sjohanss, tschatzl ! src/hotspot/share/gc/g1/g1GCPhaseTimes.cpp Changeset: 6994d809 Author: Jie Fu Date: 2021-12-06 13:44:22 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/6994d809371e80c1e24cd296c48c7f75886577b7 8278291: compiler/uncommontrap/TraceDeoptimizationNoRealloc.java fails with release VMs after JDK-8154011 Reviewed-by: shade, thartmann ! test/hotspot/jtreg/compiler/uncommontrap/TraceDeoptimizationNoRealloc.java Changeset: a885aab6 Author: Markus Gr?nlund Date: 2021-12-06 14:36:51 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/a885aab696777c99c8c4c5d9a46afc5fe0a4fe47 8276125: RunThese24H.java SIGSEGV in JfrThreadGroup::thread_group_id Reviewed-by: egahlin, shade ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrThreadGroup.cpp Changeset: 7c6f57fc Author: Christian Hagedorn Date: 2021-12-06 14:48:03 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7c6f57fcb1f1fcecf26f7b8046a5a41ca6d9c315 8275610: C2: Object field load floats above its null check resulting in a segfault Reviewed-by: kvn, roland ! src/hotspot/share/opto/loopopts.cpp + test/hotspot/jtreg/compiler/loopopts/TestEliminateNullCheckWithSplitIf.java Changeset: adf39522 Author: Vishal Chand Committer: Thomas Schatzl Date: 2021-12-06 15:28:20 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/adf39522c178b82dc73e341751b2d9aba984469d 8277372: Add getters for BOT and card table members Reviewed-by: tschatzl, sjohanss, ayang ! src/hotspot/cpu/aarch64/gc/g1/g1BarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shared/cardTableBarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/arm/c1_LIRGenerator_arm.cpp ! src/hotspot/cpu/arm/gc/g1/g1BarrierSetAssembler_arm.cpp ! src/hotspot/cpu/arm/gc/shared/cardTableBarrierSetAssembler_arm.cpp ! src/hotspot/cpu/ppc/gc/g1/g1BarrierSetAssembler_ppc.cpp ! src/hotspot/cpu/ppc/gc/shared/cardTableBarrierSetAssembler_ppc.cpp ! src/hotspot/cpu/s390/gc/g1/g1BarrierSetAssembler_s390.cpp ! src/hotspot/cpu/s390/gc/shared/cardTableBarrierSetAssembler_s390.cpp ! src/hotspot/cpu/x86/gc/g1/g1BarrierSetAssembler_x86.cpp ! src/hotspot/cpu/x86/gc/shared/cardTableBarrierSetAssembler_x86.cpp ! src/hotspot/share/gc/g1/c2/g1BarrierSetC2.cpp ! src/hotspot/share/gc/g1/g1AllocRegion.cpp ! src/hotspot/share/gc/g1/g1Arguments.cpp ! src/hotspot/share/gc/g1/g1BlockOffsetTable.cpp ! src/hotspot/share/gc/g1/g1BlockOffsetTable.hpp ! src/hotspot/share/gc/g1/g1BlockOffsetTable.inline.hpp ! src/hotspot/share/gc/g1/g1CardCounts.cpp ! src/hotspot/share/gc/g1/g1CardTable.cpp ! src/hotspot/share/gc/g1/g1CardTable.hpp ! src/hotspot/share/gc/g1/g1CardTable.inline.hpp ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1RemSet.cpp ! src/hotspot/share/gc/g1/heapRegion.cpp ! src/hotspot/share/gc/g1/heapRegionRemSet.cpp ! src/hotspot/share/gc/g1/heapRegionRemSet.inline.hpp ! src/hotspot/share/gc/parallel/objectStartArray.cpp ! src/hotspot/share/gc/parallel/objectStartArray.hpp ! src/hotspot/share/gc/parallel/psOldGen.cpp ! src/hotspot/share/gc/shared/blockOffsetTable.cpp ! src/hotspot/share/gc/shared/blockOffsetTable.hpp ! src/hotspot/share/gc/shared/blockOffsetTable.inline.hpp ! src/hotspot/share/gc/shared/c1/cardTableBarrierSetC1.cpp ! src/hotspot/share/gc/shared/c2/cardTableBarrierSetC2.cpp ! src/hotspot/share/gc/shared/cardTable.cpp ! src/hotspot/share/gc/shared/cardTable.hpp ! src/hotspot/share/gc/shared/vmStructs_gc.hpp ! src/hotspot/share/jvmci/jvmciCompilerToVMInit.cpp ! test/hotspot/gtest/gc/g1/test_freeRegionList.cpp ! test/hotspot/gtest/gc/g1/test_g1CardSetContainers.cpp Changeset: ab781874 Author: Jan Lahoda Date: 2021-12-06 15:43:42 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ab781874b27ee4fe1bc6b5fa2cd7997e451e2026 8277105: Inconsistent handling of missing permitted subclasses Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Flow.java ! test/langtools/tools/javac/patterns/Exhaustiveness.java + test/langtools/tools/javac/sealed/MissingPermittedSubtypes.java Changeset: 082fdf47 Author: Prasanta Sadhukhan Date: 2021-12-06 16:08:28 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/082fdf479367612a7bd795d3becfe9830db4b2d6 8172065: javax/swing/JTree/4908142/bug4908142.java The selected index should be "aad" Reviewed-by: aivanov ! test/jdk/javax/swing/JTree/4908142/bug4908142.java Changeset: 587e5409 Author: Chris Plummer Date: 2021-12-06 16:09:45 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/587e5409c2488cf8c3579a4932c588efc5a02749 8210558: serviceability/sa/TestJhsdbJstackLock.java fails to find '^\s+- waiting to lock <0x[0-9a-f]+> \(a java\.lang\.Class ...' Reviewed-by: kevinw, sspitsyn ! test/hotspot/jtreg/serviceability/sa/LingeredAppWithLock.java Changeset: 5045eb53 Author: Joe Darcy Date: 2021-12-06 16:56:27 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/5045eb538b3afc6cf646642f1109473597b3004a 8278273: Remove unnecessary exclusion of doclint accessibility checks Reviewed-by: iris, alanb, ihse ! make/modules/java.base/Java.gmk ! make/modules/java.instrument/Java.gmk ! make/modules/java.logging/Java.gmk ! make/modules/java.management/Java.gmk ! make/modules/java.smartcardio/Java.gmk ! make/modules/java.sql.rowset/Java.gmk ! make/modules/java.xml/Java.gmk Changeset: 70bad89b Author: Artem Semenov Date: 2021-12-06 17:39:43 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/70bad89b012eb200ca1e76f384a6e5fb307cf26d 8277497: Last column cell in the JTAble row is read as empty cell Reviewed-by: ant, kizune, pbansal ! src/java.desktop/share/classes/javax/swing/JLabel.java Changeset: 2c31a173 Author: Weijun Wang Date: 2021-12-06 18:00:54 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/2c31a1735d5b8646ed8984a5475d5c8c9c91c19d 8275082: Update XML Security for Java to 2.3.0 Reviewed-by: mullan ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/Init.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/algorithms/implementations/IntegrityHmac.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/Canonicalizer20010315.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/CanonicalizerBase.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/CanonicalizerPhysical.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/NameSpaceSymbTable.java - src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/exceptions/XMLSecurityRuntimeException.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/KeyResolver.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/implementations/KeyInfoReferenceResolver.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/resource/config.xml ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/resource/xmlsecurity_en.properties ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/signature/XMLSignatureInput.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/TransformC14N.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/TransformC14NExclusive.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/TransformEnvelopedSignature.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/TransformXPath.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/utils/Base64.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/utils/DOMNamespaceContext.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/utils/RFC2253Parser.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/utils/XMLUtils.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/ResourceResolver.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/ResourceResolverContext.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/implementations/ResolverDirectHTTP.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/implementations/ResolverLocalFilesystem.java ! src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/ApacheCanonicalizer.java ! src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMReference.java ! src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMTransform.java ! src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMURIDereferencer.java ! src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/Policy.java ! src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/Utils.java ! src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/XMLDSigRI.java ! src/java.xml.crypto/share/legal/santuario.md Changeset: 239362da Author: ANUPAM DEV Committer: Alexey Ivanov Date: 2021-12-06 18:46:29 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/239362da51e70b9e968cb488b7c2ec9d91c32837 8247973: Javadoc incorrect for IdentityArrayList, IdentityLinkedList Reviewed-by: aivanov, prr ! src/java.desktop/share/classes/sun/awt/util/IdentityArrayList.java ! src/java.desktop/share/classes/sun/awt/util/IdentityLinkedList.java Changeset: ea8d3c92 Author: Martin Balao Date: 2021-12-06 20:31:55 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ea8d3c92c69c393cdbc6c62398f1e9c6adc708d3 8271566: DSA signature length value is not accurate in P11Signature Reviewed-by: valeriep ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Key.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Signature.java + test/jdk/sun/security/pkcs11/Signature/LargeDSAKey.java Changeset: 2ff12966 Author: Ivan ?ipka Committer: Mark Sheppard Date: 2021-12-06 23:34:32 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/2ff12966a345eaa1c16ed73165b3eb273e56f8dd 8277957: Add test group for IPv6 exclusive testing Reviewed-by: alanb, msheppar ! test/jdk/TEST.groups Changeset: f148e3e4 Author: Jonathan Gibbons Date: 2021-12-07 00:41:11 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f148e3e4623c6d0270a10ba73140e0c37ca5398a 8278318: Create {@index} entries for key LangTools terms Reviewed-by: darcy ! src/java.compiler/share/classes/module-info.java ! src/jdk.compiler/share/classes/module-info.java Changeset: 10db0e41 Author: Weijun Wang Date: 2021-12-07 01:37:55 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/10db0e41634b62be5c1a931bd54ac4260108670d 8277932: Subject:callAs() not throwing NPE when action is null Reviewed-by: rriggs ! src/java.base/share/classes/javax/security/auth/Subject.java Changeset: f22d157e Author: Sibabrata Sahoo Date: 2021-12-07 05:10:30 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f22d157e551fb28991e7713a45e63a0a8d9d2c4c 8277353: java/security/MessageDigest/ThreadSafetyTest.java test times out Reviewed-by: weijun ! test/jdk/java/security/MessageDigest/ThreadSafetyTest.java Changeset: e535cb3f Author: Serguei Spitsyn Date: 2021-12-07 08:16:49 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e535cb3fbac11785cfdb43c9b6f73b2a38a621d6 8272395: Bad HTML in JVMTI man page Reviewed-by: dholmes, iris ! src/hotspot/share/prims/jvmti.xml Changeset: 24877ac0 Author: Alan Bateman Date: 2021-12-07 08:49:18 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/24877ac0788d3db9f2e9c7492a0d3e42244e7e06 8278270: ServerSocket is not thread safe Reviewed-by: dfuchs ! src/java.base/share/classes/java/net/ServerSocket.java Changeset: 07669e3b Author: Yasumasa Suenaga Date: 2021-12-07 09:26:13 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/07669e3bc65b1728d784e21ec83b437374f9fa19 8275375: [REDO] JDK-8271949 dumppath in -XX:FlightRecorderOptions does not affect Reviewed-by: egahlin, mgronlun ! src/hotspot/share/jfr/jni/jfrJniMethod.cpp ! src/hotspot/share/jfr/jni/jfrJniMethod.hpp ! src/hotspot/share/jfr/jni/jfrJniMethodRegistration.cpp ! src/hotspot/share/jfr/recorder/repository/jfrEmergencyDump.cpp ! src/hotspot/share/jfr/recorder/repository/jfrEmergencyDump.hpp ! src/hotspot/share/jfr/recorder/service/jfrOptionSet.cpp ! src/jdk.jfr/share/classes/jdk/jfr/internal/JVM.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/Options.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/SecuritySupport.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/dcmd/DCmdConfigure.java ! test/jdk/jdk/jfr/jvm/TestDumpOnCrash.java Changeset: b2638e5e Author: Aleksey Shipilev Date: 2021-12-07 11:32:17 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/b2638e5efd3c2b1abe790ab59baf28afa308614f 8244602: Add JTREG_REPEAT_COUNT to repeat execution of a test Reviewed-by: ihse, erikj ! doc/testing.html ! doc/testing.md ! make/RunTests.gmk Changeset: 44fcee38 Author: Albert Mingkun Yang Date: 2021-12-07 13:34:35 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/44fcee3830466e34656ea553d10a60fc382c85a6 8278289: Drop G1BlockOffsetTablePart::_object_can_span Reviewed-by: tschatzl, sjohanss, mli ! src/hotspot/share/gc/g1/g1BlockOffsetTable.cpp ! src/hotspot/share/gc/g1/g1BlockOffsetTable.hpp ! src/hotspot/share/gc/g1/g1BlockOffsetTable.inline.hpp ! src/hotspot/share/gc/g1/heapRegion.cpp Changeset: 35361270 Author: Thomas Stuefe Date: 2021-12-07 14:15:04 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/35361270cb3aae9fa560736f8d05f1b258704c87 8277383: VM.metaspace optionally show chunk freelist details Reviewed-by: coleenp, shade ! src/hotspot/share/memory/metaspace/metaspaceDCmd.cpp ! src/hotspot/share/memory/metaspace/metaspaceDCmd.hpp ! src/hotspot/share/memory/metaspace/metaspaceReporter.cpp ! src/hotspot/share/memory/metaspace/metaspaceReporter.hpp ! test/hotspot/jtreg/runtime/Metaspace/PrintMetaspaceDcmd.java Changeset: 56ca66e8 Author: Alan Bateman Date: 2021-12-07 14:21:47 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/56ca66e86f848d3790115aa2faec632c226d8cd2 8277863: Deprecate sun.misc.Unsafe methods that return offsets Reviewed-by: psandoz, mchung ! src/jdk.unsupported/share/classes/sun/misc/Unsafe.java Changeset: 69d8669f Author: Alan Bateman Date: 2021-12-07 14:22:35 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/69d8669fb3f1e4db2fbb3366a1349dd0285f5b0f 8278339: ServerSocket::isClosed may return false after accept throws Reviewed-by: dfuchs ! src/java.base/share/classes/java/net/ServerSocket.java + test/jdk/java/net/ServerSocket/IsClosedAfterAsyncClose.java Changeset: 5b81d5ee Author: Roman Kennke Date: 2021-12-07 14:41:42 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/5b81d5eeb4124ff04dc3b9a96d0b53edcfa07c5f 8276901: Implement UseHeavyMonitors consistently Reviewed-by: coleenp, mdoerr, dcubed ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/sharedRuntime_aarch64.cpp ! src/hotspot/cpu/arm/c1_LIRAssembler_arm.cpp ! src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp ! src/hotspot/cpu/ppc/macroAssembler_ppc.cpp ! src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp ! src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp ! src/hotspot/cpu/x86/sharedRuntime_x86_32.cpp ! src/hotspot/cpu/x86/sharedRuntime_x86_64.cpp ! src/hotspot/share/c1/c1_LIRGenerator.cpp ! src/hotspot/share/c1/c1_Runtime1.cpp ! src/hotspot/share/c1/c1_globals.hpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/synchronizer.cpp ! test/hotspot/jtreg/runtime/CommandLine/VMDeprecatedOptions.java ! test/jdk/java/util/concurrent/ConcurrentHashMap/MapLoops.java Changeset: bb50b92b Author: Andrey Turbanov Committer: Jonathan Gibbons Date: 2021-12-07 14:54:32 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/bb50b92b804839577cee5092a8a62a98b760f0dc 8277536: Use String.blank in jdk.javadoc where applicable Reviewed-by: jjg ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclint/Checker.java Changeset: c609b5d3 Author: Aleksei Efimov Date: 2021-12-07 15:42:02 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/c609b5d3d7a3d08e489c2c9ed40c42bcb5bd2147 8277628: Spec for InetAddressResolverProvider::get() throwing error or exception could be clearer Reviewed-by: alanb, dfuchs ! src/java.base/share/classes/java/net/spi/InetAddressResolverProvider.java Changeset: bd7c54ae Author: Maurizio Cimadamore Date: 2021-12-07 16:13:54 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/bd7c54aee8d9795676087d6b34d4744031de1ef1 8278341: Liveness check for global scope is not as fast as it could be Reviewed-by: shade, jvernee ! src/jdk.incubator.foreign/share/classes/jdk/internal/foreign/ResourceScopeImpl.java Changeset: 543d1a8c Author: Naoto Sato Date: 2021-12-07 16:44:52 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/543d1a8cf41d32dca161c9d8041f133a71bf0ecb 8275721: Name of UTC timezone in a locale changes depending on previous code Reviewed-by: joehw ! src/java.base/share/classes/sun/util/cldr/CLDRTimeZoneNameProviderImpl.java + test/jdk/sun/util/resources/TimeZone/ChineseTimeZoneNameTest.java Changeset: 7ea4b19f Author: Brian Burkhalter Date: 2021-12-07 16:47:24 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7ea4b19f544cabb70590793ef59d5a8be05deeb1 8278166: java/nio/channels/Channels/TransferTo.java timed out Reviewed-by: lancea, alanb ! test/jdk/java/nio/channels/Channels/TransferTo.java Changeset: 7217cb78 Author: Maxim Kartashev Committer: Michael McMahon Date: 2021-12-07 16:59:34 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7217cb78789046cfc823b63cacc36f6cf2b825f5 8274883: (se) Selector.open throws IAE when the default file system provider is changed to a custom provider Reviewed-by: alanb, michaelm ! src/java.base/share/classes/sun/nio/ch/SocketChannelImpl.java ! src/java.base/share/classes/sun/nio/ch/UnixDomainSockets.java + test/jdk/java/nio/channels/Selector/CustomFileSystem.java + test/jdk/java/nio/channels/Selector/CustomFileSystemProvider.java Changeset: 5a036ace Author: Zhengyu Gu Date: 2021-12-07 17:42:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/5a036ace01ebedd88fb3d9100e3a0c19871677ac 8277990: NMT: Remove NMT shutdown capability Reviewed-by: stuefe, shade ! src/hotspot/os/posix/perfMemory_posix.cpp ! src/hotspot/os/windows/perfMemory_windows.cpp ! src/hotspot/share/gc/z/zPhysicalMemory.cpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/os.cpp ! src/hotspot/share/services/mallocSiteTable.cpp ! src/hotspot/share/services/mallocSiteTable.hpp ! src/hotspot/share/services/mallocTracker.cpp ! src/hotspot/share/services/mallocTracker.hpp ! src/hotspot/share/services/memTracker.cpp ! src/hotspot/share/services/memTracker.hpp ! src/hotspot/share/services/nmtCommon.cpp ! src/hotspot/share/services/nmtCommon.hpp ! src/hotspot/share/services/threadStackTracker.cpp ! src/hotspot/share/services/threadStackTracker.hpp ! src/hotspot/share/services/virtualMemoryTracker.cpp ! src/hotspot/share/services/virtualMemoryTracker.hpp - test/hotspot/jtreg/runtime/NMT/ChangeTrackingLevel.java ! test/lib/jdk/test/whitebox/WhiteBox.java ! test/lib/sun/hotspot/WhiteBox.java Changeset: 3955b037 Author: Jan Lahoda Date: 2021-12-07 18:15:25 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3955b037da8a0981d8efc67f28caaacdef7dfb31 8277328: jdk/jshell/CommandCompletionTest.java failures on Windows Reviewed-by: vromero ! src/jdk.jshell/share/classes/jdk/internal/jshell/tool/JShellTool.java ! test/langtools/jdk/jshell/CommandCompletionTest.java Changeset: d7c283a0 Author: Liam Miller-Cushon Date: 2021-12-07 18:44:39 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/d7c283a081c37bfb8bc5934e4b2af16cad512fd2 8275233: Incorrect line number reported in exception stack trace thrown from a lambda expression Reviewed-by: jlahoda ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java ! test/langtools/tools/javac/diags/examples/LambdaDeduplicate.java + test/langtools/tools/javac/lambda/deduplication/DeduplicationDebugInfo.java + test/langtools/tools/javac/lambda/deduplication/DeduplicationDebugInfo.out = test/langtools/tools/javac/lambda/deduplication/DeduplicationDebugInfo_none.out ! test/langtools/tools/javac/lambda/deduplication/DeduplicationTest.java Changeset: 061017a9 Author: Pavel Rappo Date: 2021-12-07 18:56:58 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/061017a9f4280657987524092b60611bfae8b95f 8273175: Add @since tags to the DocTree.Kind enum constants Reviewed-by: darcy ! src/jdk.compiler/share/classes/com/sun/source/doctree/DocTree.java Changeset: a8a1fbce Author: Pavel Rappo Date: 2021-12-07 18:58:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/a8a1fbce5b8efe014b2dac16b83e60de4cf65a3e 8278068: Fix next-line modifier (snippet markup) 8277027: Treat unrecognized markup as snippet text, but warn about it Reviewed-by: jjg ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets.properties ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/SnippetTaglet.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/snippet/MarkupParser.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/snippet/Parser.java ! test/langtools/jdk/javadoc/doclet/testSnippetTag/SnippetTester.java ! test/langtools/jdk/javadoc/doclet/testSnippetTag/TestSnippetMarkup.java ! test/langtools/jdk/javadoc/doclet/testSnippetTag/TestSnippetTag.java Changeset: 716c2e1e Author: Daniel D. Daugherty Date: 2021-12-07 19:28:04 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/716c2e1e85c244b31cf73e5ac1a2d765e3514c4d 8278368: ProblemList tools/jpackage/share/MultiNameTwoPhaseTest.java on macosx-x64 Reviewed-by: mikael ! test/jdk/ProblemList.txt Changeset: 3d61372b Author: Mikhailo Seledtsov Date: 2021-12-07 21:58:19 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3d61372ba589fbd76fee62ea607997f0fb0bc433 8278363: Create extented container test groups Reviewed-by: lmesnik ! test/hotspot/jtreg/TEST.groups ! test/jdk/TEST.groups Changeset: 3c2951f7 Author: Vicente Romero Date: 2021-12-07 23:31:09 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3c2951f738c5041761b551674822a32b418094c2 8275771: JDK source code contains redundant boolean operations in jdk.compiler and langtools Reviewed-by: jlahoda ! make/langtools/tools/compileproperties/CompileProperties.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java Changeset: ec7cb6d5 Author: Brent Christian Date: 2021-12-08 00:23:15 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ec7cb6d5d305003429b51384ed72973767c70124 8276447: Deprecate finalization-related methods for removal Reviewed-by: rriggs, alanb, lancea, darcy, mchung, serb, smarks, prr ! src/java.base/share/classes/java/lang/Enum.java ! src/java.base/share/classes/java/lang/Object.java ! src/java.base/share/classes/java/lang/Runtime.java ! src/java.base/share/classes/java/lang/System.java ! src/java.base/share/classes/java/util/concurrent/Executors.java ! src/java.base/share/classes/java/util/concurrent/ThreadPoolExecutor.java ! src/java.base/share/classes/sun/net/www/MeteredStream.java ! src/java.base/share/classes/sun/security/ssl/BaseSSLSocketImpl.java ! src/java.desktop/macosx/classes/apple/laf/JRSUIControl.java ! src/java.desktop/macosx/classes/sun/awt/CGraphicsEnvironment.java ! src/java.desktop/macosx/classes/sun/font/CFont.java ! src/java.desktop/macosx/classes/sun/font/CStrike.java ! src/java.desktop/macosx/classes/sun/lwawt/macosx/CFRetainedResource.java ! src/java.desktop/macosx/classes/sun/lwawt/macosx/CPrinterJob.java ! src/java.desktop/share/classes/com/sun/imageio/plugins/common/SubImageInputStream.java ! src/java.desktop/share/classes/com/sun/imageio/plugins/png/PNGImageWriter.java ! src/java.desktop/share/classes/com/sun/imageio/plugins/tiff/TIFFBaseJPEGCompressor.java ! src/java.desktop/share/classes/com/sun/imageio/plugins/tiff/TIFFJPEGDecompressor.java ! src/java.desktop/share/classes/com/sun/imageio/plugins/tiff/TIFFOldJPEGDecompressor.java ! src/java.desktop/share/classes/com/sun/imageio/stream/StreamFinalizer.java ! src/java.desktop/share/classes/com/sun/media/sound/AbstractMidiDevice.java ! src/java.desktop/share/classes/com/sun/media/sound/JavaSoundAudioClip.java ! src/java.desktop/share/classes/java/awt/Graphics.java ! src/java.desktop/share/classes/java/awt/PrintJob.java ! src/java.desktop/share/classes/javax/imageio/spi/ServiceRegistry.java ! src/java.desktop/share/classes/javax/imageio/stream/FileCacheImageInputStream.java ! src/java.desktop/share/classes/javax/imageio/stream/FileImageInputStream.java ! src/java.desktop/share/classes/javax/imageio/stream/FileImageOutputStream.java ! src/java.desktop/share/classes/javax/imageio/stream/ImageInputStreamImpl.java ! src/java.desktop/share/classes/javax/imageio/stream/MemoryCacheImageInputStream.java ! src/java.desktop/share/classes/javax/swing/text/StringContent.java ! src/java.desktop/share/classes/sun/java2d/SunGraphics2D.java ! src/java.desktop/share/classes/sun/print/PeekGraphics.java ! src/java.desktop/share/classes/sun/print/PrintJob2D.java ! src/java.desktop/share/classes/sun/print/ProxyGraphics.java ! src/java.desktop/share/classes/sun/print/ProxyGraphics2D.java ! src/java.desktop/unix/classes/sun/awt/X11InputMethodBase.java ! src/java.desktop/windows/classes/sun/awt/windows/WInputMethod.java ! src/java.management/share/classes/java/lang/management/MemoryMXBean.java ! src/java.management/share/classes/sun/management/MemoryImpl.java ! src/java.naming/share/classes/com/sun/jndi/ldap/AbstractLdapNamingEnumeration.java ! src/java.naming/share/classes/com/sun/jndi/ldap/LdapClient.java ! src/java.naming/share/classes/com/sun/jndi/ldap/LdapCtx.java ! src/java.naming/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java ! src/java.rmi/share/classes/sun/rmi/log/LogInputStream.java ! src/java.security.jgss/share/classes/sun/security/jgss/wrapper/GSSCredElement.java ! src/java.security.jgss/share/classes/sun/security/jgss/wrapper/GSSNameElement.java ! src/java.security.jgss/share/classes/sun/security/jgss/wrapper/NativeGSSContext.java ! src/java.security.sasl/share/classes/com/sun/security/sasl/CramMD5Base.java ! src/java.security.sasl/share/classes/com/sun/security/sasl/PlainClient.java ! src/java.smartcardio/share/classes/sun/security/smartcardio/CardImpl.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11KeyStore.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/PKCS11.java ! src/jdk.crypto.mscapi/windows/classes/sun/security/mscapi/CKey.java ! src/jdk.jconsole/share/classes/sun/tools/jconsole/SummaryTab.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/ChunkInputStream.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/ChunksChannel.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/RepositoryChunk.java ! src/jdk.naming.dns/share/classes/com/sun/jndi/dns/DnsClient.java ! src/jdk.naming.rmi/share/classes/com/sun/jndi/rmi/registry/RegistryContext.java ! src/jdk.security.jgss/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Base.java ! src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipFileSystem.java Changeset: d7ad5467 Author: Stuart Marks Date: 2021-12-08 00:27:53 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/d7ad546758091ea16f836c9771ff5c03a32fb712 8276422: Add command-line option to disable finalization Co-authored-by: David Holmes Co-authored-by: Brent Christian Reviewed-by: dholmes, kbarrett, bchristi ! make/data/hotspot-symbols/symbols-unix ! src/hotspot/share/classfile/classFileParser.cpp ! src/hotspot/share/include/jvm.h ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/java.base/share/classes/java/lang/ref/Finalizer.java ! src/java.base/share/classes/sun/launcher/resources/launcher.properties ! src/java.base/share/native/libjava/Finalizer.c + test/jdk/java/lang/Object/FinalizationOption.java + test/jdk/java/lang/Object/InvalidFinalizationOption.java ! test/jdk/jdk/jfr/event/runtime/TestFinalizerStatisticsEvent.java Changeset: fb6d6113 Author: Hamlin Li Date: 2021-12-08 01:26:35 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/fb6d6113112d8a15864195ccd59b583fc12087fd 8278276: G1: Refine naming of G1GCParPhaseTimesTracker::_must_record Reviewed-by: sjohanss, tschatzl ! src/hotspot/share/gc/g1/g1GCParPhaseTimesTracker.hpp ! src/hotspot/share/gc/g1/g1GCPhaseTimes.cpp ! src/hotspot/share/gc/g1/g1RemSet.cpp Changeset: e7db581e Author: Pengfei Li Date: 2021-12-08 04:29:23 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e7db581e9196b64ef65849e4600f17b23ca9138a 8277168: AArch64: Enable arraycopy partial inlining with SVE Reviewed-by: jbhateja, roland, aph ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/aarch64_sve.ad ! src/hotspot/cpu/aarch64/aarch64_sve_ad.m4 ! src/hotspot/cpu/aarch64/vm_version_aarch64.cpp ! src/hotspot/cpu/arm/arm.ad ! src/hotspot/cpu/ppc/ppc.ad ! src/hotspot/cpu/s390/s390.ad ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/share/opto/c2_globals.hpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/macroArrayCopy.cpp ! src/hotspot/share/opto/matcher.hpp ! src/hotspot/share/opto/type.cpp ! src/hotspot/share/opto/type.hpp ! src/hotspot/share/opto/vectornode.cpp ! src/hotspot/share/opto/vectornode.hpp Changeset: 5266e7d7 Author: Jie Fu Date: 2021-12-08 06:45:01 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/5266e7d780efee11309260ce96ae0c5b4836effb 8278379: Zero VM is broken due to UseRTMForStackLocks was not declared after JDK-8276901 Reviewed-by: dholmes, shade ! src/hotspot/share/runtime/arguments.cpp Changeset: 30f0c647 Author: Aleksey Shipilev Date: 2021-12-08 06:52:16 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/30f0c6475359516ce454722f06ac0c997e09868b 8277992: Add fast jdk_svc subtests to jdk:tier3 Reviewed-by: mseledtsov, alanb ! test/jdk/TEST.groups Changeset: b334d968 Author: Hannes Walln?fer Date: 2021-12-08 07:07:57 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/b334d9680b2ee796d5058d68881215bb11499aad 8276964: Better indicate a snippet that could not be processed Reviewed-by: jjg ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/TagletWriterImpl.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/HtmlStyle.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/TagName.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard.properties ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/stylesheet.css ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/SnippetTaglet.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/TagletWriter.java ! test/langtools/jdk/javadoc/doclet/testGenericTypeLink/TestGenericTypeLink.java ! test/langtools/jdk/javadoc/doclet/testInherited/TestInherited.java ! test/langtools/jdk/javadoc/doclet/testNonInlineHtmlTagRemoval/TestNonInlineHtmlTagRemoval.java ! test/langtools/jdk/javadoc/doclet/testSeeTag/TestSeeTag.java ! test/langtools/jdk/javadoc/doclet/testSnippetTag/TestSnippetTag.java Changeset: 5dcdee4b Author: Roland Westrelin Date: 2021-12-08 07:55:12 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/5dcdee4bcd337591c79aad8620a7f38345e6e3d9 8262341: Refine identical code in AddI/LNode. Reviewed-by: thartmann, eliu ! src/hotspot/share/opto/addnode.cpp ! src/hotspot/share/opto/addnode.hpp ! src/hotspot/share/opto/castnode.hpp ! src/hotspot/share/opto/cfgnode.cpp ! src/hotspot/share/opto/loopPredicate.cpp ! src/hotspot/share/opto/loopTransform.cpp ! src/hotspot/share/opto/loopnode.cpp ! src/hotspot/share/opto/loopnode.hpp ! src/hotspot/share/opto/mulnode.cpp ! src/hotspot/share/opto/mulnode.hpp ! src/hotspot/share/opto/node.hpp ! src/hotspot/share/opto/subnode.hpp ! src/hotspot/share/opto/type.cpp ! src/hotspot/share/opto/type.hpp Changeset: 10e0318f Author: Julia Boes Date: 2021-12-08 09:16:44 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/10e0318ff7289b248289a70a56adeff3c257de04 8278158: jwebserver should set request timeout Reviewed-by: dfuchs, michaelm ! src/jdk.httpserver/share/classes/sun/net/httpserver/simpleserver/JWebServer.java ! src/jdk.httpserver/share/classes/sun/net/httpserver/simpleserver/Main.java Changeset: 54993b13 Author: Thomas Stuefe Date: 2021-12-08 09:18:58 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/54993b13078ceb05736bb0e1d7ed7415c390442e 8278309: [windows] use of uninitialized OSThread::_state Reviewed-by: dholmes, shade ! src/hotspot/os/windows/os_windows.cpp Changeset: e5cb84e9 Author: Markus Gr?nlund Date: 2021-12-08 11:18:24 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e5cb84e9a1bca321f22d6e3ce13a6026342b4b85 8278336: Use int64_t to represent byte quantities consistently in JfrObjectAllocationSample Reviewed-by: egahlin ! src/hotspot/share/jfr/support/jfrObjectAllocationSample.cpp Changeset: fd8cb2da Author: Matthias Baesken Date: 2021-12-08 14:03:56 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/fd8cb2dae87e5726e89a1789e5a1ddd461c4400d 8278346: java/nio/file/Files/probeContentType/Basic.java fails on Linux SLES15 machine Reviewed-by: shade ! test/jdk/java/nio/file/Files/probeContentType/Basic.java Changeset: 37921e30 Author: Daniel Fuchs Date: 2021-12-08 15:31:49 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/37921e30803449c06b4d542fdfeed9928cce8a7d 8269258: java/net/httpclient/ManyRequestsLegacy.java failed with connection timeout Reviewed-by: michaelm ! test/jdk/java/net/httpclient/ManyRequests.java ! test/jdk/java/net/httpclient/ManyRequests2.java ! test/jdk/java/net/httpclient/ManyRequestsLegacy.java Changeset: e4852c6f Author: Calvin Cheung Date: 2021-12-08 15:59:37 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e4852c6f0aa25e7d40c577d507aedc7916ee8d50 8277998: runtime/cds/appcds/loaderConstraints/DynamicLoaderConstraintsTest.java#custom-cl-zgc failed "assert(ZAddress::is_marked(addr)) failed: Should be marked" Reviewed-by: iklam, minqi ! src/hotspot/share/cds/dynamicArchive.cpp ! src/hotspot/share/cds/lambdaFormInvokers.cpp ! src/hotspot/share/cds/lambdaFormInvokers.hpp ! test/hotspot/jtreg/runtime/cds/appcds/DumpClassListWithLF.java Changeset: 40d726b8 Author: Calvin Cheung Date: 2021-12-08 16:07:49 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/40d726b8aae7dff4316115b3a25001d502321efe 8278310: Improve logging in CDS DynamicLoaderConstraintsTest.java Reviewed-by: iklam ! src/hotspot/share/cds/archiveBuilder.hpp ! test/hotspot/jtreg/runtime/cds/appcds/loaderConstraints/DynamicLoaderConstraintsTest.java Changeset: 79165b73 Author: Calvin Cheung Date: 2021-12-08 16:10:06 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/79165b738d6d1336740631c855960a235b9ecfe4 8278324: Update the --generate-cds-archive jlink plugin usage message Reviewed-by: alanb ! src/jdk.jlink/share/classes/jdk/tools/jlink/resources/plugins.properties Changeset: 3e93e0b8 Author: Yumin Qi Date: 2021-12-08 16:20:39 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3e93e0b809f2c6cb4a466af92ec678cbc82863e4 8276769: -Xshare:auto should tolerate problems in the CDS archive Reviewed-by: iklam, ccheung ! src/hotspot/share/cds/filemap.cpp ! src/hotspot/share/include/cds.h ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/arguments.hpp ! test/hotspot/jtreg/runtime/cds/appcds/SharedArchiveConsistency.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/ArchiveConsistency.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/DynamicArchiveTestBase.java Changeset: 8af3b27c Author: Roland Westrelin Date: 2021-12-08 16:39:24 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8af3b27ce98bcb9cf0c155c98d6b9a9bc159aafe 8277850: C2: optimize mask checks in counted loops Reviewed-by: kvn, thartmann ! src/hotspot/share/opto/mulnode.cpp ! src/hotspot/share/opto/mulnode.hpp + test/hotspot/jtreg/compiler/c2/irTests/TestShiftAndMask.java ! test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java Changeset: 24781588 Author: Brian Burkhalter Date: 2021-12-08 17:11:14 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/2478158815a9ae0466542e27562bff046d760d3e 8277361: java/nio/channels/Channels/ReadXBytes.java fails with OOM error Reviewed-by: alanb, lancea ! test/jdk/java/nio/channels/Channels/ReadXBytes.java Changeset: 9b747491 Author: Valerie Peng Date: 2021-12-08 17:44:10 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9b747491de01fd011b09668a67113e80c2b7c708 8276660: Scalability bottleneck in java.security.Provider.getService() Reviewed-by: weijun ! src/java.base/share/classes/java/security/Provider.java Changeset: 83454530 Author: Alexey Ushakov Date: 2021-12-08 17:48:53 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/83454530ea538c80e2f1205cd8d2f9732503b592 8272392: Lanai: SwingSet2. Black background on expanding tree node Reviewed-by: aghaisas, jdv ! src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/EncoderManager.m ! src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLBlitLoops.m ! src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLClip.m ! src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLPaints.m ! src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLPipelineStatesStorage.m ! src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/RenderOptions.h ! src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/common.h Changeset: 92aa75b7 Author: Aleksey Shipilev Date: 2021-12-08 17:52:03 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/92aa75b72185c681757e6520d6fdc1ae4161d0c5 8274903: Zero: Support AsyncGetCallTrace Reviewed-by: sspitsyn, aph ! src/hotspot/cpu/zero/frame_zero.cpp ! src/hotspot/os_cpu/linux_zero/thread_linux_zero.cpp ! src/hotspot/os_cpu/linux_zero/thread_linux_zero.hpp ! src/hotspot/share/prims/forte.cpp Changeset: ba86dd4a Author: Daniel D. Daugherty Date: 2021-12-08 18:02:34 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ba86dd4aaf597a0f0832085b50fa00498f053a6a 8278445: ProblemList tools/jpackage/share/IconTest.java on macosx-x64 Reviewed-by: bpb ! test/jdk/ProblemList.txt Changeset: 42d9b1ba Author: Jan Lahoda Date: 2021-12-08 18:50:38 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/42d9b1baac25df649a8d575f5ffa3a0d5b8e7ed0 8277106: Cannot compile certain sources with --release Reviewed-by: darcy, mcimadamore ! make/data/symbols/java.base-C.sym.txt ! make/data/symbols/java.base-E.sym.txt ! make/data/symbols/java.base-G.sym.txt ! make/data/symbols/java.base-H.sym.txt ! make/data/symbols/java.xml-B.sym.txt ! make/data/symbols/java.xml-C.sym.txt ! make/data/symbols/java.xml-D.sym.txt ! make/data/symbols/java.xml-E.sym.txt ! make/data/symbols/jdk.incubator.foreign-F.sym.txt ! make/data/symbols/jdk.incubator.foreign-G.sym.txt ! make/data/symbols/jdk.incubator.foreign-H.sym.txt ! make/data/symbols/jdk.incubator.vector-G.sym.txt ! make/data/symbols/jdk.incubator.vector-H.sym.txt ! make/data/symbols/jdk.javadoc-H.sym.txt ! make/data/symbols/jdk.jfr-B.sym.txt ! make/data/symbols/jdk.jfr-G.sym.txt ! make/langtools/src/classes/build/tools/symbolgenerator/CreateSymbols.java + test/langtools/tools/javac/platform/NonExportedSuperTypes.java ! test/langtools/tools/javac/platform/createsymbols/CreateSymbolsTest.java ! test/langtools/tools/javac/platform/createsymbols/CreateSymbolsTestImpl.java Changeset: fb11d8fa Author: Jonathan Gibbons Date: 2021-12-08 19:48:05 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/fb11d8faf21539a8dc08d371658d1835484c8344 8272945: Use snippets in java.compiler documentation Reviewed-by: erikj, alanb ! make/CompileInterimLangtools.gmk ! make/modules/java.compiler/Java.gmk ! src/java.compiler/share/classes/javax/tools/JavaCompiler.java ! src/java.compiler/share/classes/javax/tools/JavaFileManager.java ! src/java.compiler/share/classes/javax/tools/StandardJavaFileManager.java ! src/java.compiler/share/classes/javax/tools/package-info.java + src/java.compiler/share/classes/javax/tools/snippet-files/JavaSourceFromString.java Changeset: 5a80abf7 Author: Jonathan Gibbons Date: 2021-12-08 19:50:14 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/5a80abf706dfde9342be53e78b942ff40f9624ea 8272944: Use snippets in jdk.javadoc documentation Reviewed-by: hannesw ! src/jdk.compiler/share/classes/com/sun/tools/javac/model/JavacElements.java ! src/jdk.javadoc/share/classes/jdk/javadoc/doclet/package-info.java Changeset: 8e8fadf2 Author: Roger Riggs Date: 2021-12-08 20:37:41 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8e8fadf2d4e45f53286dd8424d95f733a12cd1a0 8278428: ObjectInputStream.readFully range check incorrect Reviewed-by: alanb ! src/java.base/share/classes/java/io/ObjectInputStream.java ! test/jdk/java/io/Serializable/oldTests/WritePrimitive.java Changeset: c83b781b Author: Daniel D. Daugherty Date: 2021-12-08 20:42:52 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/c83b781b6002ca0f067a35e678ab5285d98d015d 8278459: ProblemList javax/swing/JTree/4908142/bug4908142.java on macosx-aarch64 Reviewed-by: lmesnik, bpb, prr ! test/jdk/ProblemList.txt Changeset: 6e7b7f35 Author: Sergey Bylokhov Date: 2021-12-08 21:15:55 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/6e7b7f352e66c767b16e1e98a162e7fea79126c6 8278251: Enable "missing-explicit-ctor" check in the jdk.unsupported.desktop module Reviewed-by: ihse, prr - make/modules/jdk.unsupported.desktop/Java.gmk Changeset: fe2ae8e3 Author: Eamonn McManus Date: 2021-12-08 21:24:43 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/fe2ae8e38bd8660cc637f13f425ccea17a11aa4f 8276904: Optional.toString() is unnecessarily expensive Reviewed-by: rriggs, smarks ! src/java.base/share/classes/java/util/Optional.java ! src/java.base/share/classes/java/util/OptionalDouble.java ! src/java.base/share/classes/java/util/OptionalInt.java ! src/java.base/share/classes/java/util/OptionalLong.java Changeset: b3faecf7 Author: Roland Westrelin Date: 2021-12-08 21:33:33 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/b3faecf73966ce0435644a89f8f43d85720e8328 8276116: C2: optimize long range checks in int counted loops Reviewed-by: kvn ! src/hotspot/cpu/x86/x86_32.ad ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/loopTransform.cpp ! src/hotspot/share/opto/loopnode.cpp ! src/hotspot/share/opto/loopnode.hpp ! src/hotspot/share/opto/loopopts.cpp ! test/hotspot/jtreg/compiler/c2/irTests/TestLongRangeChecks.java ! test/hotspot/jtreg/compiler/rangechecks/TestLongRangeCheck.java Changeset: 3893f4f7 Author: Serguei Spitsyn Date: 2021-12-08 22:32:00 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3893f4f70b5828ee8e673ce7b1422877efe5c292 8278330: dump stack trace if the jvmti test nsk/jvmti/GetThreadState/thrstat002 is failed with wrong thread state Reviewed-by: amenkov, lmesnik ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadState/thrstat002/thrstat002.cpp Changeset: 03bf55f6 Author: Vicente Romero Date: 2021-12-08 22:49:43 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/03bf55f62065f8f9c8ade1eff8ca6eaeabe51450 8277980: ObjectMethods::bootstrap throws NPE when lookup is null Reviewed-by: jjg ! src/java.base/share/classes/java/lang/runtime/ObjectMethods.java ! test/jdk/java/lang/runtime/ObjectMethodsTest.java Changeset: 3cec700a Author: Roger Riggs Date: 2021-12-08 22:59:38 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3cec700a5caa2243772e4b01c40630cb044b76fc 8278463: [test] Serialization WritePrimitive test revised for readFully test fails Reviewed-by: darcy ! test/jdk/java/io/Serializable/oldTests/WritePrimitive.java Changeset: 83e6a4c0 Author: Valerie Peng Date: 2021-12-08 23:04:15 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/83e6a4c0e9e4a9474ae0c1252378b1a09d1d2df0 8255409: Support the new C_GetInterfaceList, C_GetInterface, and C_SessionCancel APIs in PKCS#11 v3.0 Reviewed-by: ascarpino, weijun ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/Config.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11AEADCipher.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Cipher.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11KeyWrapCipher.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Mac.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11PSSSignature.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11RSACipher.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Signature.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Util.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/SunPKCS11.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/PKCS11.java ! src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_sessmgmt.c ! src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_util.c ! src/jdk.crypto.cryptoki/share/native/libj2pkcs11/pkcs11wrapper.h ! src/jdk.crypto.cryptoki/unix/native/libj2pkcs11/p11_md.c ! src/jdk.crypto.cryptoki/unix/native/libj2pkcs11/p11_md.h ! src/jdk.crypto.cryptoki/windows/native/libj2pkcs11/p11_md.c ! src/jdk.crypto.cryptoki/windows/native/libj2pkcs11/p11_md.h Changeset: 35243558 Author: Zhiqiang Zang Committer: Igor Veresov Date: 2021-12-09 00:18:59 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/352435581e4354741684d66df8a33b1fbdb96162 8277882: New subnode ideal optimization: converting "c0 - (x + c1)" into "(c0 - c1) - x" Reviewed-by: dlong, iveresov ! src/hotspot/share/opto/subnode.cpp + test/hotspot/jtreg/compiler/c2/TestSubIdealC0Minus_YPlusC1_.java + test/micro/org/openjdk/bench/vm/compiler/SubIdealC0Minus_YPlusC1_.java Changeset: 8ef1a232 Author: Alexey Semenyuk Date: 2021-12-09 02:31:29 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8ef1a232b100dbac72356ca4844d01964f3d5287 8278311: Debian packaging doesn't work Reviewed-by: almatvee ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/OverridableResource.java ! test/jdk/tools/jpackage/junit/jdk/jpackage/internal/OverridableResourceTest.java Changeset: d1706828 Author: Jonathan Gibbons Date: 2021-12-09 02:53:52 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/d1706828fb6a95ecad2bab4112b2e1a7d3319df8 8278466: "spurious markup" warnings in snippets when building `docs-reference` Reviewed-by: darcy ! src/java.compiler/share/classes/javax/tools/JavaFileManager.java ! src/java.compiler/share/classes/javax/tools/StandardJavaFileManager.java Changeset: 62a7f5d3 Author: Aleksey Shipilev Date: 2021-12-09 06:50:56 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/62a7f5d3236ab2248518a475b1d8b71cb4bf1313 8254318: Remove .hgtags Reviewed-by: erikj, xliu - .hgtags Changeset: 1ea766db Author: Markus Gr?nlund Date: 2021-12-09 09:23:39 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/1ea766db5519f03e36fc5b0c446cf34b172bb349 8278419: JFR jcmd option contract "This value cannot be changed once JFR has been initialized" is not enforced Reviewed-by: egahlin ! src/hotspot/share/jfr/dcmd/jfrDcmds.cpp + test/jdk/jdk/jfr/jcmd/TestJcmdConfigureReadOnly.java Changeset: 84baea75 Author: Julia Boes Date: 2021-12-09 09:29:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/84baea753a01428d9dc5befa5f23d4ac853a7bbc 8278433: Use snippets in jdk.incubator.foreign documentation Reviewed-by: mcimadamore ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/CLinker.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemoryAddress.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemoryHandles.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemoryLayout.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemorySegment.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/ResourceScope.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/SegmentAllocator.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/SequenceLayout.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/ValueLayout.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/package-info.java Changeset: 965ea8d9 Author: Markus Gr?nlund Date: 2021-12-09 09:29:59 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/965ea8d9cd29aee41ba2b1b0b0c67bb67eca22dd 8274298: JFR Thread Sampler thread must not acquire malloc lock after suspending a thread because of possible deadlock Reviewed-by: egahlin ! src/hotspot/share/jfr/periodic/sampling/jfrThreadSampler.cpp ! src/hotspot/share/jfr/periodic/sampling/jfrThreadSampler.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceIdKlassQueue.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceIdKlassQueue.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceIdLoadBarrier.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceIdLoadBarrier.hpp ! src/hotspot/share/jfr/recorder/stacktrace/jfrStackTrace.cpp ! src/hotspot/share/jfr/utilities/jfrEpochQueue.hpp ! src/hotspot/share/jfr/utilities/jfrEpochQueue.inline.hpp Changeset: 08aad850 Author: Erik Gahlin Date: 2021-12-09 14:13:53 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/08aad8506e60157fc5ee1cc0e3e90cf1c35b3df5 8211230: JFR: internal events Reviewed-by: mgronlun ! make/src/classes/build/tools/jfr/GenerateJfrFiles.java ! src/hotspot/share/jfr/jni/jfrUpcalls.cpp ! src/hotspot/share/jfr/jni/jfrUpcalls.hpp ! src/hotspot/share/jfr/metadata/metadata.xml ! src/hotspot/share/jfr/metadata/metadata.xsd ! src/hotspot/share/jfr/recorder/checkpoint/jfrMetadataEvent.cpp ! src/hotspot/share/jfr/recorder/jfrEventSetting.cpp ! src/hotspot/share/jfr/recorder/jfrEventSetting.hpp ! src/jdk.jfr/share/classes/jdk/jfr/EventType.java ! src/jdk.jfr/share/classes/jdk/jfr/FlightRecorderPermission.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/EventControl.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/JVMUpcalls.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/MetadataLoader.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/MetadataRepository.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/PrivateAccess.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/Type.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/TypeLibrary.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/tool/Metadata.java ! src/jdk.jfr/share/conf/jfr/default.jfc ! src/jdk.jfr/share/conf/jfr/profile.jfc Changeset: 6dae52f8 Author: Eric Liu Committer: Ningsheng Jian Date: 2021-12-09 14:16:38 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/6dae52f8e3993d529033147de8e34ad1e7d48c53 8276985: AArch64: [vectorapi] Backend support of VectorMaskToLongNode Reviewed-by: njian, aph ! src/hotspot/cpu/aarch64/aarch64_neon.ad ! src/hotspot/cpu/aarch64/aarch64_neon_ad.m4 ! src/hotspot/cpu/aarch64/aarch64_sve.ad ! src/hotspot/cpu/aarch64/aarch64_sve_ad.m4 ! src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.hpp Changeset: 09831e7a Author: Joe Darcy Committer: Jesper Wilhelmsson Date: 2021-12-09 17:01:59 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/09831e7aa47ebe41eab2f3014ebbacf338097ef6 8273146: Start of release updates for JDK 19 8277511: Add SourceVersion.RELEASE_19 8277513: Add source 19 and target 19 to javac Reviewed-by: dholmes, alanb, erikj, iris, mikael, ihse ! make/conf/version-numbers.conf + make/data/symbols/java.base-I.sym.txt + make/data/symbols/java.compiler-I.sym.txt + make/data/symbols/java.datatransfer-I.sym.txt + make/data/symbols/java.desktop-I.sym.txt = make/data/symbols/java.instrument-I.sym.txt + make/data/symbols/java.logging-I.sym.txt + make/data/symbols/java.management-I.sym.txt = make/data/symbols/java.management.rmi-I.sym.txt + make/data/symbols/java.naming-I.sym.txt + make/data/symbols/java.net.http-I.sym.txt + make/data/symbols/java.rmi-I.sym.txt = make/data/symbols/java.scripting-I.sym.txt = make/data/symbols/java.security.jgss-I.sym.txt = make/data/symbols/java.security.sasl-I.sym.txt = make/data/symbols/java.smartcardio-I.sym.txt = make/data/symbols/java.sql-I.sym.txt = make/data/symbols/java.sql.rowset-I.sym.txt + make/data/symbols/java.xml-I.sym.txt + make/data/symbols/java.xml.crypto-I.sym.txt + make/data/symbols/jdk.accessibility-I.sym.txt = make/data/symbols/jdk.attach-I.sym.txt + make/data/symbols/jdk.compiler-I.sym.txt = make/data/symbols/jdk.dynalink-I.sym.txt + make/data/symbols/jdk.httpserver-I.sym.txt + make/data/symbols/jdk.incubator.foreign-I.sym.txt + make/data/symbols/jdk.incubator.vector-I.sym.txt = make/data/symbols/jdk.jartool-I.sym.txt + make/data/symbols/jdk.javadoc-I.sym.txt = make/data/symbols/jdk.jconsole-I.sym.txt = make/data/symbols/jdk.jdi-I.sym.txt + make/data/symbols/jdk.jlink-I.sym.txt + make/data/symbols/jdk.jshell-I.sym.txt = make/data/symbols/jdk.jsobject-I.sym.txt = make/data/symbols/jdk.management-I.sym.txt + make/data/symbols/jdk.management.jfr-I.sym.txt = make/data/symbols/jdk.net-I.sym.txt = make/data/symbols/jdk.sctp-I.sym.txt = make/data/symbols/jdk.security.auth-I.sym.txt + make/data/symbols/jdk.security.jgss-I.sym.txt + make/data/symbols/jdk.unsupported-I.sym.txt = make/data/symbols/jdk.xml.dom-I.sym.txt ! make/data/symbols/symbols ! src/hotspot/share/classfile/classFileParser.cpp ! src/java.base/share/classes/jdk/internal/org/objectweb/asm/ClassReader.java ! src/java.base/share/classes/jdk/internal/org/objectweb/asm/Opcodes.java ! src/java.compiler/share/classes/javax/lang/model/SourceVersion.java ! src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementScanner14.java ! src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor14.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassFile.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Target.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java ! test/hotspot/jtreg/runtime/CommandLine/VMDeprecatedOptions.java ! test/langtools/tools/javac/api/TestGetSourceVersions.java ! test/langtools/tools/javac/classfiles/ClassVersionChecker.java ! test/langtools/tools/javac/lib/JavacTestingAbstractProcessor.java ! test/langtools/tools/javac/preview/classReaderTest/Client.nopreview.out ! test/langtools/tools/javac/preview/classReaderTest/Client.preview.out ! test/langtools/tools/javac/versions/Versions.java Changeset: 01b30bfa Author: Martin Doerr Date: 2021-12-09 17:04:55 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/01b30bfa99e95cf1e9209c8de1f3c3c762596708 8253860: PPC: Relocation::pd_set_data_value conflates compressed oops and klasses Reviewed-by: dlong, rrich ! src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp ! src/hotspot/cpu/ppc/macroAssembler_ppc.cpp ! src/hotspot/cpu/ppc/nativeInst_ppc.hpp ! src/hotspot/cpu/ppc/ppc.ad ! src/hotspot/cpu/ppc/relocInfo_ppc.cpp Changeset: bc31ccc9 Author: Michael McMahon Date: 2021-12-09 17:38:49 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/bc31ccc95be9523cc6c64932f6d39f81c2e82bdd 8278312: Update SimpleSSLContext keystore to use SANs for localhost IP addresses Reviewed-by: dfuchs + test/jdk/com/sun/net/httpserver/SANTest.java ! test/jdk/java/net/httpclient/http2/server/Http2TestServer.java ! test/lib/jdk/test/lib/net/testkeys Changeset: abebde74 Author: Albert Mingkun Yang Date: 2021-12-09 18:15:53 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/abebde74409e87f4bab2e72ed27a2524a13611da 8278421: G1: Remove unused HeapRegion::verify Reviewed-by: iwalulya, tschatzl ! src/hotspot/share/gc/g1/heapRegion.cpp ! src/hotspot/share/gc/g1/heapRegion.hpp Changeset: fcd67a52 Author: Toshio Nakamura Committer: Naoto Sato Date: 2021-12-09 19:05:31 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/fcd67a5242b7db06e4cb06b574972a463b209b2e 8278185: Custom JRE cannot find non-ASCII named module inside Reviewed-by: naoto ! src/java.base/share/classes/jdk/internal/jimage/ImageStringsReader.java + test/jdk/tools/jimage/JImageNonAsciiNameTest.java Changeset: 918b3505 Author: Jonathan Gibbons Date: 2021-12-09 21:47:50 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/918b3505e1cbbf5ac380cbcca43aae2829c18a2d 8278516: Typos in snippet for java.compiler Reviewed-by: darcy ! src/java.compiler/share/classes/javax/tools/StandardJavaFileManager.java Changeset: d40e90b4 Author: Daniel D. Daugherty Date: 2021-12-09 22:03:04 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/d40e90b4a1b55753a178d824c4c60209bc46efac 8278521: ProblemList java/lang/management/ThreadMXBean/ThreadLists.java Reviewed-by: bpb ! test/jdk/ProblemList.txt Changeset: ec0a5ac8 Author: Jesper Wilhelmsson Date: 2021-12-09 23:24:40 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ec0a5ac8fec75c5c3eda3d9909d2e65d610d9854 Merge Changeset: 066b348d Author: Kim Barrett Date: 2021-12-10 01:32:05 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/066b348dbc989cf90048b136a8b42a0ea1cd08d7 8277807: Increase default initial concurrent refinement threshold Reviewed-by: tschatzl, sjohanss ! src/hotspot/share/gc/g1/g1ConcurrentRefine.cpp Changeset: 0113322a Author: Jatin Bhateja Date: 2021-12-10 01:49:20 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/0113322ac15e2441def3dec599199b98cbd02961 8277997: Intrinsic creation for VectorMask.fromLong API Reviewed-by: psandoz, kvn, sviswanathan ! src/hotspot/cpu/x86/assembler_x86.cpp ! src/hotspot/cpu/x86/assembler_x86.hpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.hpp ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/share/adlc/formssel.cpp ! src/hotspot/share/classfile/vmIntrinsics.hpp ! src/hotspot/share/opto/c2compiler.cpp ! src/hotspot/share/opto/classes.hpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/library_call.hpp ! src/hotspot/share/opto/vectorIntrinsics.cpp ! src/hotspot/share/opto/vectornode.cpp ! src/hotspot/share/opto/vectornode.hpp ! src/hotspot/share/prims/vectorSupport.hpp ! src/java.base/share/classes/jdk/internal/vm/vector/VectorSupport.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte128Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte256Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte512Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte64Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ByteMaxVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ByteVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double128Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double256Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double512Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double64Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/DoubleMaxVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/DoubleVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float128Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float256Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float512Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float64Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/FloatMaxVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/FloatVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int128Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int256Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int512Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int64Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/IntMaxVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/IntVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long128Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long256Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long512Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long64Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/LongMaxVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/LongVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short128Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short256Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short512Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short64Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ShortMaxVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ShortVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorMask.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-Vector.java.template ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-VectorBits.java.template ! test/jdk/jdk/incubator/vector/Byte128VectorTests.java ! test/jdk/jdk/incubator/vector/Byte256VectorTests.java ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! test/jdk/jdk/incubator/vector/Byte64VectorTests.java ! test/jdk/jdk/incubator/vector/Double128VectorTests.java ! test/jdk/jdk/incubator/vector/Double256VectorTests.java ! test/jdk/jdk/incubator/vector/Double512VectorTests.java ! test/jdk/jdk/incubator/vector/Double64VectorTests.java ! test/jdk/jdk/incubator/vector/Float128VectorTests.java ! test/jdk/jdk/incubator/vector/Float256VectorTests.java ! test/jdk/jdk/incubator/vector/Float512VectorTests.java ! test/jdk/jdk/incubator/vector/Float64VectorTests.java ! test/jdk/jdk/incubator/vector/Int128VectorTests.java ! test/jdk/jdk/incubator/vector/Int256VectorTests.java ! test/jdk/jdk/incubator/vector/Int512VectorTests.java ! test/jdk/jdk/incubator/vector/Int64VectorTests.java ! test/jdk/jdk/incubator/vector/Long128VectorTests.java ! test/jdk/jdk/incubator/vector/Long256VectorTests.java ! test/jdk/jdk/incubator/vector/Long512VectorTests.java ! test/jdk/jdk/incubator/vector/Long64VectorTests.java ! test/jdk/jdk/incubator/vector/Short128VectorTests.java ! test/jdk/jdk/incubator/vector/Short256VectorTests.java ! test/jdk/jdk/incubator/vector/Short512VectorTests.java ! test/jdk/jdk/incubator/vector/Short64VectorTests.java ! test/jdk/jdk/incubator/vector/templates/Unit-Miscellaneous.template + test/micro/org/openjdk/bench/jdk/incubator/vector/MaskFromLongBenchmark.java Changeset: 539fbbf8 Author: Hamlin Li Date: 2021-12-10 06:06:12 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/539fbbf8c7c6003af33fe148bc3ceb4e69966143 8278532: Fix some typos in compiler comments Reviewed-by: kvn, jiefu ! src/hotspot/share/c1/c1_FrameMap.hpp ! src/hotspot/share/c1/c1_GraphBuilder.cpp ! src/hotspot/share/c1/c1_ValueMap.cpp ! src/hotspot/share/opto/phaseX.hpp Changeset: aed3ea20 Author: Jan Lahoda Date: 2021-12-10 09:01:58 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/aed3ea2043e765bf4a9ac980da2515f19855c780 8277634: Incorrect method name in invokedynamic Reviewed-by: jlaskey ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symbol.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/PoolConstant.java + test/langtools/tools/javac/classwriter/IndyCorrectInvocationName.java Changeset: be995f06 Author: duke Date: 2021-12-10 11:00:51 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/be995f0686b28b722422f230d8f2ef04bfe992ee Automatic merge of jdk:master into master From duke at openjdk.java.net Fri Dec 10 11:11:15 2021 From: duke at openjdk.java.net (J.Duke) Date: Fri, 10 Dec 2021 11:11:15 GMT Subject: [foreign-memaccess+abi] RFR: Merge master Message-ID: Hi all, this is an _automatically_ generated pull request to notify you that there are 126 commits from the branch `master`that can **not** be merged into the branch `foreign-memaccess+abi`: The following file contains merge conflicts: - src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemoryAddress.java All Committers in this [project](https://openjdk.java.net/census#panama) have access to my [personal fork](https://github.com/openjdk-bot/panama-foreign) and can therefore help resolve these merge conflicts (you may want to coordinate who should do this). The following paragraphs will give an example on how to solve these merge conflicts and push the resulting merge commit to this pull request. The below commands should be run in a local clone of your [personal fork](https://wiki.openjdk.java.net/display/skara#Skara-Personalforks) of the [openjdk/panama-foreign](https://github.com/openjdk/panama-foreign) repository. # Ensure target branch is up to date $ git checkout foreign-memaccess+abi $ git pull https://github.com/openjdk/panama-foreign.git foreign-memaccess+abi # Fetch and checkout the branch for this pull request $ git fetch https://github.com/openjdk-bot/panama-foreign.git +110:openjdk-bot-110 $ git checkout openjdk-bot-110 # Merge the target branch $ git merge foreign-memaccess+abi When you have resolved the conflicts resulting from the `git merge` command above, run the following commands to create a merge commit: $ git add paths/to/files/with/conflicts $ git commit -m 'Merge master' When you have created the merge commit, run the following command to push the merge commit to this pull request: $ git push https://github.com/openjdk-bot/panama-foreign.git openjdk-bot-110:110 _Note_: if you are using SSH to push commits to GitHub, then change the URL in the above `git push` command accordingly. Thanks, J. Duke ------------- Commit messages: - Automatic merge of jdk:master into master - 8277634: Incorrect method name in invokedynamic - 8278532: Fix some typos in compiler comments - 8277997: Intrinsic creation for VectorMask.fromLong API - 8277807: Increase default initial concurrent refinement threshold - Merge - 8278521: ProblemList java/lang/management/ThreadMXBean/ThreadLists.java - 8278516: Typos in snippet for java.compiler - 8278185: Custom JRE cannot find non-ASCII named module inside - 8278421: G1: Remove unused HeapRegion::verify - ... and 116 more: https://git.openjdk.java.net/panama-foreign/compare/79cda8ef...be995f06 The webrev contains the conflicts with foreign-memaccess+abi: - merge conflicts: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=626&range=00.conflicts Changes: https://git.openjdk.java.net/panama-foreign/pull/626/files Stats: 19282 lines in 793 files changed: 13144 ins; 2644 del; 3494 mod Patch: https://git.openjdk.java.net/panama-foreign/pull/626.diff Fetch: git fetch https://git.openjdk.java.net/panama-foreign pull/626/head:pull/626 PR: https://git.openjdk.java.net/panama-foreign/pull/626 From duke at openjdk.java.net Fri Dec 10 12:15:46 2021 From: duke at openjdk.java.net (J.Duke) Date: Fri, 10 Dec 2021 12:15:46 GMT Subject: [foreign-memaccess+abi] RFR: Merge master [v2] In-Reply-To: References: Message-ID: > Hi all, > > this is an _automatically_ generated pull request to notify you that there are 126 commits from the branch `master`that can **not** be merged into the branch `foreign-memaccess+abi`: > > The following file contains merge conflicts: > > - src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemoryAddress.java > > All Committers in this [project](https://openjdk.java.net/census#panama) have access to my [personal fork](https://github.com/openjdk-bot/panama-foreign) and can therefore help resolve these merge conflicts (you may want to coordinate who should do this). > The following paragraphs will give an example on how to solve these merge conflicts and push the resulting merge commit to this pull request. > The below commands should be run in a local clone of your [personal fork](https://wiki.openjdk.java.net/display/skara#Skara-Personalforks) of the [openjdk/panama-foreign](https://github.com/openjdk/panama-foreign) repository. > > > # Ensure target branch is up to date > $ git checkout foreign-memaccess+abi > $ git pull https://github.com/openjdk/panama-foreign.git foreign-memaccess+abi > > # Fetch and checkout the branch for this pull request > $ git fetch https://github.com/openjdk-bot/panama-foreign.git +110:openjdk-bot-110 > $ git checkout openjdk-bot-110 > > # Merge the target branch > $ git merge foreign-memaccess+abi > > > When you have resolved the conflicts resulting from the `git merge` command above, run the following commands to create a merge commit: > > > $ git add paths/to/files/with/conflicts > $ git commit -m 'Merge master' > > > > When you have created the merge commit, run the following command to push the merge commit to this pull request: > > > $ git push https://github.com/openjdk-bot/panama-foreign.git openjdk-bot-110:110 > > > _Note_: if you are using SSH to push commits to GitHub, then change the URL in the above `git push` command accordingly. > > Thanks, > J. Duke J. Duke has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 127 commits: - Merge branch 'foreign-memaccess+abi' into openjdk-bot-110 - Automatic merge of jdk:master into master - 8277634: Incorrect method name in invokedynamic Reviewed-by: jlaskey - 8278532: Fix some typos in compiler comments Reviewed-by: kvn, jiefu - 8277997: Intrinsic creation for VectorMask.fromLong API Reviewed-by: psandoz, kvn, sviswanathan - 8277807: Increase default initial concurrent refinement threshold Reviewed-by: tschatzl, sjohanss - Merge - 8278521: ProblemList java/lang/management/ThreadMXBean/ThreadLists.java Reviewed-by: bpb - 8278516: Typos in snippet for java.compiler Reviewed-by: darcy - 8278185: Custom JRE cannot find non-ASCII named module inside Reviewed-by: naoto - ... and 117 more: https://git.openjdk.java.net/panama-foreign/compare/8a16279e...677b212b ------------- Changes: https://git.openjdk.java.net/panama-foreign/pull/626/files Webrev: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=626&range=01 Stats: 18995 lines in 785 files changed: 13144 ins; 2643 del; 3208 mod Patch: https://git.openjdk.java.net/panama-foreign/pull/626.diff Fetch: git fetch https://git.openjdk.java.net/panama-foreign pull/626/head:pull/626 PR: https://git.openjdk.java.net/panama-foreign/pull/626 From erikj at openjdk.java.net Fri Dec 10 14:45:04 2021 From: erikj at openjdk.java.net (Erik Joelsson) Date: Fri, 10 Dec 2021 14:45:04 GMT Subject: [foreign-memaccess+abi] RFR: Merge master [v2] In-Reply-To: References: Message-ID: <7VuQb6Pr3UDfBVjjFx6OHC0CWQDBlpVzE0xdjvgHjh0=.3188d0df-aa23-4662-8f76-91133d0e41a6@github.com> On Fri, 10 Dec 2021 12:15:46 GMT, J. Duke wrote: >> Hi all, >> >> this is an _automatically_ generated pull request to notify you that there are 126 commits from the branch `master`that can **not** be merged into the branch `foreign-memaccess+abi`: >> >> The following file contains merge conflicts: >> >> - src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemoryAddress.java >> >> All Committers in this [project](https://openjdk.java.net/census#panama) have access to my [personal fork](https://github.com/openjdk-bot/panama-foreign) and can therefore help resolve these merge conflicts (you may want to coordinate who should do this). >> The following paragraphs will give an example on how to solve these merge conflicts and push the resulting merge commit to this pull request. >> The below commands should be run in a local clone of your [personal fork](https://wiki.openjdk.java.net/display/skara#Skara-Personalforks) of the [openjdk/panama-foreign](https://github.com/openjdk/panama-foreign) repository. >> >> >> # Ensure target branch is up to date >> $ git checkout foreign-memaccess+abi >> $ git pull https://github.com/openjdk/panama-foreign.git foreign-memaccess+abi >> >> # Fetch and checkout the branch for this pull request >> $ git fetch https://github.com/openjdk-bot/panama-foreign.git +110:openjdk-bot-110 >> $ git checkout openjdk-bot-110 >> >> # Merge the target branch >> $ git merge foreign-memaccess+abi >> >> >> When you have resolved the conflicts resulting from the `git merge` command above, run the following commands to create a merge commit: >> >> >> $ git add paths/to/files/with/conflicts >> $ git commit -m 'Merge master' >> >> >> >> When you have created the merge commit, run the following command to push the merge commit to this pull request: >> >> >> $ git push https://github.com/openjdk-bot/panama-foreign.git openjdk-bot-110:110 >> >> >> _Note_: if you are using SSH to push commits to GitHub, then change the URL in the above `git push` command accordingly. >> >> Thanks, >> J. Duke > > J. Duke has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 127 commits: > > - Merge branch 'foreign-memaccess+abi' into openjdk-bot-110 > - Automatic merge of jdk:master into master > - 8277634: Incorrect method name in invokedynamic > > Reviewed-by: jlaskey > - 8278532: Fix some typos in compiler comments > > Reviewed-by: kvn, jiefu > - 8277997: Intrinsic creation for VectorMask.fromLong API > > Reviewed-by: psandoz, kvn, sviswanathan > - 8277807: Increase default initial concurrent refinement threshold > > Reviewed-by: tschatzl, sjohanss > - Merge > - 8278521: ProblemList java/lang/management/ThreadMXBean/ThreadLists.java > > Reviewed-by: bpb > - 8278516: Typos in snippet for java.compiler > > Reviewed-by: darcy > - 8278185: Custom JRE cannot find non-ASCII named module inside > > Reviewed-by: naoto > - ... and 117 more: https://git.openjdk.java.net/panama-foreign/compare/8a16279e...677b212b I think you should do what the message suggests and try the sponsor command. ------------- PR: https://git.openjdk.java.net/panama-foreign/pull/626 From duke at openjdk.java.net Fri Dec 10 15:00:38 2021 From: duke at openjdk.java.net (J.Duke) Date: Fri, 10 Dec 2021 15:00:38 GMT Subject: [foreign-memaccess+abi] Integrated: Merge master In-Reply-To: References: Message-ID: On Fri, 10 Dec 2021 11:01:14 GMT, J. Duke wrote: > Hi all, > > this is an _automatically_ generated pull request to notify you that there are 126 commits from the branch `master`that can **not** be merged into the branch `foreign-memaccess+abi`: > > The following file contains merge conflicts: > > - src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemoryAddress.java > > All Committers in this [project](https://openjdk.java.net/census#panama) have access to my [personal fork](https://github.com/openjdk-bot/panama-foreign) and can therefore help resolve these merge conflicts (you may want to coordinate who should do this). > The following paragraphs will give an example on how to solve these merge conflicts and push the resulting merge commit to this pull request. > The below commands should be run in a local clone of your [personal fork](https://wiki.openjdk.java.net/display/skara#Skara-Personalforks) of the [openjdk/panama-foreign](https://github.com/openjdk/panama-foreign) repository. > > > # Ensure target branch is up to date > $ git checkout foreign-memaccess+abi > $ git pull https://github.com/openjdk/panama-foreign.git foreign-memaccess+abi > > # Fetch and checkout the branch for this pull request > $ git fetch https://github.com/openjdk-bot/panama-foreign.git +110:openjdk-bot-110 > $ git checkout openjdk-bot-110 > > # Merge the target branch > $ git merge foreign-memaccess+abi > > > When you have resolved the conflicts resulting from the `git merge` command above, run the following commands to create a merge commit: > > > $ git add paths/to/files/with/conflicts > $ git commit -m 'Merge master' > > > > When you have created the merge commit, run the following command to push the merge commit to this pull request: > > > $ git push https://github.com/openjdk-bot/panama-foreign.git openjdk-bot-110:110 > > > _Note_: if you are using SSH to push commits to GitHub, then change the URL in the above `git push` command accordingly. > > Thanks, > J. Duke This pull request has now been integrated. Changeset: 151f433e Author: J. Duke Committer: Maurizio Cimadamore URL: https://git.openjdk.java.net/panama-foreign/commit/151f433ee759e237f52ba1b847a365fcfc972da7 Stats: 18995 lines in 785 files changed: 13144 ins; 2643 del; 3208 mod Merge master ------------- PR: https://git.openjdk.java.net/panama-foreign/pull/626 From mcimadamore at openjdk.java.net Fri Dec 10 15:00:35 2021 From: mcimadamore at openjdk.java.net (Maurizio Cimadamore) Date: Fri, 10 Dec 2021 15:00:35 GMT Subject: [foreign-memaccess+abi] RFR: Merge master [v2] In-Reply-To: <7VuQb6Pr3UDfBVjjFx6OHC0CWQDBlpVzE0xdjvgHjh0=.3188d0df-aa23-4662-8f76-91133d0e41a6@github.com> References: <7VuQb6Pr3UDfBVjjFx6OHC0CWQDBlpVzE0xdjvgHjh0=.3188d0df-aa23-4662-8f76-91133d0e41a6@github.com> Message-ID: On Fri, 10 Dec 2021 14:41:28 GMT, Erik Joelsson wrote: > I think you should do what the message suggests and try the sponsor command. Heh - happens when you do too many things at once :-) ------------- PR: https://git.openjdk.java.net/panama-foreign/pull/626 From duke at openjdk.java.net Fri Dec 10 15:15:03 2021 From: duke at openjdk.java.net (duke) Date: Fri, 10 Dec 2021 15:15:03 GMT Subject: git: openjdk/panama-foreign: foreign-jextract: 128 new changesets Message-ID: <800c60cf-62c5-4c38-9a2c-09d7b41aa4e7@openjdk.org> Changeset: 18c54b4e Author: Andrey Turbanov Committer: Alexey Ivanov Date: 2021-12-03 13:04:26 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/18c54b4e1ade2ea5531054ed19441d5bff84fcdc 8274640: Cleanup unnecessary null comparison before instanceof check in java.desktop Reviewed-by: aivanov ! src/java.desktop/macosx/classes/com/apple/laf/AquaBorder.java ! src/java.desktop/macosx/classes/com/apple/laf/AquaButtonBorder.java ! src/java.desktop/macosx/classes/com/apple/laf/AquaComboBoxUI.java ! src/java.desktop/macosx/classes/com/apple/laf/AquaFileChooserUI.java ! src/java.desktop/macosx/classes/com/apple/laf/AquaLookAndFeel.java ! src/java.desktop/macosx/classes/com/apple/laf/AquaRootPaneUI.java ! src/java.desktop/macosx/classes/com/apple/laf/AquaSliderUI.java ! src/java.desktop/macosx/classes/com/apple/laf/AquaTableHeaderUI.java ! src/java.desktop/macosx/classes/com/apple/laf/ScreenMenu.java ! src/java.desktop/macosx/classes/sun/font/CFontManager.java ! src/java.desktop/macosx/classes/sun/lwawt/macosx/CAccessibility.java ! src/java.desktop/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java ! src/java.desktop/macosx/classes/sun/lwawt/macosx/CPrinterJob.java ! src/java.desktop/share/classes/com/sun/imageio/plugins/bmp/BMPImageWriter.java ! src/java.desktop/share/classes/com/sun/imageio/plugins/common/SimpleCMYKColorSpace.java ! src/java.desktop/share/classes/com/sun/imageio/plugins/gif/GIFWritableImageMetadata.java ! src/java.desktop/share/classes/com/sun/imageio/plugins/jpeg/JPEGMetadata.java ! src/java.desktop/share/classes/com/sun/imageio/plugins/tiff/TIFFBaseJPEGCompressor.java ! src/java.desktop/share/classes/com/sun/imageio/plugins/tiff/TIFFImageWriter.java ! src/java.desktop/share/classes/com/sun/java/swing/plaf/motif/MotifFileChooserUI.java ! src/java.desktop/share/classes/com/sun/java/swing/plaf/motif/MotifMenuUI.java ! src/java.desktop/share/classes/com/sun/media/sound/AbstractMidiDevice.java ! src/java.desktop/share/classes/com/sun/media/sound/AudioFloatFormatConverter.java ! src/java.desktop/share/classes/com/sun/media/sound/PortMixer.java ! src/java.desktop/share/classes/com/sun/media/sound/SoftMixingDataLine.java ! src/java.desktop/share/classes/com/sun/media/sound/SoftSynthesizer.java ! src/java.desktop/share/classes/java/awt/AWTEvent.java ! src/java.desktop/share/classes/java/awt/Component.java ! src/java.desktop/share/classes/java/awt/Container.java ! src/java.desktop/share/classes/java/awt/MenuComponent.java ! src/java.desktop/share/classes/java/awt/dnd/DropTarget.java ! src/java.desktop/share/classes/java/awt/image/AreaAveragingScaleFilter.java ! src/java.desktop/share/classes/java/awt/image/ComponentSampleModel.java ! src/java.desktop/share/classes/java/awt/image/MultiPixelPackedSampleModel.java ! src/java.desktop/share/classes/java/awt/image/ReplicateScaleFilter.java ! src/java.desktop/share/classes/java/awt/image/SinglePixelPackedSampleModel.java ! src/java.desktop/share/classes/java/beans/IndexedPropertyDescriptor.java ! src/java.desktop/share/classes/java/beans/PropertyDescriptor.java ! src/java.desktop/share/classes/javax/imageio/ImageTypeSpecifier.java ! src/java.desktop/share/classes/javax/print/DocFlavor.java ! src/java.desktop/share/classes/javax/print/MimeType.java ! src/java.desktop/share/classes/javax/print/attribute/DateTimeSyntax.java ! src/java.desktop/share/classes/javax/print/attribute/HashAttributeSet.java ! src/java.desktop/share/classes/javax/print/attribute/IntegerSyntax.java ! src/java.desktop/share/classes/javax/print/attribute/ResolutionSyntax.java ! src/java.desktop/share/classes/javax/print/attribute/SetOfIntegerSyntax.java ! src/java.desktop/share/classes/javax/print/attribute/Size2DSyntax.java ! src/java.desktop/share/classes/javax/print/attribute/TextSyntax.java ! src/java.desktop/share/classes/javax/print/attribute/URISyntax.java ! src/java.desktop/share/classes/javax/print/attribute/standard/Media.java ! src/java.desktop/share/classes/javax/swing/AbstractAction.java ! src/java.desktop/share/classes/javax/swing/AbstractButton.java ! src/java.desktop/share/classes/javax/swing/DebugGraphics.java ! src/java.desktop/share/classes/javax/swing/JComboBox.java ! src/java.desktop/share/classes/javax/swing/JComponent.java ! src/java.desktop/share/classes/javax/swing/JInternalFrame.java ! src/java.desktop/share/classes/javax/swing/JLabel.java ! src/java.desktop/share/classes/javax/swing/JList.java ! src/java.desktop/share/classes/javax/swing/JMenu.java ! src/java.desktop/share/classes/javax/swing/JMenuBar.java ! src/java.desktop/share/classes/javax/swing/JOptionPane.java ! src/java.desktop/share/classes/javax/swing/JPopupMenu.java ! src/java.desktop/share/classes/javax/swing/JSlider.java ! src/java.desktop/share/classes/javax/swing/JTable.java ! src/java.desktop/share/classes/javax/swing/JTree.java ! src/java.desktop/share/classes/javax/swing/MenuSelectionManager.java ! src/java.desktop/share/classes/javax/swing/RepaintManager.java ! src/java.desktop/share/classes/javax/swing/SpinnerDateModel.java ! src/java.desktop/share/classes/javax/swing/SpinnerNumberModel.java ! src/java.desktop/share/classes/javax/swing/SwingUtilities.java ! src/java.desktop/share/classes/javax/swing/TransferHandler.java ! src/java.desktop/share/classes/javax/swing/event/EventListenerList.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicDesktopPaneUI.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicInternalFrameUI.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicMenuUI.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicOptionPaneUI.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicSpinnerUI.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicSplitPaneUI.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicTableHeaderUI.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicTableUI.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicTextUI.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicToolBarUI.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicTreeUI.java ! src/java.desktop/share/classes/javax/swing/plaf/metal/MetalFileChooserUI.java ! src/java.desktop/share/classes/javax/swing/plaf/synth/SynthTextFieldUI.java ! src/java.desktop/share/classes/javax/swing/plaf/synth/SynthTreeUI.java ! src/java.desktop/share/classes/javax/swing/text/BoxView.java ! src/java.desktop/share/classes/javax/swing/text/DefaultStyledDocument.java ! src/java.desktop/share/classes/javax/swing/text/JTextComponent.java ! src/java.desktop/share/classes/javax/swing/text/html/AccessibleHTML.java ! src/java.desktop/share/classes/javax/swing/text/html/CSS.java ! src/java.desktop/share/classes/javax/swing/text/html/HRuleView.java ! src/java.desktop/share/classes/javax/swing/text/html/HTMLDocument.java ! src/java.desktop/share/classes/javax/swing/text/html/HTMLEditorKit.java ! src/java.desktop/share/classes/javax/swing/text/html/HTMLWriter.java ! src/java.desktop/share/classes/javax/swing/text/html/HiddenTagView.java ! src/java.desktop/share/classes/javax/swing/text/html/Map.java ! src/java.desktop/share/classes/javax/swing/text/html/StyleSheet.java ! src/java.desktop/share/classes/javax/swing/text/rtf/RTFGenerator.java ! src/java.desktop/share/classes/javax/swing/tree/DefaultMutableTreeNode.java ! src/java.desktop/share/classes/javax/swing/tree/DefaultTreeModel.java ! src/java.desktop/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java ! src/java.desktop/share/classes/sun/awt/im/InputContext.java ! src/java.desktop/share/classes/sun/awt/shell/ShellFolder.java ! src/java.desktop/share/classes/sun/font/AttributeValues.java ! src/java.desktop/share/classes/sun/font/FontUtilities.java ! src/java.desktop/share/classes/sun/print/PSStreamPrintService.java ! src/java.desktop/share/classes/sun/print/PathGraphics.java ! src/java.desktop/share/classes/sun/print/PrintJob2D.java ! src/java.desktop/share/classes/sun/print/ServiceDialog.java ! src/java.desktop/share/classes/sun/swing/DefaultLookup.java ! src/java.desktop/share/classes/sun/swing/MenuItemLayoutHelper.java ! src/java.desktop/unix/classes/sun/awt/X11/XComponentPeer.java ! src/java.desktop/unix/classes/sun/awt/X11/XEmbedCanvasPeer.java ! src/java.desktop/unix/classes/sun/awt/X11/XWindow.java ! src/java.desktop/unix/classes/sun/awt/X11/XWindowPeer.java ! src/java.desktop/unix/classes/sun/java2d/xr/XRSurfaceData.java ! src/java.desktop/unix/classes/sun/print/IPPPrintService.java ! src/java.desktop/unix/classes/sun/print/UnixPrintJob.java ! src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsFileChooserUI.java ! src/java.desktop/windows/classes/sun/awt/shell/Win32ShellFolder2.java ! src/java.desktop/windows/classes/sun/awt/windows/WPrinterJob.java Changeset: ba2a8e5a Author: Athijegannathan Sundararajan Date: 2021-12-03 13:20:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ba2a8e5a496799451095362279b9dd4b6df20b67 8278205: jlink plugins should dump .class file in debug mode Reviewed-by: jlaskey ! src/jdk.jlink/share/classes/jdk/tools/jlink/internal/JlinkTask.java ! src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/AbstractPlugin.java ! src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/IncludeLocalesPlugin.java ! src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/StripJavaDebugAttributesPlugin.java ! src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/VersionPropsPlugin.java Changeset: 3f28a214 Author: Maurizio Cimadamore Date: 2021-12-03 13:23:36 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3f28a21414be32375dc0f4b12d349826bacd4810 8278144: Javadoc for MemorySegment::set/MemorySegment::setAtIndex is missing throws tag Reviewed-by: sundar ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemorySegment.java Changeset: f7237793 Author: Denghui Dong Date: 2021-12-03 13:31:06 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f7237793ffa3a5a804fea49f165c8b9f1935cfac 8278079: C2: expand_dtrace_alloc_probe doesn't take effect in macro.cpp Reviewed-by: thartmann, kvn, chagedorn ! src/hotspot/share/opto/macro.cpp Changeset: 53a43427 Author: Aleksey Shipilev Date: 2021-12-03 15:42:18 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/53a4342783d94cead4d26e5b29d286421b9432c3 8278137: JFR: PrettyWriter uses incorrect year specifier Reviewed-by: egahlin ! src/jdk.jfr/share/classes/jdk/jfr/internal/tool/PrettyWriter.java Changeset: 0e7b6bcd Author: Aleksey Shipilev Date: 2021-12-03 15:43:51 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/0e7b6bcd8260293c3d39417f04b9b1e4409aa20a 8278141: LIR_OpLoadKlass::_info shadows the field of the same name from LIR_Op Reviewed-by: thartmann, rkennke ! src/hotspot/share/c1/c1_LIR.hpp Changeset: 0d938ced Author: Brian Burkhalter Date: 2021-12-03 16:00:27 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/0d938cedcaf55886058b94dc280a8f7181c79fdf 8278172: java/nio/channels/FileChannel/BlockDeviceSize.java should only run on Linux Reviewed-by: lancea, alanb ! test/jdk/java/nio/channels/FileChannel/BlockDeviceSize.java Changeset: 0a090926 Author: Calvin Cheung Date: 2021-12-03 16:36:19 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/0a0909263194032ae7d8348484e3638f84090233 8268288: jdk/jfr/api/consumer/streaming/TestOutOfProcessMigration.java fails with "Error: ShouldNotReachHere()" Reviewed-by: minqi, iklam ! src/hotspot/share/cds/filemap.cpp Changeset: fbf096ee Author: Magnus Ihse Bursie Date: 2021-12-03 16:56:36 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/fbf096eea46756bdac6f474266caec500c4dc5c5 8251400: Fix incorrect addition of library to test in JDK-8237858 Reviewed-by: dholmes, erikj ! make/common/TestFilesCompilation.gmk ! make/test/JtregNativeJdk.gmk Changeset: 2e30fa93 Author: merykitty Committer: Paul Sandoz Date: 2021-12-03 17:07:11 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/2e30fa936dd5fffceb17d338271f5e725c85801c 8278171: [vectorapi] Mask incorrectly computed for zero extending cast Reviewed-by: psandoz ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/AbstractVector.java ! test/jdk/jdk/incubator/vector/VectorReshapeTests.java Changeset: 660f21a4 Author: Prasanta Sadhukhan Date: 2021-12-03 17:08:40 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/660f21a418ee4c616d0b91133fd44e74a77d4d53 8278119: ProblemList few headful test failing in macosx12-aarch64 system Reviewed-by: dcubed ! test/jdk/ProblemList.txt Changeset: 01cb2b98 Author: Christian Hagedorn Date: 2021-12-03 17:14:10 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/01cb2b9883d7c9ecdba0ee5bd42124faed4d080c 8277529: SIGSEGV in C2 CompilerThread Node::rematerialize() compiling Packet::readUnsignedTrint Reviewed-by: thartmann, roland, kvn ! src/hotspot/share/opto/loopPredicate.cpp ! src/hotspot/share/opto/memnode.cpp + test/hotspot/jtreg/compiler/loopopts/TestDepBetweenLoopAndPredicate.java Changeset: 678ac589 Author: Daniel D. Daugherty Date: 2021-12-03 17:22:14 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/678ac589adeba0e9c2ae6d123f05ff20f02082c8 8278240: ProblemList containers/docker/TestJcmd.java on linux-aarch64 Reviewed-by: mseledtsov, tschatzl ! test/hotspot/jtreg/ProblemList.txt Changeset: 780b8b10 Author: Joe Darcy Date: 2021-12-03 18:14:33 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/780b8b1072811208968e4f32f5368eab622fcdcc 8278179: Enable all doclint warnings for build of java.naming Reviewed-by: iris, erikj ! make/modules/java.naming/Java.gmk Changeset: 38f525e9 Author: vamsi-parasa Committer: Sandhya Viswanathan Date: 2021-12-03 18:17:54 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/38f525e96e767597d16698d4b243b681782acc9f 8275821: Optimize random number generators developed in JDK-8248862 using Math.unsignedMultiplyHigh() Reviewed-by: psandoz, jlaskey ! src/jdk.random/share/classes/jdk/random/L128X1024MixRandom.java ! src/jdk.random/share/classes/jdk/random/L128X128MixRandom.java ! src/jdk.random/share/classes/jdk/random/L128X256MixRandom.java + test/micro/org/openjdk/bench/java/util/RandomGeneratorNext.java Changeset: a729a70c Author: Weijun Wang Date: 2021-12-03 18:52:17 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/a729a70c0119ed071ff490b0dfd4e3e2cb1a5ae4 8225181: KeyStore should have a getAttributes method Reviewed-by: mullan ! src/java.base/share/classes/java/security/KeyStore.java ! src/java.base/share/classes/java/security/KeyStoreSpi.java ! src/java.base/share/classes/sun/security/pkcs12/PKCS12KeyStore.java ! src/java.base/share/classes/sun/security/provider/DomainKeyStore.java ! src/java.base/share/classes/sun/security/util/KeyStoreDelegator.java + test/jdk/sun/security/pkcs12/GetAttributes.java Changeset: e1cde19d Author: Weijun Wang Date: 2021-12-03 19:52:18 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e1cde19dbdbbca365ecfea6d1e2e85a42ed8bde0 8278247: KeyStoreSpi::engineGetAttributes does not throws KeyStoreException Reviewed-by: mullan ! src/java.base/share/classes/java/security/KeyStoreSpi.java Changeset: 2b87c2b4 Author: Jatin Bhateja Date: 2021-12-03 20:21:21 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/2b87c2b429f1c9f0d940795d5f74a54a20c2f5c0 8277793: Support vector F2I and D2L cast operations for X86 Reviewed-by: neliasso, sviswanathan ! src/hotspot/cpu/x86/assembler_x86.cpp ! src/hotspot/cpu/x86/assembler_x86.hpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.hpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.hpp ! src/hotspot/cpu/x86/x86.ad Changeset: 24e16ac6 Author: Sandhya Viswanathan Date: 2021-12-03 21:06:16 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/24e16ac637095d7dee1d6fe34f996b68eedfa8bc 8277617: Adjust AVX3Threshold for copy/fill stubs Reviewed-by: jbhateja, dholmes, neliasso, jiefu ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86_arrayCopy_avx3.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp ! src/hotspot/cpu/x86/vm_version_x86.cpp ! src/hotspot/cpu/x86/vm_version_x86.hpp Changeset: 02ee337a Author: Joe Darcy Date: 2021-12-04 02:12:35 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/02ee337ae0d163ae44b1691eb9de12c5608ba178 8278175: Enable all doclint warnings for build of java.desktop Reviewed-by: erikj, prr ! make/modules/java.desktop/Java.gmk ! src/java.desktop/share/classes/java/awt/BufferCapabilities.java ! src/java.desktop/share/classes/java/awt/Component.java ! src/java.desktop/share/classes/java/awt/event/KeyEvent.java ! src/java.desktop/share/classes/java/beans/beancontext/BeanContextServicesSupport.java ! src/java.desktop/share/classes/java/beans/beancontext/BeanContextSupport.java ! src/java.desktop/share/classes/javax/swing/DefaultListSelectionModel.java ! src/java.desktop/share/classes/javax/swing/JApplet.java ! src/java.desktop/share/classes/javax/swing/JDialog.java ! src/java.desktop/share/classes/javax/swing/JScrollBar.java ! src/java.desktop/share/classes/javax/swing/filechooser/FileSystemView.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicMenuItemUI.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicMenuUI.java ! src/java.desktop/share/classes/javax/swing/plaf/metal/MetalBorders.java ! src/java.desktop/share/classes/javax/swing/text/LayeredHighlighter.java ! src/java.desktop/share/classes/javax/swing/text/html/HTML.java ! src/java.desktop/share/classes/javax/swing/text/html/HTMLEditorKit.java ! src/java.desktop/share/classes/javax/swing/text/html/parser/AttributeList.java ! src/java.desktop/share/classes/javax/swing/text/html/parser/Parser.java ! src/java.desktop/share/classes/javax/swing/undo/UndoableEditSupport.java Changeset: 9642629d Author: Markus Karg Committer: Alan Bateman Date: 2021-12-04 09:27:23 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9642629d15d9631d8da9a3abdabc40323f3c774b 8276779: (ch) InputStream returned by Channels.newInputStream should have fast path for SelectableChannels Reviewed-by: lancea, alanb ! src/java.base/share/classes/java/nio/channels/Channels.java ! src/java.base/share/classes/sun/nio/ch/ChannelInputStream.java ! test/jdk/java/nio/channels/Channels/TransferTo.java Changeset: 267c024e Author: Coleen Phillimore Date: 2021-12-04 13:05:06 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/267c024eb52acd1611188dd5b1417b877ff3eafd 8265150: AsyncGetCallTrace crashes on ResourceMark Reviewed-by: dholmes, stuefe, eosterlund, sspitsyn ! src/hotspot/share/oops/method.cpp ! src/hotspot/share/prims/jvmtiEnvBase.cpp Changeset: 839b6067 Author: Aleksey Shipilev Date: 2021-12-05 21:38:45 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/839b6067c85cfc260803af9b01dd1e7e7f8388db 8278143: Remove unused "argc" from ConstantPool::copy_bootstrap_arguments_at_impl Reviewed-by: lfoltan, dholmes ! src/hotspot/share/oops/constantPool.cpp Changeset: 104aa1f7 Author: Srikanth Adayapalam Date: 2021-12-06 06:24:56 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/104aa1f7f9f212318113e304e16e185a6acbec6c 8268575: Annotations not visible on model elements before they are generated Reviewed-by: mcimadamore ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Annotate.java + test/langtools/tools/javac/processing/8268575/Processor.java + test/langtools/tools/javac/processing/8268575/T8268575.java Changeset: f180a459 Author: Aleksey Shipilev Date: 2021-12-06 06:26:50 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f180a4591f52d0af0c030aa85be33c51b06c90ee 8278016: Add compiler tests to tier{2,3} Reviewed-by: kvn, dholmes ! test/hotspot/jtreg/TEST.groups Changeset: f39fe5b3 Author: Tobias Holenstein Committer: Tobias Hartmann Date: 2021-12-06 08:23:49 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f39fe5b3d629c6d557eb7bab8d1ff81350c616cc 8154011: Make TraceDeoptimization a diagnostic flag Reviewed-by: kvn, dholmes, thartmann ! src/hotspot/share/runtime/globals.hpp Changeset: 194cdf4e Author: Jan Lahoda Date: 2021-12-06 08:42:26 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/194cdf4e28225133dcdf29cf1bf4e580f3fd9208 8277864: Compilation error thrown while doing a boxing conversion on selector expression Reviewed-by: jlaskey, vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TransPatterns.java ! test/langtools/tools/javac/patterns/Switches.java Changeset: 8d190dd0 Author: Ludvig Janiuk Committer: Nils Eliasson Date: 2021-12-06 08:58:41 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8d190dd003c58aa9ebb403e95a73a128af7e8941 8277496: Remove duplication in c1 Block successor lists Reviewed-by: neliasso, kvn ! src/hotspot/share/c1/c1_CFGPrinter.cpp ! src/hotspot/share/c1/c1_GraphBuilder.cpp ! src/hotspot/share/c1/c1_IR.cpp ! src/hotspot/share/c1/c1_Instruction.cpp ! src/hotspot/share/c1/c1_Instruction.hpp ! src/hotspot/share/c1/c1_InstructionPrinter.cpp ! src/hotspot/share/c1/c1_LIR.cpp ! src/hotspot/share/c1/c1_Optimizer.cpp Changeset: d14f06a9 Author: Markus Gr?nlund Date: 2021-12-06 09:29:28 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/d14f06a9630d2cd2a929d0e44ebe4bb10e20dbd4 8278031: MultiThreadedRefCounter should not use relaxed atomic decrement Reviewed-by: kbarrett ! src/hotspot/share/jfr/utilities/jfrRefCountPointer.hpp Changeset: 286a26c3 Author: Hamlin Li Date: 2021-12-06 11:50:11 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/286a26c36600ed82726f1678194363b2828851dd 8278277: G1: Simplify implementation of G1GCPhaseTimes::record_or_add_time_secs Reviewed-by: iwalulya, sjohanss, tschatzl ! src/hotspot/share/gc/g1/g1GCPhaseTimes.cpp Changeset: 6994d809 Author: Jie Fu Date: 2021-12-06 13:44:22 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/6994d809371e80c1e24cd296c48c7f75886577b7 8278291: compiler/uncommontrap/TraceDeoptimizationNoRealloc.java fails with release VMs after JDK-8154011 Reviewed-by: shade, thartmann ! test/hotspot/jtreg/compiler/uncommontrap/TraceDeoptimizationNoRealloc.java Changeset: a885aab6 Author: Markus Gr?nlund Date: 2021-12-06 14:36:51 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/a885aab696777c99c8c4c5d9a46afc5fe0a4fe47 8276125: RunThese24H.java SIGSEGV in JfrThreadGroup::thread_group_id Reviewed-by: egahlin, shade ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrThreadGroup.cpp Changeset: 7c6f57fc Author: Christian Hagedorn Date: 2021-12-06 14:48:03 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7c6f57fcb1f1fcecf26f7b8046a5a41ca6d9c315 8275610: C2: Object field load floats above its null check resulting in a segfault Reviewed-by: kvn, roland ! src/hotspot/share/opto/loopopts.cpp + test/hotspot/jtreg/compiler/loopopts/TestEliminateNullCheckWithSplitIf.java Changeset: adf39522 Author: Vishal Chand Committer: Thomas Schatzl Date: 2021-12-06 15:28:20 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/adf39522c178b82dc73e341751b2d9aba984469d 8277372: Add getters for BOT and card table members Reviewed-by: tschatzl, sjohanss, ayang ! src/hotspot/cpu/aarch64/gc/g1/g1BarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shared/cardTableBarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/arm/c1_LIRGenerator_arm.cpp ! src/hotspot/cpu/arm/gc/g1/g1BarrierSetAssembler_arm.cpp ! src/hotspot/cpu/arm/gc/shared/cardTableBarrierSetAssembler_arm.cpp ! src/hotspot/cpu/ppc/gc/g1/g1BarrierSetAssembler_ppc.cpp ! src/hotspot/cpu/ppc/gc/shared/cardTableBarrierSetAssembler_ppc.cpp ! src/hotspot/cpu/s390/gc/g1/g1BarrierSetAssembler_s390.cpp ! src/hotspot/cpu/s390/gc/shared/cardTableBarrierSetAssembler_s390.cpp ! src/hotspot/cpu/x86/gc/g1/g1BarrierSetAssembler_x86.cpp ! src/hotspot/cpu/x86/gc/shared/cardTableBarrierSetAssembler_x86.cpp ! src/hotspot/share/gc/g1/c2/g1BarrierSetC2.cpp ! src/hotspot/share/gc/g1/g1AllocRegion.cpp ! src/hotspot/share/gc/g1/g1Arguments.cpp ! src/hotspot/share/gc/g1/g1BlockOffsetTable.cpp ! src/hotspot/share/gc/g1/g1BlockOffsetTable.hpp ! src/hotspot/share/gc/g1/g1BlockOffsetTable.inline.hpp ! src/hotspot/share/gc/g1/g1CardCounts.cpp ! src/hotspot/share/gc/g1/g1CardTable.cpp ! src/hotspot/share/gc/g1/g1CardTable.hpp ! src/hotspot/share/gc/g1/g1CardTable.inline.hpp ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1RemSet.cpp ! src/hotspot/share/gc/g1/heapRegion.cpp ! src/hotspot/share/gc/g1/heapRegionRemSet.cpp ! src/hotspot/share/gc/g1/heapRegionRemSet.inline.hpp ! src/hotspot/share/gc/parallel/objectStartArray.cpp ! src/hotspot/share/gc/parallel/objectStartArray.hpp ! src/hotspot/share/gc/parallel/psOldGen.cpp ! src/hotspot/share/gc/shared/blockOffsetTable.cpp ! src/hotspot/share/gc/shared/blockOffsetTable.hpp ! src/hotspot/share/gc/shared/blockOffsetTable.inline.hpp ! src/hotspot/share/gc/shared/c1/cardTableBarrierSetC1.cpp ! src/hotspot/share/gc/shared/c2/cardTableBarrierSetC2.cpp ! src/hotspot/share/gc/shared/cardTable.cpp ! src/hotspot/share/gc/shared/cardTable.hpp ! src/hotspot/share/gc/shared/vmStructs_gc.hpp ! src/hotspot/share/jvmci/jvmciCompilerToVMInit.cpp ! test/hotspot/gtest/gc/g1/test_freeRegionList.cpp ! test/hotspot/gtest/gc/g1/test_g1CardSetContainers.cpp Changeset: ab781874 Author: Jan Lahoda Date: 2021-12-06 15:43:42 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ab781874b27ee4fe1bc6b5fa2cd7997e451e2026 8277105: Inconsistent handling of missing permitted subclasses Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Flow.java ! test/langtools/tools/javac/patterns/Exhaustiveness.java + test/langtools/tools/javac/sealed/MissingPermittedSubtypes.java Changeset: 082fdf47 Author: Prasanta Sadhukhan Date: 2021-12-06 16:08:28 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/082fdf479367612a7bd795d3becfe9830db4b2d6 8172065: javax/swing/JTree/4908142/bug4908142.java The selected index should be "aad" Reviewed-by: aivanov ! test/jdk/javax/swing/JTree/4908142/bug4908142.java Changeset: 587e5409 Author: Chris Plummer Date: 2021-12-06 16:09:45 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/587e5409c2488cf8c3579a4932c588efc5a02749 8210558: serviceability/sa/TestJhsdbJstackLock.java fails to find '^\s+- waiting to lock <0x[0-9a-f]+> \(a java\.lang\.Class ...' Reviewed-by: kevinw, sspitsyn ! test/hotspot/jtreg/serviceability/sa/LingeredAppWithLock.java Changeset: 5045eb53 Author: Joe Darcy Date: 2021-12-06 16:56:27 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/5045eb538b3afc6cf646642f1109473597b3004a 8278273: Remove unnecessary exclusion of doclint accessibility checks Reviewed-by: iris, alanb, ihse ! make/modules/java.base/Java.gmk ! make/modules/java.instrument/Java.gmk ! make/modules/java.logging/Java.gmk ! make/modules/java.management/Java.gmk ! make/modules/java.smartcardio/Java.gmk ! make/modules/java.sql.rowset/Java.gmk ! make/modules/java.xml/Java.gmk Changeset: 70bad89b Author: Artem Semenov Date: 2021-12-06 17:39:43 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/70bad89b012eb200ca1e76f384a6e5fb307cf26d 8277497: Last column cell in the JTAble row is read as empty cell Reviewed-by: ant, kizune, pbansal ! src/java.desktop/share/classes/javax/swing/JLabel.java Changeset: 2c31a173 Author: Weijun Wang Date: 2021-12-06 18:00:54 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/2c31a1735d5b8646ed8984a5475d5c8c9c91c19d 8275082: Update XML Security for Java to 2.3.0 Reviewed-by: mullan ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/Init.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/algorithms/implementations/IntegrityHmac.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/Canonicalizer20010315.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/CanonicalizerBase.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/CanonicalizerPhysical.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/NameSpaceSymbTable.java - src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/exceptions/XMLSecurityRuntimeException.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/KeyResolver.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/implementations/KeyInfoReferenceResolver.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/resource/config.xml ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/resource/xmlsecurity_en.properties ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/signature/XMLSignatureInput.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/TransformC14N.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/TransformC14NExclusive.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/TransformEnvelopedSignature.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/TransformXPath.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/utils/Base64.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/utils/DOMNamespaceContext.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/utils/RFC2253Parser.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/utils/XMLUtils.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/ResourceResolver.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/ResourceResolverContext.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/implementations/ResolverDirectHTTP.java ! src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/implementations/ResolverLocalFilesystem.java ! src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/ApacheCanonicalizer.java ! src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMReference.java ! src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMTransform.java ! src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMURIDereferencer.java ! src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/Policy.java ! src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/Utils.java ! src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/XMLDSigRI.java ! src/java.xml.crypto/share/legal/santuario.md Changeset: 239362da Author: ANUPAM DEV Committer: Alexey Ivanov Date: 2021-12-06 18:46:29 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/239362da51e70b9e968cb488b7c2ec9d91c32837 8247973: Javadoc incorrect for IdentityArrayList, IdentityLinkedList Reviewed-by: aivanov, prr ! src/java.desktop/share/classes/sun/awt/util/IdentityArrayList.java ! src/java.desktop/share/classes/sun/awt/util/IdentityLinkedList.java Changeset: ea8d3c92 Author: Martin Balao Date: 2021-12-06 20:31:55 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ea8d3c92c69c393cdbc6c62398f1e9c6adc708d3 8271566: DSA signature length value is not accurate in P11Signature Reviewed-by: valeriep ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Key.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Signature.java + test/jdk/sun/security/pkcs11/Signature/LargeDSAKey.java Changeset: 2ff12966 Author: Ivan ?ipka Committer: Mark Sheppard Date: 2021-12-06 23:34:32 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/2ff12966a345eaa1c16ed73165b3eb273e56f8dd 8277957: Add test group for IPv6 exclusive testing Reviewed-by: alanb, msheppar ! test/jdk/TEST.groups Changeset: f148e3e4 Author: Jonathan Gibbons Date: 2021-12-07 00:41:11 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f148e3e4623c6d0270a10ba73140e0c37ca5398a 8278318: Create {@index} entries for key LangTools terms Reviewed-by: darcy ! src/java.compiler/share/classes/module-info.java ! src/jdk.compiler/share/classes/module-info.java Changeset: 10db0e41 Author: Weijun Wang Date: 2021-12-07 01:37:55 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/10db0e41634b62be5c1a931bd54ac4260108670d 8277932: Subject:callAs() not throwing NPE when action is null Reviewed-by: rriggs ! src/java.base/share/classes/javax/security/auth/Subject.java Changeset: f22d157e Author: Sibabrata Sahoo Date: 2021-12-07 05:10:30 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f22d157e551fb28991e7713a45e63a0a8d9d2c4c 8277353: java/security/MessageDigest/ThreadSafetyTest.java test times out Reviewed-by: weijun ! test/jdk/java/security/MessageDigest/ThreadSafetyTest.java Changeset: e535cb3f Author: Serguei Spitsyn Date: 2021-12-07 08:16:49 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e535cb3fbac11785cfdb43c9b6f73b2a38a621d6 8272395: Bad HTML in JVMTI man page Reviewed-by: dholmes, iris ! src/hotspot/share/prims/jvmti.xml Changeset: 24877ac0 Author: Alan Bateman Date: 2021-12-07 08:49:18 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/24877ac0788d3db9f2e9c7492a0d3e42244e7e06 8278270: ServerSocket is not thread safe Reviewed-by: dfuchs ! src/java.base/share/classes/java/net/ServerSocket.java Changeset: 07669e3b Author: Yasumasa Suenaga Date: 2021-12-07 09:26:13 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/07669e3bc65b1728d784e21ec83b437374f9fa19 8275375: [REDO] JDK-8271949 dumppath in -XX:FlightRecorderOptions does not affect Reviewed-by: egahlin, mgronlun ! src/hotspot/share/jfr/jni/jfrJniMethod.cpp ! src/hotspot/share/jfr/jni/jfrJniMethod.hpp ! src/hotspot/share/jfr/jni/jfrJniMethodRegistration.cpp ! src/hotspot/share/jfr/recorder/repository/jfrEmergencyDump.cpp ! src/hotspot/share/jfr/recorder/repository/jfrEmergencyDump.hpp ! src/hotspot/share/jfr/recorder/service/jfrOptionSet.cpp ! src/jdk.jfr/share/classes/jdk/jfr/internal/JVM.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/Options.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/SecuritySupport.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/dcmd/DCmdConfigure.java ! test/jdk/jdk/jfr/jvm/TestDumpOnCrash.java Changeset: b2638e5e Author: Aleksey Shipilev Date: 2021-12-07 11:32:17 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/b2638e5efd3c2b1abe790ab59baf28afa308614f 8244602: Add JTREG_REPEAT_COUNT to repeat execution of a test Reviewed-by: ihse, erikj ! doc/testing.html ! doc/testing.md ! make/RunTests.gmk Changeset: 44fcee38 Author: Albert Mingkun Yang Date: 2021-12-07 13:34:35 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/44fcee3830466e34656ea553d10a60fc382c85a6 8278289: Drop G1BlockOffsetTablePart::_object_can_span Reviewed-by: tschatzl, sjohanss, mli ! src/hotspot/share/gc/g1/g1BlockOffsetTable.cpp ! src/hotspot/share/gc/g1/g1BlockOffsetTable.hpp ! src/hotspot/share/gc/g1/g1BlockOffsetTable.inline.hpp ! src/hotspot/share/gc/g1/heapRegion.cpp Changeset: 35361270 Author: Thomas Stuefe Date: 2021-12-07 14:15:04 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/35361270cb3aae9fa560736f8d05f1b258704c87 8277383: VM.metaspace optionally show chunk freelist details Reviewed-by: coleenp, shade ! src/hotspot/share/memory/metaspace/metaspaceDCmd.cpp ! src/hotspot/share/memory/metaspace/metaspaceDCmd.hpp ! src/hotspot/share/memory/metaspace/metaspaceReporter.cpp ! src/hotspot/share/memory/metaspace/metaspaceReporter.hpp ! test/hotspot/jtreg/runtime/Metaspace/PrintMetaspaceDcmd.java Changeset: 56ca66e8 Author: Alan Bateman Date: 2021-12-07 14:21:47 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/56ca66e86f848d3790115aa2faec632c226d8cd2 8277863: Deprecate sun.misc.Unsafe methods that return offsets Reviewed-by: psandoz, mchung ! src/jdk.unsupported/share/classes/sun/misc/Unsafe.java Changeset: 69d8669f Author: Alan Bateman Date: 2021-12-07 14:22:35 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/69d8669fb3f1e4db2fbb3366a1349dd0285f5b0f 8278339: ServerSocket::isClosed may return false after accept throws Reviewed-by: dfuchs ! src/java.base/share/classes/java/net/ServerSocket.java + test/jdk/java/net/ServerSocket/IsClosedAfterAsyncClose.java Changeset: 5b81d5ee Author: Roman Kennke Date: 2021-12-07 14:41:42 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/5b81d5eeb4124ff04dc3b9a96d0b53edcfa07c5f 8276901: Implement UseHeavyMonitors consistently Reviewed-by: coleenp, mdoerr, dcubed ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/sharedRuntime_aarch64.cpp ! src/hotspot/cpu/arm/c1_LIRAssembler_arm.cpp ! src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp ! src/hotspot/cpu/ppc/macroAssembler_ppc.cpp ! src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp ! src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp ! src/hotspot/cpu/x86/sharedRuntime_x86_32.cpp ! src/hotspot/cpu/x86/sharedRuntime_x86_64.cpp ! src/hotspot/share/c1/c1_LIRGenerator.cpp ! src/hotspot/share/c1/c1_Runtime1.cpp ! src/hotspot/share/c1/c1_globals.hpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/synchronizer.cpp ! test/hotspot/jtreg/runtime/CommandLine/VMDeprecatedOptions.java ! test/jdk/java/util/concurrent/ConcurrentHashMap/MapLoops.java Changeset: bb50b92b Author: Andrey Turbanov Committer: Jonathan Gibbons Date: 2021-12-07 14:54:32 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/bb50b92b804839577cee5092a8a62a98b760f0dc 8277536: Use String.blank in jdk.javadoc where applicable Reviewed-by: jjg ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclint/Checker.java Changeset: c609b5d3 Author: Aleksei Efimov Date: 2021-12-07 15:42:02 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/c609b5d3d7a3d08e489c2c9ed40c42bcb5bd2147 8277628: Spec for InetAddressResolverProvider::get() throwing error or exception could be clearer Reviewed-by: alanb, dfuchs ! src/java.base/share/classes/java/net/spi/InetAddressResolverProvider.java Changeset: bd7c54ae Author: Maurizio Cimadamore Date: 2021-12-07 16:13:54 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/bd7c54aee8d9795676087d6b34d4744031de1ef1 8278341: Liveness check for global scope is not as fast as it could be Reviewed-by: shade, jvernee ! src/jdk.incubator.foreign/share/classes/jdk/internal/foreign/ResourceScopeImpl.java Changeset: 543d1a8c Author: Naoto Sato Date: 2021-12-07 16:44:52 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/543d1a8cf41d32dca161c9d8041f133a71bf0ecb 8275721: Name of UTC timezone in a locale changes depending on previous code Reviewed-by: joehw ! src/java.base/share/classes/sun/util/cldr/CLDRTimeZoneNameProviderImpl.java + test/jdk/sun/util/resources/TimeZone/ChineseTimeZoneNameTest.java Changeset: 7ea4b19f Author: Brian Burkhalter Date: 2021-12-07 16:47:24 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7ea4b19f544cabb70590793ef59d5a8be05deeb1 8278166: java/nio/channels/Channels/TransferTo.java timed out Reviewed-by: lancea, alanb ! test/jdk/java/nio/channels/Channels/TransferTo.java Changeset: 7217cb78 Author: Maxim Kartashev Committer: Michael McMahon Date: 2021-12-07 16:59:34 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7217cb78789046cfc823b63cacc36f6cf2b825f5 8274883: (se) Selector.open throws IAE when the default file system provider is changed to a custom provider Reviewed-by: alanb, michaelm ! src/java.base/share/classes/sun/nio/ch/SocketChannelImpl.java ! src/java.base/share/classes/sun/nio/ch/UnixDomainSockets.java + test/jdk/java/nio/channels/Selector/CustomFileSystem.java + test/jdk/java/nio/channels/Selector/CustomFileSystemProvider.java Changeset: 5a036ace Author: Zhengyu Gu Date: 2021-12-07 17:42:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/5a036ace01ebedd88fb3d9100e3a0c19871677ac 8277990: NMT: Remove NMT shutdown capability Reviewed-by: stuefe, shade ! src/hotspot/os/posix/perfMemory_posix.cpp ! src/hotspot/os/windows/perfMemory_windows.cpp ! src/hotspot/share/gc/z/zPhysicalMemory.cpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/os.cpp ! src/hotspot/share/services/mallocSiteTable.cpp ! src/hotspot/share/services/mallocSiteTable.hpp ! src/hotspot/share/services/mallocTracker.cpp ! src/hotspot/share/services/mallocTracker.hpp ! src/hotspot/share/services/memTracker.cpp ! src/hotspot/share/services/memTracker.hpp ! src/hotspot/share/services/nmtCommon.cpp ! src/hotspot/share/services/nmtCommon.hpp ! src/hotspot/share/services/threadStackTracker.cpp ! src/hotspot/share/services/threadStackTracker.hpp ! src/hotspot/share/services/virtualMemoryTracker.cpp ! src/hotspot/share/services/virtualMemoryTracker.hpp - test/hotspot/jtreg/runtime/NMT/ChangeTrackingLevel.java ! test/lib/jdk/test/whitebox/WhiteBox.java ! test/lib/sun/hotspot/WhiteBox.java Changeset: 3955b037 Author: Jan Lahoda Date: 2021-12-07 18:15:25 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3955b037da8a0981d8efc67f28caaacdef7dfb31 8277328: jdk/jshell/CommandCompletionTest.java failures on Windows Reviewed-by: vromero ! src/jdk.jshell/share/classes/jdk/internal/jshell/tool/JShellTool.java ! test/langtools/jdk/jshell/CommandCompletionTest.java Changeset: d7c283a0 Author: Liam Miller-Cushon Date: 2021-12-07 18:44:39 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/d7c283a081c37bfb8bc5934e4b2af16cad512fd2 8275233: Incorrect line number reported in exception stack trace thrown from a lambda expression Reviewed-by: jlahoda ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java ! test/langtools/tools/javac/diags/examples/LambdaDeduplicate.java + test/langtools/tools/javac/lambda/deduplication/DeduplicationDebugInfo.java + test/langtools/tools/javac/lambda/deduplication/DeduplicationDebugInfo.out = test/langtools/tools/javac/lambda/deduplication/DeduplicationDebugInfo_none.out ! test/langtools/tools/javac/lambda/deduplication/DeduplicationTest.java Changeset: 061017a9 Author: Pavel Rappo Date: 2021-12-07 18:56:58 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/061017a9f4280657987524092b60611bfae8b95f 8273175: Add @since tags to the DocTree.Kind enum constants Reviewed-by: darcy ! src/jdk.compiler/share/classes/com/sun/source/doctree/DocTree.java Changeset: a8a1fbce Author: Pavel Rappo Date: 2021-12-07 18:58:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/a8a1fbce5b8efe014b2dac16b83e60de4cf65a3e 8278068: Fix next-line modifier (snippet markup) 8277027: Treat unrecognized markup as snippet text, but warn about it Reviewed-by: jjg ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets.properties ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/SnippetTaglet.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/snippet/MarkupParser.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/snippet/Parser.java ! test/langtools/jdk/javadoc/doclet/testSnippetTag/SnippetTester.java ! test/langtools/jdk/javadoc/doclet/testSnippetTag/TestSnippetMarkup.java ! test/langtools/jdk/javadoc/doclet/testSnippetTag/TestSnippetTag.java Changeset: 716c2e1e Author: Daniel D. Daugherty Date: 2021-12-07 19:28:04 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/716c2e1e85c244b31cf73e5ac1a2d765e3514c4d 8278368: ProblemList tools/jpackage/share/MultiNameTwoPhaseTest.java on macosx-x64 Reviewed-by: mikael ! test/jdk/ProblemList.txt Changeset: 3d61372b Author: Mikhailo Seledtsov Date: 2021-12-07 21:58:19 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3d61372ba589fbd76fee62ea607997f0fb0bc433 8278363: Create extented container test groups Reviewed-by: lmesnik ! test/hotspot/jtreg/TEST.groups ! test/jdk/TEST.groups Changeset: 3c2951f7 Author: Vicente Romero Date: 2021-12-07 23:31:09 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3c2951f738c5041761b551674822a32b418094c2 8275771: JDK source code contains redundant boolean operations in jdk.compiler and langtools Reviewed-by: jlahoda ! make/langtools/tools/compileproperties/CompileProperties.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java Changeset: ec7cb6d5 Author: Brent Christian Date: 2021-12-08 00:23:15 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ec7cb6d5d305003429b51384ed72973767c70124 8276447: Deprecate finalization-related methods for removal Reviewed-by: rriggs, alanb, lancea, darcy, mchung, serb, smarks, prr ! src/java.base/share/classes/java/lang/Enum.java ! src/java.base/share/classes/java/lang/Object.java ! src/java.base/share/classes/java/lang/Runtime.java ! src/java.base/share/classes/java/lang/System.java ! src/java.base/share/classes/java/util/concurrent/Executors.java ! src/java.base/share/classes/java/util/concurrent/ThreadPoolExecutor.java ! src/java.base/share/classes/sun/net/www/MeteredStream.java ! src/java.base/share/classes/sun/security/ssl/BaseSSLSocketImpl.java ! src/java.desktop/macosx/classes/apple/laf/JRSUIControl.java ! src/java.desktop/macosx/classes/sun/awt/CGraphicsEnvironment.java ! src/java.desktop/macosx/classes/sun/font/CFont.java ! src/java.desktop/macosx/classes/sun/font/CStrike.java ! src/java.desktop/macosx/classes/sun/lwawt/macosx/CFRetainedResource.java ! src/java.desktop/macosx/classes/sun/lwawt/macosx/CPrinterJob.java ! src/java.desktop/share/classes/com/sun/imageio/plugins/common/SubImageInputStream.java ! src/java.desktop/share/classes/com/sun/imageio/plugins/png/PNGImageWriter.java ! src/java.desktop/share/classes/com/sun/imageio/plugins/tiff/TIFFBaseJPEGCompressor.java ! src/java.desktop/share/classes/com/sun/imageio/plugins/tiff/TIFFJPEGDecompressor.java ! src/java.desktop/share/classes/com/sun/imageio/plugins/tiff/TIFFOldJPEGDecompressor.java ! src/java.desktop/share/classes/com/sun/imageio/stream/StreamFinalizer.java ! src/java.desktop/share/classes/com/sun/media/sound/AbstractMidiDevice.java ! src/java.desktop/share/classes/com/sun/media/sound/JavaSoundAudioClip.java ! src/java.desktop/share/classes/java/awt/Graphics.java ! src/java.desktop/share/classes/java/awt/PrintJob.java ! src/java.desktop/share/classes/javax/imageio/spi/ServiceRegistry.java ! src/java.desktop/share/classes/javax/imageio/stream/FileCacheImageInputStream.java ! src/java.desktop/share/classes/javax/imageio/stream/FileImageInputStream.java ! src/java.desktop/share/classes/javax/imageio/stream/FileImageOutputStream.java ! src/java.desktop/share/classes/javax/imageio/stream/ImageInputStreamImpl.java ! src/java.desktop/share/classes/javax/imageio/stream/MemoryCacheImageInputStream.java ! src/java.desktop/share/classes/javax/swing/text/StringContent.java ! src/java.desktop/share/classes/sun/java2d/SunGraphics2D.java ! src/java.desktop/share/classes/sun/print/PeekGraphics.java ! src/java.desktop/share/classes/sun/print/PrintJob2D.java ! src/java.desktop/share/classes/sun/print/ProxyGraphics.java ! src/java.desktop/share/classes/sun/print/ProxyGraphics2D.java ! src/java.desktop/unix/classes/sun/awt/X11InputMethodBase.java ! src/java.desktop/windows/classes/sun/awt/windows/WInputMethod.java ! src/java.management/share/classes/java/lang/management/MemoryMXBean.java ! src/java.management/share/classes/sun/management/MemoryImpl.java ! src/java.naming/share/classes/com/sun/jndi/ldap/AbstractLdapNamingEnumeration.java ! src/java.naming/share/classes/com/sun/jndi/ldap/LdapClient.java ! src/java.naming/share/classes/com/sun/jndi/ldap/LdapCtx.java ! src/java.naming/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java ! src/java.rmi/share/classes/sun/rmi/log/LogInputStream.java ! src/java.security.jgss/share/classes/sun/security/jgss/wrapper/GSSCredElement.java ! src/java.security.jgss/share/classes/sun/security/jgss/wrapper/GSSNameElement.java ! src/java.security.jgss/share/classes/sun/security/jgss/wrapper/NativeGSSContext.java ! src/java.security.sasl/share/classes/com/sun/security/sasl/CramMD5Base.java ! src/java.security.sasl/share/classes/com/sun/security/sasl/PlainClient.java ! src/java.smartcardio/share/classes/sun/security/smartcardio/CardImpl.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11KeyStore.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/PKCS11.java ! src/jdk.crypto.mscapi/windows/classes/sun/security/mscapi/CKey.java ! src/jdk.jconsole/share/classes/sun/tools/jconsole/SummaryTab.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/ChunkInputStream.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/ChunksChannel.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/RepositoryChunk.java ! src/jdk.naming.dns/share/classes/com/sun/jndi/dns/DnsClient.java ! src/jdk.naming.rmi/share/classes/com/sun/jndi/rmi/registry/RegistryContext.java ! src/jdk.security.jgss/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Base.java ! src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipFileSystem.java Changeset: d7ad5467 Author: Stuart Marks Date: 2021-12-08 00:27:53 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/d7ad546758091ea16f836c9771ff5c03a32fb712 8276422: Add command-line option to disable finalization Co-authored-by: David Holmes Co-authored-by: Brent Christian Reviewed-by: dholmes, kbarrett, bchristi ! make/data/hotspot-symbols/symbols-unix ! src/hotspot/share/classfile/classFileParser.cpp ! src/hotspot/share/include/jvm.h ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/java.base/share/classes/java/lang/ref/Finalizer.java ! src/java.base/share/classes/sun/launcher/resources/launcher.properties ! src/java.base/share/native/libjava/Finalizer.c + test/jdk/java/lang/Object/FinalizationOption.java + test/jdk/java/lang/Object/InvalidFinalizationOption.java ! test/jdk/jdk/jfr/event/runtime/TestFinalizerStatisticsEvent.java Changeset: fb6d6113 Author: Hamlin Li Date: 2021-12-08 01:26:35 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/fb6d6113112d8a15864195ccd59b583fc12087fd 8278276: G1: Refine naming of G1GCParPhaseTimesTracker::_must_record Reviewed-by: sjohanss, tschatzl ! src/hotspot/share/gc/g1/g1GCParPhaseTimesTracker.hpp ! src/hotspot/share/gc/g1/g1GCPhaseTimes.cpp ! src/hotspot/share/gc/g1/g1RemSet.cpp Changeset: e7db581e Author: Pengfei Li Date: 2021-12-08 04:29:23 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e7db581e9196b64ef65849e4600f17b23ca9138a 8277168: AArch64: Enable arraycopy partial inlining with SVE Reviewed-by: jbhateja, roland, aph ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/aarch64_sve.ad ! src/hotspot/cpu/aarch64/aarch64_sve_ad.m4 ! src/hotspot/cpu/aarch64/vm_version_aarch64.cpp ! src/hotspot/cpu/arm/arm.ad ! src/hotspot/cpu/ppc/ppc.ad ! src/hotspot/cpu/s390/s390.ad ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/share/opto/c2_globals.hpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/macroArrayCopy.cpp ! src/hotspot/share/opto/matcher.hpp ! src/hotspot/share/opto/type.cpp ! src/hotspot/share/opto/type.hpp ! src/hotspot/share/opto/vectornode.cpp ! src/hotspot/share/opto/vectornode.hpp Changeset: 5266e7d7 Author: Jie Fu Date: 2021-12-08 06:45:01 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/5266e7d780efee11309260ce96ae0c5b4836effb 8278379: Zero VM is broken due to UseRTMForStackLocks was not declared after JDK-8276901 Reviewed-by: dholmes, shade ! src/hotspot/share/runtime/arguments.cpp Changeset: 30f0c647 Author: Aleksey Shipilev Date: 2021-12-08 06:52:16 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/30f0c6475359516ce454722f06ac0c997e09868b 8277992: Add fast jdk_svc subtests to jdk:tier3 Reviewed-by: mseledtsov, alanb ! test/jdk/TEST.groups Changeset: b334d968 Author: Hannes Walln?fer Date: 2021-12-08 07:07:57 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/b334d9680b2ee796d5058d68881215bb11499aad 8276964: Better indicate a snippet that could not be processed Reviewed-by: jjg ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/TagletWriterImpl.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/HtmlStyle.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/TagName.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard.properties ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/stylesheet.css ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/SnippetTaglet.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/TagletWriter.java ! test/langtools/jdk/javadoc/doclet/testGenericTypeLink/TestGenericTypeLink.java ! test/langtools/jdk/javadoc/doclet/testInherited/TestInherited.java ! test/langtools/jdk/javadoc/doclet/testNonInlineHtmlTagRemoval/TestNonInlineHtmlTagRemoval.java ! test/langtools/jdk/javadoc/doclet/testSeeTag/TestSeeTag.java ! test/langtools/jdk/javadoc/doclet/testSnippetTag/TestSnippetTag.java Changeset: 5dcdee4b Author: Roland Westrelin Date: 2021-12-08 07:55:12 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/5dcdee4bcd337591c79aad8620a7f38345e6e3d9 8262341: Refine identical code in AddI/LNode. Reviewed-by: thartmann, eliu ! src/hotspot/share/opto/addnode.cpp ! src/hotspot/share/opto/addnode.hpp ! src/hotspot/share/opto/castnode.hpp ! src/hotspot/share/opto/cfgnode.cpp ! src/hotspot/share/opto/loopPredicate.cpp ! src/hotspot/share/opto/loopTransform.cpp ! src/hotspot/share/opto/loopnode.cpp ! src/hotspot/share/opto/loopnode.hpp ! src/hotspot/share/opto/mulnode.cpp ! src/hotspot/share/opto/mulnode.hpp ! src/hotspot/share/opto/node.hpp ! src/hotspot/share/opto/subnode.hpp ! src/hotspot/share/opto/type.cpp ! src/hotspot/share/opto/type.hpp Changeset: 10e0318f Author: Julia Boes Date: 2021-12-08 09:16:44 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/10e0318ff7289b248289a70a56adeff3c257de04 8278158: jwebserver should set request timeout Reviewed-by: dfuchs, michaelm ! src/jdk.httpserver/share/classes/sun/net/httpserver/simpleserver/JWebServer.java ! src/jdk.httpserver/share/classes/sun/net/httpserver/simpleserver/Main.java Changeset: 54993b13 Author: Thomas Stuefe Date: 2021-12-08 09:18:58 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/54993b13078ceb05736bb0e1d7ed7415c390442e 8278309: [windows] use of uninitialized OSThread::_state Reviewed-by: dholmes, shade ! src/hotspot/os/windows/os_windows.cpp Changeset: e5cb84e9 Author: Markus Gr?nlund Date: 2021-12-08 11:18:24 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e5cb84e9a1bca321f22d6e3ce13a6026342b4b85 8278336: Use int64_t to represent byte quantities consistently in JfrObjectAllocationSample Reviewed-by: egahlin ! src/hotspot/share/jfr/support/jfrObjectAllocationSample.cpp Changeset: fd8cb2da Author: Matthias Baesken Date: 2021-12-08 14:03:56 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/fd8cb2dae87e5726e89a1789e5a1ddd461c4400d 8278346: java/nio/file/Files/probeContentType/Basic.java fails on Linux SLES15 machine Reviewed-by: shade ! test/jdk/java/nio/file/Files/probeContentType/Basic.java Changeset: 37921e30 Author: Daniel Fuchs Date: 2021-12-08 15:31:49 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/37921e30803449c06b4d542fdfeed9928cce8a7d 8269258: java/net/httpclient/ManyRequestsLegacy.java failed with connection timeout Reviewed-by: michaelm ! test/jdk/java/net/httpclient/ManyRequests.java ! test/jdk/java/net/httpclient/ManyRequests2.java ! test/jdk/java/net/httpclient/ManyRequestsLegacy.java Changeset: e4852c6f Author: Calvin Cheung Date: 2021-12-08 15:59:37 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e4852c6f0aa25e7d40c577d507aedc7916ee8d50 8277998: runtime/cds/appcds/loaderConstraints/DynamicLoaderConstraintsTest.java#custom-cl-zgc failed "assert(ZAddress::is_marked(addr)) failed: Should be marked" Reviewed-by: iklam, minqi ! src/hotspot/share/cds/dynamicArchive.cpp ! src/hotspot/share/cds/lambdaFormInvokers.cpp ! src/hotspot/share/cds/lambdaFormInvokers.hpp ! test/hotspot/jtreg/runtime/cds/appcds/DumpClassListWithLF.java Changeset: 40d726b8 Author: Calvin Cheung Date: 2021-12-08 16:07:49 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/40d726b8aae7dff4316115b3a25001d502321efe 8278310: Improve logging in CDS DynamicLoaderConstraintsTest.java Reviewed-by: iklam ! src/hotspot/share/cds/archiveBuilder.hpp ! test/hotspot/jtreg/runtime/cds/appcds/loaderConstraints/DynamicLoaderConstraintsTest.java Changeset: 79165b73 Author: Calvin Cheung Date: 2021-12-08 16:10:06 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/79165b738d6d1336740631c855960a235b9ecfe4 8278324: Update the --generate-cds-archive jlink plugin usage message Reviewed-by: alanb ! src/jdk.jlink/share/classes/jdk/tools/jlink/resources/plugins.properties Changeset: 3e93e0b8 Author: Yumin Qi Date: 2021-12-08 16:20:39 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3e93e0b809f2c6cb4a466af92ec678cbc82863e4 8276769: -Xshare:auto should tolerate problems in the CDS archive Reviewed-by: iklam, ccheung ! src/hotspot/share/cds/filemap.cpp ! src/hotspot/share/include/cds.h ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/arguments.hpp ! test/hotspot/jtreg/runtime/cds/appcds/SharedArchiveConsistency.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/ArchiveConsistency.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/DynamicArchiveTestBase.java Changeset: 8af3b27c Author: Roland Westrelin Date: 2021-12-08 16:39:24 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8af3b27ce98bcb9cf0c155c98d6b9a9bc159aafe 8277850: C2: optimize mask checks in counted loops Reviewed-by: kvn, thartmann ! src/hotspot/share/opto/mulnode.cpp ! src/hotspot/share/opto/mulnode.hpp + test/hotspot/jtreg/compiler/c2/irTests/TestShiftAndMask.java ! test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java Changeset: 24781588 Author: Brian Burkhalter Date: 2021-12-08 17:11:14 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/2478158815a9ae0466542e27562bff046d760d3e 8277361: java/nio/channels/Channels/ReadXBytes.java fails with OOM error Reviewed-by: alanb, lancea ! test/jdk/java/nio/channels/Channels/ReadXBytes.java Changeset: 9b747491 Author: Valerie Peng Date: 2021-12-08 17:44:10 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9b747491de01fd011b09668a67113e80c2b7c708 8276660: Scalability bottleneck in java.security.Provider.getService() Reviewed-by: weijun ! src/java.base/share/classes/java/security/Provider.java Changeset: 83454530 Author: Alexey Ushakov Date: 2021-12-08 17:48:53 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/83454530ea538c80e2f1205cd8d2f9732503b592 8272392: Lanai: SwingSet2. Black background on expanding tree node Reviewed-by: aghaisas, jdv ! src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/EncoderManager.m ! src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLBlitLoops.m ! src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLClip.m ! src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLPaints.m ! src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLPipelineStatesStorage.m ! src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/RenderOptions.h ! src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/common.h Changeset: 92aa75b7 Author: Aleksey Shipilev Date: 2021-12-08 17:52:03 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/92aa75b72185c681757e6520d6fdc1ae4161d0c5 8274903: Zero: Support AsyncGetCallTrace Reviewed-by: sspitsyn, aph ! src/hotspot/cpu/zero/frame_zero.cpp ! src/hotspot/os_cpu/linux_zero/thread_linux_zero.cpp ! src/hotspot/os_cpu/linux_zero/thread_linux_zero.hpp ! src/hotspot/share/prims/forte.cpp Changeset: ba86dd4a Author: Daniel D. Daugherty Date: 2021-12-08 18:02:34 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ba86dd4aaf597a0f0832085b50fa00498f053a6a 8278445: ProblemList tools/jpackage/share/IconTest.java on macosx-x64 Reviewed-by: bpb ! test/jdk/ProblemList.txt Changeset: 42d9b1ba Author: Jan Lahoda Date: 2021-12-08 18:50:38 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/42d9b1baac25df649a8d575f5ffa3a0d5b8e7ed0 8277106: Cannot compile certain sources with --release Reviewed-by: darcy, mcimadamore ! make/data/symbols/java.base-C.sym.txt ! make/data/symbols/java.base-E.sym.txt ! make/data/symbols/java.base-G.sym.txt ! make/data/symbols/java.base-H.sym.txt ! make/data/symbols/java.xml-B.sym.txt ! make/data/symbols/java.xml-C.sym.txt ! make/data/symbols/java.xml-D.sym.txt ! make/data/symbols/java.xml-E.sym.txt ! make/data/symbols/jdk.incubator.foreign-F.sym.txt ! make/data/symbols/jdk.incubator.foreign-G.sym.txt ! make/data/symbols/jdk.incubator.foreign-H.sym.txt ! make/data/symbols/jdk.incubator.vector-G.sym.txt ! make/data/symbols/jdk.incubator.vector-H.sym.txt ! make/data/symbols/jdk.javadoc-H.sym.txt ! make/data/symbols/jdk.jfr-B.sym.txt ! make/data/symbols/jdk.jfr-G.sym.txt ! make/langtools/src/classes/build/tools/symbolgenerator/CreateSymbols.java + test/langtools/tools/javac/platform/NonExportedSuperTypes.java ! test/langtools/tools/javac/platform/createsymbols/CreateSymbolsTest.java ! test/langtools/tools/javac/platform/createsymbols/CreateSymbolsTestImpl.java Changeset: fb11d8fa Author: Jonathan Gibbons Date: 2021-12-08 19:48:05 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/fb11d8faf21539a8dc08d371658d1835484c8344 8272945: Use snippets in java.compiler documentation Reviewed-by: erikj, alanb ! make/CompileInterimLangtools.gmk ! make/modules/java.compiler/Java.gmk ! src/java.compiler/share/classes/javax/tools/JavaCompiler.java ! src/java.compiler/share/classes/javax/tools/JavaFileManager.java ! src/java.compiler/share/classes/javax/tools/StandardJavaFileManager.java ! src/java.compiler/share/classes/javax/tools/package-info.java + src/java.compiler/share/classes/javax/tools/snippet-files/JavaSourceFromString.java Changeset: 5a80abf7 Author: Jonathan Gibbons Date: 2021-12-08 19:50:14 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/5a80abf706dfde9342be53e78b942ff40f9624ea 8272944: Use snippets in jdk.javadoc documentation Reviewed-by: hannesw ! src/jdk.compiler/share/classes/com/sun/tools/javac/model/JavacElements.java ! src/jdk.javadoc/share/classes/jdk/javadoc/doclet/package-info.java Changeset: 8e8fadf2 Author: Roger Riggs Date: 2021-12-08 20:37:41 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8e8fadf2d4e45f53286dd8424d95f733a12cd1a0 8278428: ObjectInputStream.readFully range check incorrect Reviewed-by: alanb ! src/java.base/share/classes/java/io/ObjectInputStream.java ! test/jdk/java/io/Serializable/oldTests/WritePrimitive.java Changeset: c83b781b Author: Daniel D. Daugherty Date: 2021-12-08 20:42:52 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/c83b781b6002ca0f067a35e678ab5285d98d015d 8278459: ProblemList javax/swing/JTree/4908142/bug4908142.java on macosx-aarch64 Reviewed-by: lmesnik, bpb, prr ! test/jdk/ProblemList.txt Changeset: 6e7b7f35 Author: Sergey Bylokhov Date: 2021-12-08 21:15:55 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/6e7b7f352e66c767b16e1e98a162e7fea79126c6 8278251: Enable "missing-explicit-ctor" check in the jdk.unsupported.desktop module Reviewed-by: ihse, prr - make/modules/jdk.unsupported.desktop/Java.gmk Changeset: fe2ae8e3 Author: Eamonn McManus Date: 2021-12-08 21:24:43 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/fe2ae8e38bd8660cc637f13f425ccea17a11aa4f 8276904: Optional.toString() is unnecessarily expensive Reviewed-by: rriggs, smarks ! src/java.base/share/classes/java/util/Optional.java ! src/java.base/share/classes/java/util/OptionalDouble.java ! src/java.base/share/classes/java/util/OptionalInt.java ! src/java.base/share/classes/java/util/OptionalLong.java Changeset: b3faecf7 Author: Roland Westrelin Date: 2021-12-08 21:33:33 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/b3faecf73966ce0435644a89f8f43d85720e8328 8276116: C2: optimize long range checks in int counted loops Reviewed-by: kvn ! src/hotspot/cpu/x86/x86_32.ad ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/loopTransform.cpp ! src/hotspot/share/opto/loopnode.cpp ! src/hotspot/share/opto/loopnode.hpp ! src/hotspot/share/opto/loopopts.cpp ! test/hotspot/jtreg/compiler/c2/irTests/TestLongRangeChecks.java ! test/hotspot/jtreg/compiler/rangechecks/TestLongRangeCheck.java Changeset: 3893f4f7 Author: Serguei Spitsyn Date: 2021-12-08 22:32:00 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3893f4f70b5828ee8e673ce7b1422877efe5c292 8278330: dump stack trace if the jvmti test nsk/jvmti/GetThreadState/thrstat002 is failed with wrong thread state Reviewed-by: amenkov, lmesnik ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadState/thrstat002/thrstat002.cpp Changeset: 03bf55f6 Author: Vicente Romero Date: 2021-12-08 22:49:43 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/03bf55f62065f8f9c8ade1eff8ca6eaeabe51450 8277980: ObjectMethods::bootstrap throws NPE when lookup is null Reviewed-by: jjg ! src/java.base/share/classes/java/lang/runtime/ObjectMethods.java ! test/jdk/java/lang/runtime/ObjectMethodsTest.java Changeset: 3cec700a Author: Roger Riggs Date: 2021-12-08 22:59:38 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3cec700a5caa2243772e4b01c40630cb044b76fc 8278463: [test] Serialization WritePrimitive test revised for readFully test fails Reviewed-by: darcy ! test/jdk/java/io/Serializable/oldTests/WritePrimitive.java Changeset: 83e6a4c0 Author: Valerie Peng Date: 2021-12-08 23:04:15 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/83e6a4c0e9e4a9474ae0c1252378b1a09d1d2df0 8255409: Support the new C_GetInterfaceList, C_GetInterface, and C_SessionCancel APIs in PKCS#11 v3.0 Reviewed-by: ascarpino, weijun ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/Config.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11AEADCipher.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Cipher.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11KeyWrapCipher.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Mac.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11PSSSignature.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11RSACipher.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Signature.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Util.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/SunPKCS11.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/wrapper/PKCS11.java ! src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_sessmgmt.c ! src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_util.c ! src/jdk.crypto.cryptoki/share/native/libj2pkcs11/pkcs11wrapper.h ! src/jdk.crypto.cryptoki/unix/native/libj2pkcs11/p11_md.c ! src/jdk.crypto.cryptoki/unix/native/libj2pkcs11/p11_md.h ! src/jdk.crypto.cryptoki/windows/native/libj2pkcs11/p11_md.c ! src/jdk.crypto.cryptoki/windows/native/libj2pkcs11/p11_md.h Changeset: 35243558 Author: Zhiqiang Zang Committer: Igor Veresov Date: 2021-12-09 00:18:59 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/352435581e4354741684d66df8a33b1fbdb96162 8277882: New subnode ideal optimization: converting "c0 - (x + c1)" into "(c0 - c1) - x" Reviewed-by: dlong, iveresov ! src/hotspot/share/opto/subnode.cpp + test/hotspot/jtreg/compiler/c2/TestSubIdealC0Minus_YPlusC1_.java + test/micro/org/openjdk/bench/vm/compiler/SubIdealC0Minus_YPlusC1_.java Changeset: 8ef1a232 Author: Alexey Semenyuk Date: 2021-12-09 02:31:29 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8ef1a232b100dbac72356ca4844d01964f3d5287 8278311: Debian packaging doesn't work Reviewed-by: almatvee ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/OverridableResource.java ! test/jdk/tools/jpackage/junit/jdk/jpackage/internal/OverridableResourceTest.java Changeset: d1706828 Author: Jonathan Gibbons Date: 2021-12-09 02:53:52 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/d1706828fb6a95ecad2bab4112b2e1a7d3319df8 8278466: "spurious markup" warnings in snippets when building `docs-reference` Reviewed-by: darcy ! src/java.compiler/share/classes/javax/tools/JavaFileManager.java ! src/java.compiler/share/classes/javax/tools/StandardJavaFileManager.java Changeset: 62a7f5d3 Author: Aleksey Shipilev Date: 2021-12-09 06:50:56 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/62a7f5d3236ab2248518a475b1d8b71cb4bf1313 8254318: Remove .hgtags Reviewed-by: erikj, xliu - .hgtags Changeset: 1ea766db Author: Markus Gr?nlund Date: 2021-12-09 09:23:39 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/1ea766db5519f03e36fc5b0c446cf34b172bb349 8278419: JFR jcmd option contract "This value cannot be changed once JFR has been initialized" is not enforced Reviewed-by: egahlin ! src/hotspot/share/jfr/dcmd/jfrDcmds.cpp + test/jdk/jdk/jfr/jcmd/TestJcmdConfigureReadOnly.java Changeset: 84baea75 Author: Julia Boes Date: 2021-12-09 09:29:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/84baea753a01428d9dc5befa5f23d4ac853a7bbc 8278433: Use snippets in jdk.incubator.foreign documentation Reviewed-by: mcimadamore ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/CLinker.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemoryAddress.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemoryHandles.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemoryLayout.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemorySegment.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/ResourceScope.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/SegmentAllocator.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/SequenceLayout.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/ValueLayout.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/package-info.java Changeset: 965ea8d9 Author: Markus Gr?nlund Date: 2021-12-09 09:29:59 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/965ea8d9cd29aee41ba2b1b0b0c67bb67eca22dd 8274298: JFR Thread Sampler thread must not acquire malloc lock after suspending a thread because of possible deadlock Reviewed-by: egahlin ! src/hotspot/share/jfr/periodic/sampling/jfrThreadSampler.cpp ! src/hotspot/share/jfr/periodic/sampling/jfrThreadSampler.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceIdKlassQueue.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceIdKlassQueue.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceIdLoadBarrier.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceIdLoadBarrier.hpp ! src/hotspot/share/jfr/recorder/stacktrace/jfrStackTrace.cpp ! src/hotspot/share/jfr/utilities/jfrEpochQueue.hpp ! src/hotspot/share/jfr/utilities/jfrEpochQueue.inline.hpp Changeset: 08aad850 Author: Erik Gahlin Date: 2021-12-09 14:13:53 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/08aad8506e60157fc5ee1cc0e3e90cf1c35b3df5 8211230: JFR: internal events Reviewed-by: mgronlun ! make/src/classes/build/tools/jfr/GenerateJfrFiles.java ! src/hotspot/share/jfr/jni/jfrUpcalls.cpp ! src/hotspot/share/jfr/jni/jfrUpcalls.hpp ! src/hotspot/share/jfr/metadata/metadata.xml ! src/hotspot/share/jfr/metadata/metadata.xsd ! src/hotspot/share/jfr/recorder/checkpoint/jfrMetadataEvent.cpp ! src/hotspot/share/jfr/recorder/jfrEventSetting.cpp ! src/hotspot/share/jfr/recorder/jfrEventSetting.hpp ! src/jdk.jfr/share/classes/jdk/jfr/EventType.java ! src/jdk.jfr/share/classes/jdk/jfr/FlightRecorderPermission.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/EventControl.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/JVMUpcalls.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/MetadataLoader.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/MetadataRepository.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/PrivateAccess.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/Type.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/TypeLibrary.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/tool/Metadata.java ! src/jdk.jfr/share/conf/jfr/default.jfc ! src/jdk.jfr/share/conf/jfr/profile.jfc Changeset: 6dae52f8 Author: Eric Liu Committer: Ningsheng Jian Date: 2021-12-09 14:16:38 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/6dae52f8e3993d529033147de8e34ad1e7d48c53 8276985: AArch64: [vectorapi] Backend support of VectorMaskToLongNode Reviewed-by: njian, aph ! src/hotspot/cpu/aarch64/aarch64_neon.ad ! src/hotspot/cpu/aarch64/aarch64_neon_ad.m4 ! src/hotspot/cpu/aarch64/aarch64_sve.ad ! src/hotspot/cpu/aarch64/aarch64_sve_ad.m4 ! src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.hpp Changeset: 09831e7a Author: Joe Darcy Committer: Jesper Wilhelmsson Date: 2021-12-09 17:01:59 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/09831e7aa47ebe41eab2f3014ebbacf338097ef6 8273146: Start of release updates for JDK 19 8277511: Add SourceVersion.RELEASE_19 8277513: Add source 19 and target 19 to javac Reviewed-by: dholmes, alanb, erikj, iris, mikael, ihse ! make/conf/version-numbers.conf + make/data/symbols/java.base-I.sym.txt + make/data/symbols/java.compiler-I.sym.txt + make/data/symbols/java.datatransfer-I.sym.txt + make/data/symbols/java.desktop-I.sym.txt = make/data/symbols/java.instrument-I.sym.txt + make/data/symbols/java.logging-I.sym.txt + make/data/symbols/java.management-I.sym.txt = make/data/symbols/java.management.rmi-I.sym.txt + make/data/symbols/java.naming-I.sym.txt + make/data/symbols/java.net.http-I.sym.txt + make/data/symbols/java.rmi-I.sym.txt = make/data/symbols/java.scripting-I.sym.txt = make/data/symbols/java.security.jgss-I.sym.txt = make/data/symbols/java.security.sasl-I.sym.txt = make/data/symbols/java.smartcardio-I.sym.txt = make/data/symbols/java.sql-I.sym.txt = make/data/symbols/java.sql.rowset-I.sym.txt + make/data/symbols/java.xml-I.sym.txt + make/data/symbols/java.xml.crypto-I.sym.txt + make/data/symbols/jdk.accessibility-I.sym.txt = make/data/symbols/jdk.attach-I.sym.txt + make/data/symbols/jdk.compiler-I.sym.txt = make/data/symbols/jdk.dynalink-I.sym.txt + make/data/symbols/jdk.httpserver-I.sym.txt + make/data/symbols/jdk.incubator.foreign-I.sym.txt + make/data/symbols/jdk.incubator.vector-I.sym.txt = make/data/symbols/jdk.jartool-I.sym.txt + make/data/symbols/jdk.javadoc-I.sym.txt = make/data/symbols/jdk.jconsole-I.sym.txt = make/data/symbols/jdk.jdi-I.sym.txt + make/data/symbols/jdk.jlink-I.sym.txt + make/data/symbols/jdk.jshell-I.sym.txt = make/data/symbols/jdk.jsobject-I.sym.txt = make/data/symbols/jdk.management-I.sym.txt + make/data/symbols/jdk.management.jfr-I.sym.txt = make/data/symbols/jdk.net-I.sym.txt = make/data/symbols/jdk.sctp-I.sym.txt = make/data/symbols/jdk.security.auth-I.sym.txt + make/data/symbols/jdk.security.jgss-I.sym.txt + make/data/symbols/jdk.unsupported-I.sym.txt = make/data/symbols/jdk.xml.dom-I.sym.txt ! make/data/symbols/symbols ! src/hotspot/share/classfile/classFileParser.cpp ! src/java.base/share/classes/jdk/internal/org/objectweb/asm/ClassReader.java ! src/java.base/share/classes/jdk/internal/org/objectweb/asm/Opcodes.java ! src/java.compiler/share/classes/javax/lang/model/SourceVersion.java ! src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementScanner14.java ! src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor14.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassFile.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Target.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java ! test/hotspot/jtreg/runtime/CommandLine/VMDeprecatedOptions.java ! test/langtools/tools/javac/api/TestGetSourceVersions.java ! test/langtools/tools/javac/classfiles/ClassVersionChecker.java ! test/langtools/tools/javac/lib/JavacTestingAbstractProcessor.java ! test/langtools/tools/javac/preview/classReaderTest/Client.nopreview.out ! test/langtools/tools/javac/preview/classReaderTest/Client.preview.out ! test/langtools/tools/javac/versions/Versions.java Changeset: 01b30bfa Author: Martin Doerr Date: 2021-12-09 17:04:55 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/01b30bfa99e95cf1e9209c8de1f3c3c762596708 8253860: PPC: Relocation::pd_set_data_value conflates compressed oops and klasses Reviewed-by: dlong, rrich ! src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp ! src/hotspot/cpu/ppc/macroAssembler_ppc.cpp ! src/hotspot/cpu/ppc/nativeInst_ppc.hpp ! src/hotspot/cpu/ppc/ppc.ad ! src/hotspot/cpu/ppc/relocInfo_ppc.cpp Changeset: bc31ccc9 Author: Michael McMahon Date: 2021-12-09 17:38:49 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/bc31ccc95be9523cc6c64932f6d39f81c2e82bdd 8278312: Update SimpleSSLContext keystore to use SANs for localhost IP addresses Reviewed-by: dfuchs + test/jdk/com/sun/net/httpserver/SANTest.java ! test/jdk/java/net/httpclient/http2/server/Http2TestServer.java ! test/lib/jdk/test/lib/net/testkeys Changeset: abebde74 Author: Albert Mingkun Yang Date: 2021-12-09 18:15:53 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/abebde74409e87f4bab2e72ed27a2524a13611da 8278421: G1: Remove unused HeapRegion::verify Reviewed-by: iwalulya, tschatzl ! src/hotspot/share/gc/g1/heapRegion.cpp ! src/hotspot/share/gc/g1/heapRegion.hpp Changeset: fcd67a52 Author: Toshio Nakamura Committer: Naoto Sato Date: 2021-12-09 19:05:31 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/fcd67a5242b7db06e4cb06b574972a463b209b2e 8278185: Custom JRE cannot find non-ASCII named module inside Reviewed-by: naoto ! src/java.base/share/classes/jdk/internal/jimage/ImageStringsReader.java + test/jdk/tools/jimage/JImageNonAsciiNameTest.java Changeset: 918b3505 Author: Jonathan Gibbons Date: 2021-12-09 21:47:50 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/918b3505e1cbbf5ac380cbcca43aae2829c18a2d 8278516: Typos in snippet for java.compiler Reviewed-by: darcy ! src/java.compiler/share/classes/javax/tools/StandardJavaFileManager.java Changeset: d40e90b4 Author: Daniel D. Daugherty Date: 2021-12-09 22:03:04 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/d40e90b4a1b55753a178d824c4c60209bc46efac 8278521: ProblemList java/lang/management/ThreadMXBean/ThreadLists.java Reviewed-by: bpb ! test/jdk/ProblemList.txt Changeset: ec0a5ac8 Author: Jesper Wilhelmsson Date: 2021-12-09 23:24:40 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ec0a5ac8fec75c5c3eda3d9909d2e65d610d9854 Merge Changeset: 066b348d Author: Kim Barrett Date: 2021-12-10 01:32:05 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/066b348dbc989cf90048b136a8b42a0ea1cd08d7 8277807: Increase default initial concurrent refinement threshold Reviewed-by: tschatzl, sjohanss ! src/hotspot/share/gc/g1/g1ConcurrentRefine.cpp Changeset: 0113322a Author: Jatin Bhateja Date: 2021-12-10 01:49:20 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/0113322ac15e2441def3dec599199b98cbd02961 8277997: Intrinsic creation for VectorMask.fromLong API Reviewed-by: psandoz, kvn, sviswanathan ! src/hotspot/cpu/x86/assembler_x86.cpp ! src/hotspot/cpu/x86/assembler_x86.hpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.hpp ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/share/adlc/formssel.cpp ! src/hotspot/share/classfile/vmIntrinsics.hpp ! src/hotspot/share/opto/c2compiler.cpp ! src/hotspot/share/opto/classes.hpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/library_call.hpp ! src/hotspot/share/opto/vectorIntrinsics.cpp ! src/hotspot/share/opto/vectornode.cpp ! src/hotspot/share/opto/vectornode.hpp ! src/hotspot/share/prims/vectorSupport.hpp ! src/java.base/share/classes/jdk/internal/vm/vector/VectorSupport.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte128Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte256Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte512Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Byte64Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ByteMaxVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ByteVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double128Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double256Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double512Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Double64Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/DoubleMaxVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/DoubleVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float128Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float256Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float512Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float64Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/FloatMaxVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/FloatVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int128Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int256Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int512Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Int64Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/IntMaxVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/IntVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long128Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long256Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long512Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Long64Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/LongMaxVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/LongVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short128Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short256Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short512Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Short64Vector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ShortMaxVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ShortVector.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/VectorMask.java ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-Vector.java.template ! src/jdk.incubator.vector/share/classes/jdk/incubator/vector/X-VectorBits.java.template ! test/jdk/jdk/incubator/vector/Byte128VectorTests.java ! test/jdk/jdk/incubator/vector/Byte256VectorTests.java ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! test/jdk/jdk/incubator/vector/Byte64VectorTests.java ! test/jdk/jdk/incubator/vector/Double128VectorTests.java ! test/jdk/jdk/incubator/vector/Double256VectorTests.java ! test/jdk/jdk/incubator/vector/Double512VectorTests.java ! test/jdk/jdk/incubator/vector/Double64VectorTests.java ! test/jdk/jdk/incubator/vector/Float128VectorTests.java ! test/jdk/jdk/incubator/vector/Float256VectorTests.java ! test/jdk/jdk/incubator/vector/Float512VectorTests.java ! test/jdk/jdk/incubator/vector/Float64VectorTests.java ! test/jdk/jdk/incubator/vector/Int128VectorTests.java ! test/jdk/jdk/incubator/vector/Int256VectorTests.java ! test/jdk/jdk/incubator/vector/Int512VectorTests.java ! test/jdk/jdk/incubator/vector/Int64VectorTests.java ! test/jdk/jdk/incubator/vector/Long128VectorTests.java ! test/jdk/jdk/incubator/vector/Long256VectorTests.java ! test/jdk/jdk/incubator/vector/Long512VectorTests.java ! test/jdk/jdk/incubator/vector/Long64VectorTests.java ! test/jdk/jdk/incubator/vector/Short128VectorTests.java ! test/jdk/jdk/incubator/vector/Short256VectorTests.java ! test/jdk/jdk/incubator/vector/Short512VectorTests.java ! test/jdk/jdk/incubator/vector/Short64VectorTests.java ! test/jdk/jdk/incubator/vector/templates/Unit-Miscellaneous.template + test/micro/org/openjdk/bench/jdk/incubator/vector/MaskFromLongBenchmark.java Changeset: 539fbbf8 Author: Hamlin Li Date: 2021-12-10 06:06:12 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/539fbbf8c7c6003af33fe148bc3ceb4e69966143 8278532: Fix some typos in compiler comments Reviewed-by: kvn, jiefu ! src/hotspot/share/c1/c1_FrameMap.hpp ! src/hotspot/share/c1/c1_GraphBuilder.cpp ! src/hotspot/share/c1/c1_ValueMap.cpp ! src/hotspot/share/opto/phaseX.hpp Changeset: aed3ea20 Author: Jan Lahoda Date: 2021-12-10 09:01:58 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/aed3ea2043e765bf4a9ac980da2515f19855c780 8277634: Incorrect method name in invokedynamic Reviewed-by: jlaskey ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symbol.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/PoolConstant.java + test/langtools/tools/javac/classwriter/IndyCorrectInvocationName.java Changeset: be995f06 Author: duke Date: 2021-12-10 11:00:51 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/be995f0686b28b722422f230d8f2ef04bfe992ee Automatic merge of jdk:master into master Changeset: 151f433e Author: J. Duke Committer: Maurizio Cimadamore Date: 2021-12-10 14:57:38 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/151f433ee759e237f52ba1b847a365fcfc972da7 Merge master ! src/hotspot/cpu/aarch64/sharedRuntime_aarch64.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.hpp ! src/hotspot/cpu/x86/sharedRuntime_x86_32.cpp ! src/hotspot/cpu/x86/sharedRuntime_x86_64.cpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/runtime/globals.hpp ! test/jdk/ProblemList.txt ! src/hotspot/cpu/aarch64/sharedRuntime_aarch64.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.hpp ! src/hotspot/cpu/x86/sharedRuntime_x86_32.cpp ! src/hotspot/cpu/x86/sharedRuntime_x86_64.cpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/runtime/globals.hpp ! test/jdk/ProblemList.txt Changeset: 2617fbfa Author: duke Date: 2021-12-10 14:59:03 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/2617fbfa3050913d34906f87027b8be8f10e53a9 Automatic merge of foreign-memaccess+abi into foreign-jextract ! test/jdk/TEST.groups ! test/jdk/TEST.groups From ltorokrl at gmail.com Fri Dec 10 16:17:34 2021 From: ltorokrl at gmail.com (=?UTF-8?B?TGFkaXNsYXYgVMO2csO2aw==?=) Date: Fri, 10 Dec 2021 17:17:34 +0100 Subject: Problem with concating of multiple wide string in wcout - unnecessary space after each charcater Message-ID: Environment: Windows 2010, Microsoft Visual Studio 2019, java -version: openjdk version "17-panama" 2021-09-14 OpenJDK Runtime Environment (build 17-panama+3-167) OpenJDK 64-Bit Server VM (build 17-panama+3-167, mixed mode, sharing) * Builded DLL with use of C++/WinRT. Example: build simple dll with one function when is used call wcout (with concating of multiple wide string) in Microsoft Visual Studio 2019 Note: problem only when build DLL is in RELEASE x64, after build DLL in DEBUG is all ok Sample output wcout from funcion in DLL is: java --enable-preview --add-modules jdk.incubator.foreign --enable-native-access=ALL-UNNAMED -Djava.library.path=lib/helloworldwinrt/target -classpath target/classes;lib/target/jar/* com.github.tornaia.panama.tutorial005.Tutorial005 WARNING: Using incubator modules: jdk.incubator.foreign Start B l u e t o o t h a d d r e s s : 1 8 1 1 6 1 4 6 6 0 6 3 2 1 3 End After each character is one space! In case need I can attach SSCCE. With regards Ladislav From maurizio.cimadamore at oracle.com Fri Dec 10 17:43:46 2021 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Fri, 10 Dec 2021 17:43:46 +0000 Subject: Problem with concating of multiple wide string in wcout - unnecessary space after each charcater In-Reply-To: References: Message-ID: <21986af7-0a56-4af2-1c57-4a072a747fa9@oracle.com> Hi, can you please submit the code you are using? I've seen some samples here: https://github.com/tornaia/panama-tutorial But I don't see something which would print "bluetooth address". Thanks Maurizio On 10/12/2021 16:17, Ladislav T?r?k wrote: > Environment: > Windows 2010, > Microsoft Visual Studio 2019, > java -version: > openjdk version "17-panama" 2021-09-14 > OpenJDK Runtime Environment (build 17-panama+3-167) > OpenJDK 64-Bit Server VM (build 17-panama+3-167, mixed mode, sharing) > * Builded DLL with use of C++/WinRT. > > Example: > build simple dll with one function when is used call wcout (with concating > of multiple wide string) in Microsoft Visual Studio 2019 > > Note: problem only when build DLL is in RELEASE x64, after build DLL in > DEBUG is all ok > > Sample output wcout from funcion in DLL is: > java --enable-preview --add-modules jdk.incubator.foreign > --enable-native-access=ALL-UNNAMED > -Djava.library.path=lib/helloworldwinrt/target -classpath > target/classes;lib/target/jar/* > com.github.tornaia.panama.tutorial005.Tutorial005 > WARNING: Using incubator modules: jdk.incubator.foreign > Start > B l u e t o o t h a d d r e s s : 1 8 1 1 6 1 4 6 6 0 6 3 2 1 3 > End > > After each character is one space! > > In case need I can attach SSCCE. > > With regards Ladislav From youngty1997 at gmail.com Fri Dec 10 21:34:59 2021 From: youngty1997 at gmail.com (Ty Young) Date: Fri, 10 Dec 2021 15:34:59 -0600 Subject: status of VM long loop optimizations - call for action In-Reply-To: References: Message-ID: <4072546c-e646-2ffd-6d01-af55e0cb8381@gmail.com> A simple write benchmark I had already made for specialized VarHandles(AKA insertCoordinates) seems to get about 1ns consistently faster, so I guess these changes helped a bit? Before: Benchmark??????????????????????????????????? Mode? Cnt?? Score Error? Units VarHandleBenchmark.genericHandleBenchmark??? avgt??? 5? 21.155 ? 0.145? ns/op VarHandleBenchmark.specFinalHandleBenchmark? avgt??? 5?? 0.678 ? 0.201? ns/op VarHandleBenchmark.specHandleBenchmark?????? avgt??? 5? 17.323 ? 1.324? ns/op After: Benchmark??????????????????????????????????? Mode? Cnt?? Score Error? Units VarHandleBenchmark.genericHandleBenchmark??? avgt??? 5? 20.304 ? 1.466? ns/op VarHandleBenchmark.specFinalHandleBenchmark? avgt??? 5?? 0.652 ? 0.156? ns/op VarHandleBenchmark.specHandleBenchmark?????? avgt??? 5? 17.266 ? 1.712? ns/op Benchmark: ??? public static final MemorySegment SEGMENT = MemorySegment.allocateNative(ValueLayout.JAVA_INT, ResourceScope.newSharedScope()); ??? public static final VarHandle GENERIC_HANDLE = MemoryHandles.varHandle(ValueLayout.JAVA_INT); ??? public static VarHandle SPEC_HANDLE = MemoryHandles.insertCoordinates(GENERIC_HANDLE, 0, SEGMENT, 0); ??? public static final VarHandle SPEC_HANDLE_FINAL = MemoryHandles.insertCoordinates(GENERIC_HANDLE, 0, SEGMENT, 0); ??? @Benchmark ??? @BenchmarkMode(Mode.AverageTime) ??? @OutputTimeUnit(TimeUnit.NANOSECONDS) ??? public void genericHandleBenchmark() ??? { ??????? GENERIC_HANDLE.set(SEGMENT, 0, 5); ??? } ??? @Benchmark ??? @BenchmarkMode(Mode.AverageTime) ??? @OutputTimeUnit(TimeUnit.NANOSECONDS) ??? public void specHandleBenchmark() ??? { ??????? SPEC_HANDLE.set(5); ??? } ??? @Benchmark ??? @BenchmarkMode(Mode.AverageTime) ??? @OutputTimeUnit(TimeUnit.NANOSECONDS) ??? public void specFinalHandleBenchmark() ??? { ??????? SPEC_HANDLE_FINAL.set(5); ??? } Sort of off-topic but... I don't remember anyone saying previously that insertCoordinates would give that big of a difference(or any at all!) so it's surprising to me. I was expecting a performance decrease due to the handle no longer being static-final. Can javac maybe optimize this so that any case where: GENERIC_HANDLE.set(SEGMENT, 0, 5); is, an optimized VarHandle is created at compile time that is equivalent to SPEC_HANDLE and inserted there instead? On 12/10/21 4:55 AM, Maurizio Cimadamore wrote: > (resending since mailing lists were down yesterday - I apologize if > this results in duplicates). > > Hi, > few days ago some VM enhancements were integrated [1, 2], so it is > time to take a look again at where we are. > > I put together a branch which removes all workarounds (both for long > loops and for alignment checks): > > https://github.com/mcimadamore/jdk/tree/long_loop_workarounds_removal > > I also ran memory access benchmarks before/after, to see what the > difference is like - here's a visual report: > > https://jmh.morethan.io/?gists=dfa7075db33f7e6a2690ac80a64aa252,7f894f48460a6a0c9891cbe3158b43a7 > > > Overall, I think the numbers are solid. The branch w/o workarounds > keep up with mainline in basically all cases but one (UnrolledAccess - > this code pattern needs more work in the VM, but Roland Westrelin has > identified a possible fix for it). In some cases (parallel tests) we > see quite a big jump forward. > > I think it's hard to say how these results will translate in real > world - my gut feeling is that the simpler bound checking logic will > almost invariably result in performance improvements with more complex > code patterns, despite what synthetic benchmark might say (the current > logic in mainline is fragile as it has to guard against integer > overflow, which in turns sometimes kills BCE optimizations). > > So I'd be inclined to integrate these changes in 18. > > If you gave a project that works agaist the Java 18 API, it would be > very helpful for us if you could try it on the above branch and report > back. This will help us make a more informed decision. > > Cheers > Maurizio > > [1] - https://bugs.openjdk.java.net/browse/JDK-8276116 > [2] - https://bugs.openjdk.java.net/browse/JDK-8277850 > > > From maurizio.cimadamore at oracle.com Fri Dec 10 22:06:32 2021 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Fri, 10 Dec 2021 22:06:32 +0000 Subject: status of VM long loop optimizations - call for action In-Reply-To: <4072546c-e646-2ffd-6d01-af55e0cb8381@gmail.com> References: <4072546c-e646-2ffd-6d01-af55e0cb8381@gmail.com> Message-ID: Hi, I don't think the 1ns difference is real - if you look at the error in the second run is higher than that, so it's in the noise. And, since there's no loop, I don't think this specific kind of benchmark should be affected in any way by the VM improvements. What the VM can help with is to remove bound checks when you keep accessing a segment in a loop, as C2 is now able to correctly apply an optimization called "bound check elimination" or BCE. This optimization is routinely applied on Java array access, but it used to fail for memory segments because the bound of a memory segment is stored in a long variable, not an int. That said, note that you are passing inexact arguments to the var handle (e.g. you are passing an int offset instead of a long one; try to use "0L" instead of "0"). Maurizio On 10/12/2021 21:34, Ty Young wrote: > A simple write benchmark I had already made for specialized > VarHandles(AKA insertCoordinates) seems to get about 1ns consistently > faster, so I guess these changes helped a bit? > > > Before: > > > Benchmark??????????????????????????????????? Mode? Cnt?? Score Error? > Units > VarHandleBenchmark.genericHandleBenchmark??? avgt??? 5? 21.155 ? > 0.145? ns/op > VarHandleBenchmark.specFinalHandleBenchmark? avgt??? 5?? 0.678 ? > 0.201? ns/op > VarHandleBenchmark.specHandleBenchmark?????? avgt??? 5? 17.323 ? > 1.324? ns/op > > > After: > > > Benchmark??????????????????????????????????? Mode? Cnt?? Score Error? > Units > VarHandleBenchmark.genericHandleBenchmark??? avgt??? 5? 20.304 ? > 1.466? ns/op > VarHandleBenchmark.specFinalHandleBenchmark? avgt??? 5?? 0.652 ? > 0.156? ns/op > VarHandleBenchmark.specHandleBenchmark?????? avgt??? 5? 17.266 ? > 1.712? ns/op > > > Benchmark: > > > ??? public static final MemorySegment SEGMENT = > MemorySegment.allocateNative(ValueLayout.JAVA_INT, > ResourceScope.newSharedScope()); > > ??? public static final VarHandle GENERIC_HANDLE = > MemoryHandles.varHandle(ValueLayout.JAVA_INT); > > ??? public static VarHandle SPEC_HANDLE = > MemoryHandles.insertCoordinates(GENERIC_HANDLE, 0, SEGMENT, 0); > > ??? public static final VarHandle SPEC_HANDLE_FINAL = > MemoryHandles.insertCoordinates(GENERIC_HANDLE, 0, SEGMENT, 0); > > ??? @Benchmark > ??? @BenchmarkMode(Mode.AverageTime) > ??? @OutputTimeUnit(TimeUnit.NANOSECONDS) > ??? public void genericHandleBenchmark() > ??? { > ??????? GENERIC_HANDLE.set(SEGMENT, 0, 5); > ??? } > > ??? @Benchmark > ??? @BenchmarkMode(Mode.AverageTime) > ??? @OutputTimeUnit(TimeUnit.NANOSECONDS) > ??? public void specHandleBenchmark() > ??? { > ??????? SPEC_HANDLE.set(5); > ??? } > > ??? @Benchmark > ??? @BenchmarkMode(Mode.AverageTime) > ??? @OutputTimeUnit(TimeUnit.NANOSECONDS) > ??? public void specFinalHandleBenchmark() > ??? { > ??????? SPEC_HANDLE_FINAL.set(5); > ??? } > > > Sort of off-topic but... I don't remember anyone saying previously > that insertCoordinates would give that big of a difference(or any at > all!) so it's surprising to me. I was expecting a performance decrease > due to the handle no longer being static-final. Can javac maybe > optimize this so that any case where: > > > GENERIC_HANDLE.set(SEGMENT, 0, 5); > > > is, an optimized VarHandle is created at compile time that is > equivalent to SPEC_HANDLE and inserted there instead? > > > On 12/10/21 4:55 AM, Maurizio Cimadamore wrote: >> (resending since mailing lists were down yesterday - I apologize if >> this results in duplicates). >> >> Hi, >> few days ago some VM enhancements were integrated [1, 2], so it is >> time to take a look again at where we are. >> >> I put together a branch which removes all workarounds (both for long >> loops and for alignment checks): >> >> https://github.com/mcimadamore/jdk/tree/long_loop_workarounds_removal >> >> I also ran memory access benchmarks before/after, to see what the >> difference is like - here's a visual report: >> >> https://jmh.morethan.io/?gists=dfa7075db33f7e6a2690ac80a64aa252,7f894f48460a6a0c9891cbe3158b43a7 >> >> >> Overall, I think the numbers are solid. The branch w/o workarounds >> keep up with mainline in basically all cases but one (UnrolledAccess >> - this code pattern needs more work in the VM, but Roland Westrelin >> has identified a possible fix for it). In some cases (parallel tests) >> we see quite a big jump forward. >> >> I think it's hard to say how these results will translate in real >> world - my gut feeling is that the simpler bound checking logic will >> almost invariably result in performance improvements with more >> complex code patterns, despite what synthetic benchmark might say >> (the current logic in mainline is fragile as it has to guard against >> integer overflow, which in turns sometimes kills BCE optimizations). >> >> So I'd be inclined to integrate these changes in 18. >> >> If you gave a project that works agaist the Java 18 API, it would be >> very helpful for us if you could try it on the above branch and >> report back. This will help us make a more informed decision. >> >> Cheers >> Maurizio >> >> [1] - https://bugs.openjdk.java.net/browse/JDK-8276116 >> [2] - https://bugs.openjdk.java.net/browse/JDK-8277850 >> >> >> From youngty1997 at gmail.com Fri Dec 10 22:18:45 2021 From: youngty1997 at gmail.com (Ty Young) Date: Fri, 10 Dec 2021 16:18:45 -0600 Subject: status of VM long loop optimizations - call for action In-Reply-To: References: <4072546c-e646-2ffd-6d01-af55e0cb8381@gmail.com> Message-ID: <7d330c42-1438-852e-f53f-7a74c6e5d3d3@gmail.com> Yeah, I forgot that. Apologies. On 12/10/21 4:06 PM, Maurizio Cimadamore wrote: > Hi, > I don't think the 1ns difference is real - if you look at the error in > the second run is higher than that, so it's in the noise. > > And, since there's no loop, I don't think this specific kind of > benchmark should be affected in any way by the VM improvements. What > the VM can help with is to remove bound checks when you keep accessing > a segment in a loop, as C2 is now able to correctly apply an > optimization called "bound check elimination" or BCE. This > optimization is routinely applied on Java array access, but it used to > fail for memory segments because the bound of a memory segment is > stored in a long variable, not an int. > > That said, note that you are passing inexact arguments to the var > handle (e.g. you are passing an int offset instead of a long one; try > to use "0L" instead of "0"). > > Maurizio > > > On 10/12/2021 21:34, Ty Young wrote: >> A simple write benchmark I had already made for specialized >> VarHandles(AKA insertCoordinates) seems to get about 1ns consistently >> faster, so I guess these changes helped a bit? >> >> >> Before: >> >> >> Benchmark??????????????????????????????????? Mode? Cnt?? Score Error? >> Units >> VarHandleBenchmark.genericHandleBenchmark??? avgt??? 5? 21.155 ? >> 0.145? ns/op >> VarHandleBenchmark.specFinalHandleBenchmark? avgt??? 5?? 0.678 ? >> 0.201? ns/op >> VarHandleBenchmark.specHandleBenchmark?????? avgt??? 5? 17.323 ? >> 1.324? ns/op >> >> >> After: >> >> >> Benchmark??????????????????????????????????? Mode? Cnt?? Score Error? >> Units >> VarHandleBenchmark.genericHandleBenchmark??? avgt??? 5? 20.304 ? >> 1.466? ns/op >> VarHandleBenchmark.specFinalHandleBenchmark? avgt??? 5?? 0.652 ? >> 0.156? ns/op >> VarHandleBenchmark.specHandleBenchmark?????? avgt??? 5? 17.266 ? >> 1.712? ns/op >> >> >> Benchmark: >> >> >> ??? public static final MemorySegment SEGMENT = >> MemorySegment.allocateNative(ValueLayout.JAVA_INT, >> ResourceScope.newSharedScope()); >> >> ??? public static final VarHandle GENERIC_HANDLE = >> MemoryHandles.varHandle(ValueLayout.JAVA_INT); >> >> ??? public static VarHandle SPEC_HANDLE = >> MemoryHandles.insertCoordinates(GENERIC_HANDLE, 0, SEGMENT, 0); >> >> ??? public static final VarHandle SPEC_HANDLE_FINAL = >> MemoryHandles.insertCoordinates(GENERIC_HANDLE, 0, SEGMENT, 0); >> >> ??? @Benchmark >> ??? @BenchmarkMode(Mode.AverageTime) >> ??? @OutputTimeUnit(TimeUnit.NANOSECONDS) >> ??? public void genericHandleBenchmark() >> ??? { >> ??????? GENERIC_HANDLE.set(SEGMENT, 0, 5); >> ??? } >> >> ??? @Benchmark >> ??? @BenchmarkMode(Mode.AverageTime) >> ??? @OutputTimeUnit(TimeUnit.NANOSECONDS) >> ??? public void specHandleBenchmark() >> ??? { >> ??????? SPEC_HANDLE.set(5); >> ??? } >> >> ??? @Benchmark >> ??? @BenchmarkMode(Mode.AverageTime) >> ??? @OutputTimeUnit(TimeUnit.NANOSECONDS) >> ??? public void specFinalHandleBenchmark() >> ??? { >> ??????? SPEC_HANDLE_FINAL.set(5); >> ??? } >> >> >> Sort of off-topic but... I don't remember anyone saying previously >> that insertCoordinates would give that big of a difference(or any at >> all!) so it's surprising to me. I was expecting a performance >> decrease due to the handle no longer being static-final. Can javac >> maybe optimize this so that any case where: >> >> >> GENERIC_HANDLE.set(SEGMENT, 0, 5); >> >> >> is, an optimized VarHandle is created at compile time that is >> equivalent to SPEC_HANDLE and inserted there instead? >> >> >> On 12/10/21 4:55 AM, Maurizio Cimadamore wrote: >>> (resending since mailing lists were down yesterday - I apologize if >>> this results in duplicates). >>> >>> Hi, >>> few days ago some VM enhancements were integrated [1, 2], so it is >>> time to take a look again at where we are. >>> >>> I put together a branch which removes all workarounds (both for long >>> loops and for alignment checks): >>> >>> https://github.com/mcimadamore/jdk/tree/long_loop_workarounds_removal >>> >>> I also ran memory access benchmarks before/after, to see what the >>> difference is like - here's a visual report: >>> >>> https://jmh.morethan.io/?gists=dfa7075db33f7e6a2690ac80a64aa252,7f894f48460a6a0c9891cbe3158b43a7 >>> >>> >>> Overall, I think the numbers are solid. The branch w/o workarounds >>> keep up with mainline in basically all cases but one (UnrolledAccess >>> - this code pattern needs more work in the VM, but Roland Westrelin >>> has identified a possible fix for it). In some cases (parallel >>> tests) we see quite a big jump forward. >>> >>> I think it's hard to say how these results will translate in real >>> world - my gut feeling is that the simpler bound checking logic will >>> almost invariably result in performance improvements with more >>> complex code patterns, despite what synthetic benchmark might say >>> (the current logic in mainline is fragile as it has to guard against >>> integer overflow, which in turns sometimes kills BCE optimizations). >>> >>> So I'd be inclined to integrate these changes in 18. >>> >>> If you gave a project that works agaist the Java 18 API, it would be >>> very helpful for us if you could try it on the above branch and >>> report back. This will help us make a more informed decision. >>> >>> Cheers >>> Maurizio >>> >>> [1] - https://bugs.openjdk.java.net/browse/JDK-8276116 >>> [2] - https://bugs.openjdk.java.net/browse/JDK-8277850 >>> >>> >>> From forax at univ-mlv.fr Fri Dec 10 22:33:30 2021 From: forax at univ-mlv.fr (Remi Forax) Date: Fri, 10 Dec 2021 23:33:30 +0100 (CET) Subject: status of VM long loop optimizations - call for action In-Reply-To: <7d330c42-1438-852e-f53f-7a74c6e5d3d3@gmail.com> References: <4072546c-e646-2ffd-6d01-af55e0cb8381@gmail.com> <7d330c42-1438-852e-f53f-7a74c6e5d3d3@gmail.com> Message-ID: <243775208.1333800.1639175610750.JavaMail.zimbra@u-pem.fr> Hi Ty, there is a simple trick to be sure to get the best performance. When you create the VarHandle, call withInvokeExactBehavior [1] on it, the returned VarHandle will throw an error at runtime instead of trying to convert arguments. R?mi [1] https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/invoke/VarHandle.html#withInvokeExactBehavior() ----- Original Message ----- > From: "Ty Young" > To: "Maurizio Cimadamore" , "panama-dev at openjdk.java.net'" > Sent: Friday, December 10, 2021 11:18:45 PM > Subject: Re: status of VM long loop optimizations - call for action > Yeah, I forgot that. Apologies. > > > On 12/10/21 4:06 PM, Maurizio Cimadamore wrote: >> Hi, >> I don't think the 1ns difference is real - if you look at the error in >> the second run is higher than that, so it's in the noise. >> >> And, since there's no loop, I don't think this specific kind of >> benchmark should be affected in any way by the VM improvements. What >> the VM can help with is to remove bound checks when you keep accessing >> a segment in a loop, as C2 is now able to correctly apply an >> optimization called "bound check elimination" or BCE. This >> optimization is routinely applied on Java array access, but it used to >> fail for memory segments because the bound of a memory segment is >> stored in a long variable, not an int. >> >> That said, note that you are passing inexact arguments to the var >> handle (e.g. you are passing an int offset instead of a long one; try >> to use "0L" instead of "0"). >> >> Maurizio >> >> >> On 10/12/2021 21:34, Ty Young wrote: >>> A simple write benchmark I had already made for specialized >>> VarHandles(AKA insertCoordinates) seems to get about 1ns consistently >>> faster, so I guess these changes helped a bit? >>> >>> >>> Before: >>> >>> >>> Benchmark??????????????????????????????????? Mode? Cnt?? Score Error >>> Units >>> VarHandleBenchmark.genericHandleBenchmark??? avgt??? 5? 21.155 ? >>> 0.145? ns/op >>> VarHandleBenchmark.specFinalHandleBenchmark? avgt??? 5?? 0.678 ? >>> 0.201? ns/op >>> VarHandleBenchmark.specHandleBenchmark?????? avgt??? 5? 17.323 ? >>> 1.324? ns/op >>> >>> >>> After: >>> >>> >>> Benchmark??????????????????????????????????? Mode? Cnt?? Score Error >>> Units >>> VarHandleBenchmark.genericHandleBenchmark??? avgt??? 5? 20.304 ? >>> 1.466? ns/op >>> VarHandleBenchmark.specFinalHandleBenchmark? avgt??? 5?? 0.652 ? >>> 0.156? ns/op >>> VarHandleBenchmark.specHandleBenchmark?????? avgt??? 5? 17.266 ? >>> 1.712? ns/op >>> >>> >>> Benchmark: >>> >>> >>> ??? public static final MemorySegment SEGMENT = >>> MemorySegment.allocateNative(ValueLayout.JAVA_INT, >>> ResourceScope.newSharedScope()); >>> >>> ??? public static final VarHandle GENERIC_HANDLE = >>> MemoryHandles.varHandle(ValueLayout.JAVA_INT); >>> >>> ??? public static VarHandle SPEC_HANDLE = >>> MemoryHandles.insertCoordinates(GENERIC_HANDLE, 0, SEGMENT, 0); >>> >>> ??? public static final VarHandle SPEC_HANDLE_FINAL = >>> MemoryHandles.insertCoordinates(GENERIC_HANDLE, 0, SEGMENT, 0); >>> >>> ??? @Benchmark >>> ??? @BenchmarkMode(Mode.AverageTime) >>> ??? @OutputTimeUnit(TimeUnit.NANOSECONDS) >>> ??? public void genericHandleBenchmark() >>> ??? { >>> ??????? GENERIC_HANDLE.set(SEGMENT, 0, 5); >>> ??? } >>> >>> ??? @Benchmark >>> ??? @BenchmarkMode(Mode.AverageTime) >>> ??? @OutputTimeUnit(TimeUnit.NANOSECONDS) >>> ??? public void specHandleBenchmark() >>> ??? { >>> ??????? SPEC_HANDLE.set(5); >>> ??? } >>> >>> ??? @Benchmark >>> ??? @BenchmarkMode(Mode.AverageTime) >>> ??? @OutputTimeUnit(TimeUnit.NANOSECONDS) >>> ??? public void specFinalHandleBenchmark() >>> ??? { >>> ??????? SPEC_HANDLE_FINAL.set(5); >>> ??? } >>> >>> >>> Sort of off-topic but... I don't remember anyone saying previously >>> that insertCoordinates would give that big of a difference(or any at >>> all!) so it's surprising to me. I was expecting a performance >>> decrease due to the handle no longer being static-final. Can javac >>> maybe optimize this so that any case where: >>> >>> >>> GENERIC_HANDLE.set(SEGMENT, 0, 5); >>> >>> >>> is, an optimized VarHandle is created at compile time that is >>> equivalent to SPEC_HANDLE and inserted there instead? >>> >>> >>> On 12/10/21 4:55 AM, Maurizio Cimadamore wrote: >>>> (resending since mailing lists were down yesterday - I apologize if >>>> this results in duplicates). >>>> >>>> Hi, >>>> few days ago some VM enhancements were integrated [1, 2], so it is >>>> time to take a look again at where we are. >>>> >>>> I put together a branch which removes all workarounds (both for long >>>> loops and for alignment checks): >>>> >>>> https://github.com/mcimadamore/jdk/tree/long_loop_workarounds_removal >>>> >>>> I also ran memory access benchmarks before/after, to see what the >>>> difference is like - here's a visual report: >>>> >>>> https://jmh.morethan.io/?gists=dfa7075db33f7e6a2690ac80a64aa252,7f894f48460a6a0c9891cbe3158b43a7 >>>> >>>> >>>> Overall, I think the numbers are solid. The branch w/o workarounds >>>> keep up with mainline in basically all cases but one (UnrolledAccess >>>> - this code pattern needs more work in the VM, but Roland Westrelin >>>> has identified a possible fix for it). In some cases (parallel >>>> tests) we see quite a big jump forward. >>>> >>>> I think it's hard to say how these results will translate in real >>>> world - my gut feeling is that the simpler bound checking logic will >>>> almost invariably result in performance improvements with more >>>> complex code patterns, despite what synthetic benchmark might say >>>> (the current logic in mainline is fragile as it has to guard against >>>> integer overflow, which in turns sometimes kills BCE optimizations). >>>> >>>> So I'd be inclined to integrate these changes in 18. >>>> >>>> If you gave a project that works agaist the Java 18 API, it would be >>>> very helpful for us if you could try it on the above branch and >>>> report back. This will help us make a more informed decision. >>>> >>>> Cheers >>>> Maurizio >>>> >>>> [1] - https://bugs.openjdk.java.net/browse/JDK-8276116 >>>> [2] - https://bugs.openjdk.java.net/browse/JDK-8277850 >>>> >>>> From mail at smogura.eu Sat Dec 11 13:53:55 2021 From: mail at smogura.eu (Rado Smogura) Date: Sat, 11 Dec 2021 14:53:55 +0100 Subject: status of VM long loop optimizations - call for action In-Reply-To: <243775208.1333800.1639175610750.JavaMail.zimbra@u-pem.fr> References: <4072546c-e646-2ffd-6d01-af55e0cb8381@gmail.com> <7d330c42-1438-852e-f53f-7a74c6e5d3d3@gmail.com> <243775208.1333800.1639175610750.JavaMail.zimbra@u-pem.fr> Message-ID: Hi Maurizio, Checked against JExtract branch 2617fbfa3050913d34906f87027b8be8f10e53a9 Project: https://github.com/rsmogura/panama-io Benchmark????????????????????????? Mode? Cnt??????? Score Error? Units SocketReadJdk.teatRead4k????????? thrpt??? 5?? 947424.435 ? 74922.610? ops/s SocketReadJdk.testRead16b???????? thrpt??? 5? 1823338.685 ? 33626.860? ops/s SocketReadJdk.testRead8bOffset??? thrpt??? 5? 1817956.804 ? 25456.785? ops/s SocketReadPosix.teatRead4k??????? thrpt??? 5? 1205470.257 ? 548343.499? ops/s SocketReadPosix.testRead16b?????? thrpt??? 5? 2710119.664 ? 227053.749? ops/s SocketReadPosix.testRead8bOffset? thrpt??? 5? 2968281.197 ? 216628.917? ops/s Numbers look amazing - I have to check if it's still does what it's intended to do (so write some integration test). Kind regards, Rado On 10.12.2021 23:33, Remi Forax wrote: > Hi Ty, > there is a simple trick to be sure to get the best performance. > > When you create the VarHandle, call withInvokeExactBehavior [1] on it, > the returned VarHandle will throw an error at runtime instead of trying to convert arguments. > > R?mi > > [1] https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/invoke/VarHandle.html#withInvokeExactBehavior() > > ----- Original Message ----- >> From: "Ty Young" >> To: "Maurizio Cimadamore" , "panama-dev at openjdk.java.net'" >> Sent: Friday, December 10, 2021 11:18:45 PM >> Subject: Re: status of VM long loop optimizations - call for action >> Yeah, I forgot that. Apologies. >> >> >> On 12/10/21 4:06 PM, Maurizio Cimadamore wrote: >>> Hi, >>> I don't think the 1ns difference is real - if you look at the error in >>> the second run is higher than that, so it's in the noise. >>> >>> And, since there's no loop, I don't think this specific kind of >>> benchmark should be affected in any way by the VM improvements. What >>> the VM can help with is to remove bound checks when you keep accessing >>> a segment in a loop, as C2 is now able to correctly apply an >>> optimization called "bound check elimination" or BCE. This >>> optimization is routinely applied on Java array access, but it used to >>> fail for memory segments because the bound of a memory segment is >>> stored in a long variable, not an int. >>> >>> That said, note that you are passing inexact arguments to the var >>> handle (e.g. you are passing an int offset instead of a long one; try >>> to use "0L" instead of "0"). >>> >>> Maurizio >>> >>> >>> On 10/12/2021 21:34, Ty Young wrote: >>>> A simple write benchmark I had already made for specialized >>>> VarHandles(AKA insertCoordinates) seems to get about 1ns consistently >>>> faster, so I guess these changes helped a bit? >>>> >>>> >>>> Before: >>>> >>>> >>>> Benchmark??????????????????????????????????? Mode? Cnt?? Score Error >>>> Units >>>> VarHandleBenchmark.genericHandleBenchmark??? avgt??? 5? 21.155 ? >>>> 0.145? ns/op >>>> VarHandleBenchmark.specFinalHandleBenchmark? avgt??? 5?? 0.678 ? >>>> 0.201? ns/op >>>> VarHandleBenchmark.specHandleBenchmark?????? avgt??? 5? 17.323 ? >>>> 1.324? ns/op >>>> >>>> >>>> After: >>>> >>>> >>>> Benchmark??????????????????????????????????? Mode? Cnt?? Score Error >>>> Units >>>> VarHandleBenchmark.genericHandleBenchmark??? avgt??? 5? 20.304 ? >>>> 1.466? ns/op >>>> VarHandleBenchmark.specFinalHandleBenchmark? avgt??? 5?? 0.652 ? >>>> 0.156? ns/op >>>> VarHandleBenchmark.specHandleBenchmark?????? avgt??? 5? 17.266 ? >>>> 1.712? ns/op >>>> >>>> >>>> Benchmark: >>>> >>>> >>>> ??? public static final MemorySegment SEGMENT = >>>> MemorySegment.allocateNative(ValueLayout.JAVA_INT, >>>> ResourceScope.newSharedScope()); >>>> >>>> ??? public static final VarHandle GENERIC_HANDLE = >>>> MemoryHandles.varHandle(ValueLayout.JAVA_INT); >>>> >>>> ??? public static VarHandle SPEC_HANDLE = >>>> MemoryHandles.insertCoordinates(GENERIC_HANDLE, 0, SEGMENT, 0); >>>> >>>> ??? public static final VarHandle SPEC_HANDLE_FINAL = >>>> MemoryHandles.insertCoordinates(GENERIC_HANDLE, 0, SEGMENT, 0); >>>> >>>> ??? @Benchmark >>>> ??? @BenchmarkMode(Mode.AverageTime) >>>> ??? @OutputTimeUnit(TimeUnit.NANOSECONDS) >>>> ??? public void genericHandleBenchmark() >>>> ??? { >>>> ??????? GENERIC_HANDLE.set(SEGMENT, 0, 5); >>>> ??? } >>>> >>>> ??? @Benchmark >>>> ??? @BenchmarkMode(Mode.AverageTime) >>>> ??? @OutputTimeUnit(TimeUnit.NANOSECONDS) >>>> ??? public void specHandleBenchmark() >>>> ??? { >>>> ??????? SPEC_HANDLE.set(5); >>>> ??? } >>>> >>>> ??? @Benchmark >>>> ??? @BenchmarkMode(Mode.AverageTime) >>>> ??? @OutputTimeUnit(TimeUnit.NANOSECONDS) >>>> ??? public void specFinalHandleBenchmark() >>>> ??? { >>>> ??????? SPEC_HANDLE_FINAL.set(5); >>>> ??? } >>>> >>>> >>>> Sort of off-topic but... I don't remember anyone saying previously >>>> that insertCoordinates would give that big of a difference(or any at >>>> all!) so it's surprising to me. I was expecting a performance >>>> decrease due to the handle no longer being static-final. Can javac >>>> maybe optimize this so that any case where: >>>> >>>> >>>> GENERIC_HANDLE.set(SEGMENT, 0, 5); >>>> >>>> >>>> is, an optimized VarHandle is created at compile time that is >>>> equivalent to SPEC_HANDLE and inserted there instead? >>>> >>>> >>>> On 12/10/21 4:55 AM, Maurizio Cimadamore wrote: >>>>> (resending since mailing lists were down yesterday - I apologize if >>>>> this results in duplicates). >>>>> >>>>> Hi, >>>>> few days ago some VM enhancements were integrated [1, 2], so it is >>>>> time to take a look again at where we are. >>>>> >>>>> I put together a branch which removes all workarounds (both for long >>>>> loops and for alignment checks): >>>>> >>>>> https://github.com/mcimadamore/jdk/tree/long_loop_workarounds_removal >>>>> >>>>> I also ran memory access benchmarks before/after, to see what the >>>>> difference is like - here's a visual report: >>>>> >>>>> https://jmh.morethan.io/?gists=dfa7075db33f7e6a2690ac80a64aa252,7f894f48460a6a0c9891cbe3158b43a7 >>>>> >>>>> >>>>> Overall, I think the numbers are solid. The branch w/o workarounds >>>>> keep up with mainline in basically all cases but one (UnrolledAccess >>>>> - this code pattern needs more work in the VM, but Roland Westrelin >>>>> has identified a possible fix for it). In some cases (parallel >>>>> tests) we see quite a big jump forward. >>>>> >>>>> I think it's hard to say how these results will translate in real >>>>> world - my gut feeling is that the simpler bound checking logic will >>>>> almost invariably result in performance improvements with more >>>>> complex code patterns, despite what synthetic benchmark might say >>>>> (the current logic in mainline is fragile as it has to guard against >>>>> integer overflow, which in turns sometimes kills BCE optimizations). >>>>> >>>>> So I'd be inclined to integrate these changes in 18. >>>>> >>>>> If you gave a project that works agaist the Java 18 API, it would be >>>>> very helpful for us if you could try it on the above branch and >>>>> report back. This will help us make a more informed decision. >>>>> >>>>> Cheers >>>>> Maurizio >>>>> >>>>> [1] - https://bugs.openjdk.java.net/browse/JDK-8276116 >>>>> [2] - https://bugs.openjdk.java.net/browse/JDK-8277850 >>>>> >>>>> From mail at smogura.eu Sat Dec 11 16:38:00 2021 From: mail at smogura.eu (Rado Smogura) Date: Sat, 11 Dec 2021 17:38:00 +0100 Subject: status of VM long loop optimizations - call for action In-Reply-To: References: <4072546c-e646-2ffd-6d01-af55e0cb8381@gmail.com> <7d330c42-1438-852e-f53f-7a74c6e5d3d3@gmail.com> <243775208.1333800.1639175610750.JavaMail.zimbra@u-pem.fr> Message-ID: Hi all, Just for comparison, run against April commits "Before" Benchmark????????????????????????? Mode? Cnt??????? Score Error? Units SocketReadJdk.teatRead4k????????? thrpt??? 5?? 939997.688 ? 74877.602? ops/s SocketReadJdk.testRead16b???????? thrpt??? 5? 1881053.005 ? 72637.626? ops/s SocketReadJdk.testRead8bOffset??? thrpt??? 5? 1924527.582 ? 38308.317? ops/s SocketReadPosix.teatRead4k??????? thrpt??? 5? 1157621.341 ? 106649.696? ops/s SocketReadPosix.testRead16b?????? thrpt??? 5? 3059826.951 ? 232852.053? ops/s SocketReadPosix.testRead8bOffset? thrpt??? 5? 2983402.371 ? 269646.104? ops/s "Current" - other runs Benchmark????????????????????????? Mode? Cnt??????? Score Error Units Benchmark????????????????????????? Mode? Cnt??????? Score Error? Units SocketReadPosix.teatRead4k??????? thrpt??? 5? 1163288.078 ? 263855.161? ops/s SocketReadPosix.testRead16b?????? thrpt??? 5? 3118810.213 ? 68389.408? ops/s SocketReadPosix.testRead8bOffset? thrpt??? 5? 2696627.066 ? 297527.130? ops/s I have to point out that this benchmark is not perfect, as it really reads data from the back server, so other noise can apply. BR, Rado > Hi Maurizio, > > > Checked against JExtract branch 2617fbfa3050913d34906f87027b8be8f10e53a9 > > Project: https://github.com/rsmogura/panama-io > > Benchmark????????????????????????? Mode? Cnt??????? Score Error Units > SocketReadJdk.teatRead4k????????? thrpt??? 5?? 947424.435 ? 74922.610? > ops/s > SocketReadJdk.testRead16b???????? thrpt??? 5? 1823338.685 ? 33626.860? > ops/s > SocketReadJdk.testRead8bOffset??? thrpt??? 5? 1817956.804 ? 25456.785? > ops/s > SocketReadPosix.teatRead4k??????? thrpt??? 5? 1205470.257 ? > 548343.499? ops/s > SocketReadPosix.testRead16b?????? thrpt??? 5? 2710119.664 ? > 227053.749? ops/s > SocketReadPosix.testRead8bOffset? thrpt??? 5? 2968281.197 ? > 216628.917? ops/s > > Numbers look amazing - I have to check if it's still does what it's > intended to do (so write some integration test). > > Kind regards, > > Rado > > On 10.12.2021 23:33, Remi Forax wrote: >> Hi Ty, >> there is a simple trick to be sure to get the best performance. >> >> When you create the VarHandle, call withInvokeExactBehavior [1] on it, >> the returned VarHandle will throw an error at runtime instead of >> trying to convert arguments. >> >> R?mi >> >> [1] >> https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/invoke/VarHandle.html#withInvokeExactBehavior() >> >> ----- Original Message ----- >>> From: "Ty Young" >>> To: "Maurizio Cimadamore" , >>> "panama-dev at openjdk.java.net'" >>> Sent: Friday, December 10, 2021 11:18:45 PM >>> Subject: Re: status of VM long loop optimizations - call for action >>> Yeah, I forgot that. Apologies. >>> >>> >>> On 12/10/21 4:06 PM, Maurizio Cimadamore wrote: >>>> Hi, >>>> I don't think the 1ns difference is real - if you look at the error in >>>> the second run is higher than that, so it's in the noise. >>>> >>>> And, since there's no loop, I don't think this specific kind of >>>> benchmark should be affected in any way by the VM improvements. What >>>> the VM can help with is to remove bound checks when you keep accessing >>>> a segment in a loop, as C2 is now able to correctly apply an >>>> optimization called "bound check elimination" or BCE. This >>>> optimization is routinely applied on Java array access, but it used to >>>> fail for memory segments because the bound of a memory segment is >>>> stored in a long variable, not an int. >>>> >>>> That said, note that you are passing inexact arguments to the var >>>> handle (e.g. you are passing an int offset instead of a long one; try >>>> to use "0L" instead of "0"). >>>> >>>> Maurizio >>>> >>>> >>>> On 10/12/2021 21:34, Ty Young wrote: >>>>> A simple write benchmark I had already made for specialized >>>>> VarHandles(AKA insertCoordinates) seems to get about 1ns consistently >>>>> faster, so I guess these changes helped a bit? >>>>> >>>>> >>>>> Before: >>>>> >>>>> >>>>> Benchmark??????????????????????????????????? Mode? Cnt Score Error >>>>> Units >>>>> VarHandleBenchmark.genericHandleBenchmark??? avgt??? 5 21.155 ? >>>>> 0.145? ns/op >>>>> VarHandleBenchmark.specFinalHandleBenchmark? avgt??? 5 0.678 ? >>>>> 0.201? ns/op >>>>> VarHandleBenchmark.specHandleBenchmark?????? avgt??? 5 17.323 ? >>>>> 1.324? ns/op >>>>> >>>>> >>>>> After: >>>>> >>>>> >>>>> Benchmark??????????????????????????????????? Mode? Cnt Score Error >>>>> Units >>>>> VarHandleBenchmark.genericHandleBenchmark??? avgt??? 5 20.304 ? >>>>> 1.466? ns/op >>>>> VarHandleBenchmark.specFinalHandleBenchmark? avgt??? 5 0.652 ? >>>>> 0.156? ns/op >>>>> VarHandleBenchmark.specHandleBenchmark?????? avgt??? 5 17.266 ? >>>>> 1.712? ns/op >>>>> >>>>> >>>>> Benchmark: >>>>> >>>>> >>>>> ???? public static final MemorySegment SEGMENT = >>>>> MemorySegment.allocateNative(ValueLayout.JAVA_INT, >>>>> ResourceScope.newSharedScope()); >>>>> >>>>> ???? public static final VarHandle GENERIC_HANDLE = >>>>> MemoryHandles.varHandle(ValueLayout.JAVA_INT); >>>>> >>>>> ???? public static VarHandle SPEC_HANDLE = >>>>> MemoryHandles.insertCoordinates(GENERIC_HANDLE, 0, SEGMENT, 0); >>>>> >>>>> ???? public static final VarHandle SPEC_HANDLE_FINAL = >>>>> MemoryHandles.insertCoordinates(GENERIC_HANDLE, 0, SEGMENT, 0); >>>>> >>>>> ???? @Benchmark >>>>> ???? @BenchmarkMode(Mode.AverageTime) >>>>> ???? @OutputTimeUnit(TimeUnit.NANOSECONDS) >>>>> ???? public void genericHandleBenchmark() >>>>> ???? { >>>>> ???????? GENERIC_HANDLE.set(SEGMENT, 0, 5); >>>>> ???? } >>>>> >>>>> ???? @Benchmark >>>>> ???? @BenchmarkMode(Mode.AverageTime) >>>>> ???? @OutputTimeUnit(TimeUnit.NANOSECONDS) >>>>> ???? public void specHandleBenchmark() >>>>> ???? { >>>>> ???????? SPEC_HANDLE.set(5); >>>>> ???? } >>>>> >>>>> ???? @Benchmark >>>>> ???? @BenchmarkMode(Mode.AverageTime) >>>>> ???? @OutputTimeUnit(TimeUnit.NANOSECONDS) >>>>> ???? public void specFinalHandleBenchmark() >>>>> ???? { >>>>> ???????? SPEC_HANDLE_FINAL.set(5); >>>>> ???? } >>>>> >>>>> >>>>> Sort of off-topic but... I don't remember anyone saying previously >>>>> that insertCoordinates would give that big of a difference(or any at >>>>> all!) so it's surprising to me. I was expecting a performance >>>>> decrease due to the handle no longer being static-final. Can javac >>>>> maybe optimize this so that any case where: >>>>> >>>>> >>>>> GENERIC_HANDLE.set(SEGMENT, 0, 5); >>>>> >>>>> >>>>> is, an optimized VarHandle is created at compile time that is >>>>> equivalent to SPEC_HANDLE and inserted there instead? >>>>> >>>>> >>>>> On 12/10/21 4:55 AM, Maurizio Cimadamore wrote: >>>>>> (resending since mailing lists were down yesterday - I apologize if >>>>>> this results in duplicates). >>>>>> >>>>>> Hi, >>>>>> few days ago some VM enhancements were integrated [1, 2], so it is >>>>>> time to take a look again at where we are. >>>>>> >>>>>> I put together a branch which removes all workarounds (both for long >>>>>> loops and for alignment checks): >>>>>> >>>>>> https://github.com/mcimadamore/jdk/tree/long_loop_workarounds_removal >>>>>> >>>>>> >>>>>> I also ran memory access benchmarks before/after, to see what the >>>>>> difference is like - here's a visual report: >>>>>> >>>>>> https://jmh.morethan.io/?gists=dfa7075db33f7e6a2690ac80a64aa252,7f894f48460a6a0c9891cbe3158b43a7 >>>>>> >>>>>> >>>>>> >>>>>> Overall, I think the numbers are solid. The branch w/o workarounds >>>>>> keep up with mainline in basically all cases but one (UnrolledAccess >>>>>> - this code pattern needs more work in the VM, but Roland Westrelin >>>>>> has identified a possible fix for it). In some cases (parallel >>>>>> tests) we see quite a big jump forward. >>>>>> >>>>>> I think it's hard to say how these results will translate in real >>>>>> world - my gut feeling is that the simpler bound checking logic will >>>>>> almost invariably result in performance improvements with more >>>>>> complex code patterns, despite what synthetic benchmark might say >>>>>> (the current logic in mainline is fragile as it has to guard against >>>>>> integer overflow, which in turns sometimes kills BCE optimizations). >>>>>> >>>>>> So I'd be inclined to integrate these changes in 18. >>>>>> >>>>>> If you gave a project that works agaist the Java 18 API, it would be >>>>>> very helpful for us if you could try it on the above branch and >>>>>> report back. This will help us make a more informed decision. >>>>>> >>>>>> Cheers >>>>>> Maurizio >>>>>> >>>>>> [1] - https://bugs.openjdk.java.net/browse/JDK-8276116 >>>>>> [2] - https://bugs.openjdk.java.net/browse/JDK-8277850 >>>>>> >>>>>> From maurizio.cimadamore at oracle.com Sat Dec 11 22:30:01 2021 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Sat, 11 Dec 2021 22:30:01 +0000 Subject: status of VM long loop optimizations - call for action In-Reply-To: References: <4072546c-e646-2ffd-6d01-af55e0cb8381@gmail.com> <7d330c42-1438-852e-f53f-7a74c6e5d3d3@gmail.com> <243775208.1333800.1639175610750.JavaMail.zimbra@u-pem.fr> Message-ID: Thanks Rado, seems like we're in the same ballpark? (which is great, since we're removing a lot of complexity from the implementation) (P.S. it's impressive how much faster your implementation is compared to JDK sockets, in the 2nd and 3rd bench). Maurizio On 11/12/2021 16:38, Rado Smogura wrote: > Hi all, > > > Just for comparison, run against April commits > > > "Before" > > Benchmark????????????????????????? Mode? Cnt??????? Score Error Units > SocketReadJdk.teatRead4k????????? thrpt??? 5?? 939997.688 ? 74877.602? > ops/s > SocketReadJdk.testRead16b???????? thrpt??? 5? 1881053.005 ? 72637.626? > ops/s > SocketReadJdk.testRead8bOffset??? thrpt??? 5? 1924527.582 ? 38308.317? > ops/s > SocketReadPosix.teatRead4k??????? thrpt??? 5? 1157621.341 ? > 106649.696? ops/s > SocketReadPosix.testRead16b?????? thrpt??? 5? 3059826.951 ? > 232852.053? ops/s > SocketReadPosix.testRead8bOffset? thrpt??? 5? 2983402.371 ? > 269646.104? ops/s > > > "Current" - other runs > Benchmark????????????????????????? Mode? Cnt??????? Score Error Units > Benchmark????????????????????????? Mode? Cnt??????? Score Error Units > SocketReadPosix.teatRead4k??????? thrpt??? 5? 1163288.078 ? > 263855.161? ops/s > SocketReadPosix.testRead16b?????? thrpt??? 5? 3118810.213 ? 68389.408? > ops/s > SocketReadPosix.testRead8bOffset? thrpt??? 5? 2696627.066 ? > 297527.130? ops/s > > I have to point out that this benchmark is not perfect, as it really > reads data from the back server, so other noise can apply. > > BR, > > Rado > >> Hi Maurizio, >> >> >> Checked against JExtract branch 2617fbfa3050913d34906f87027b8be8f10e53a9 >> >> Project: >> https://urldefense.com/v3/__https://github.com/rsmogura/panama-io__;!!ACWV5N9M2RV99hQ!eHJDUHk-4w7ACAv4d-zx4jrdqx8ZXOjSs2e8nfl6E_dVpYHxULfx83N2zQYlpyZ0FiCfiSk$ >> >> Benchmark????????????????????????? Mode? Cnt??????? Score Error Units >> SocketReadJdk.teatRead4k????????? thrpt??? 5?? 947424.435 ? >> 74922.610? ops/s >> SocketReadJdk.testRead16b???????? thrpt??? 5? 1823338.685 ? >> 33626.860? ops/s >> SocketReadJdk.testRead8bOffset??? thrpt??? 5? 1817956.804 ? >> 25456.785? ops/s >> SocketReadPosix.teatRead4k??????? thrpt??? 5? 1205470.257 ? >> 548343.499? ops/s >> SocketReadPosix.testRead16b?????? thrpt??? 5? 2710119.664 ? >> 227053.749? ops/s >> SocketReadPosix.testRead8bOffset? thrpt??? 5? 2968281.197 ? >> 216628.917? ops/s >> >> Numbers look amazing - I have to check if it's still does what it's >> intended to do (so write some integration test). >> >> Kind regards, >> >> Rado >> >> On 10.12.2021 23:33, Remi Forax wrote: >>> Hi Ty, >>> there is a simple trick to be sure to get the best performance. >>> >>> When you create the VarHandle, call withInvokeExactBehavior [1] on it, >>> the returned VarHandle will throw an error at runtime instead of >>> trying to convert arguments. >>> >>> R?mi >>> >>> [1] >>> https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/invoke/VarHandle.html#withInvokeExactBehavior() >>> >>> ----- Original Message ----- >>>> From: "Ty Young" >>>> To: "Maurizio Cimadamore" , >>>> "panama-dev at openjdk.java.net'" >>>> Sent: Friday, December 10, 2021 11:18:45 PM >>>> Subject: Re: status of VM long loop optimizations - call for action >>>> Yeah, I forgot that. Apologies. >>>> >>>> >>>> On 12/10/21 4:06 PM, Maurizio Cimadamore wrote: >>>>> Hi, >>>>> I don't think the 1ns difference is real - if you look at the >>>>> error in >>>>> the second run is higher than that, so it's in the noise. >>>>> >>>>> And, since there's no loop, I don't think this specific kind of >>>>> benchmark should be affected in any way by the VM improvements. What >>>>> the VM can help with is to remove bound checks when you keep >>>>> accessing >>>>> a segment in a loop, as C2 is now able to correctly apply an >>>>> optimization called "bound check elimination" or BCE. This >>>>> optimization is routinely applied on Java array access, but it >>>>> used to >>>>> fail for memory segments because the bound of a memory segment is >>>>> stored in a long variable, not an int. >>>>> >>>>> That said, note that you are passing inexact arguments to the var >>>>> handle (e.g. you are passing an int offset instead of a long one; try >>>>> to use "0L" instead of "0"). >>>>> >>>>> Maurizio >>>>> >>>>> >>>>> On 10/12/2021 21:34, Ty Young wrote: >>>>>> A simple write benchmark I had already made for specialized >>>>>> VarHandles(AKA insertCoordinates) seems to get about 1ns >>>>>> consistently >>>>>> faster, so I guess these changes helped a bit? >>>>>> >>>>>> >>>>>> Before: >>>>>> >>>>>> >>>>>> Benchmark??????????????????????????????????? Mode? Cnt Score Error >>>>>> Units >>>>>> VarHandleBenchmark.genericHandleBenchmark??? avgt??? 5 21.155 ? >>>>>> 0.145? ns/op >>>>>> VarHandleBenchmark.specFinalHandleBenchmark? avgt??? 5 0.678 ? >>>>>> 0.201? ns/op >>>>>> VarHandleBenchmark.specHandleBenchmark?????? avgt??? 5 17.323 ? >>>>>> 1.324? ns/op >>>>>> >>>>>> >>>>>> After: >>>>>> >>>>>> >>>>>> Benchmark??????????????????????????????????? Mode? Cnt Score Error >>>>>> Units >>>>>> VarHandleBenchmark.genericHandleBenchmark??? avgt??? 5 20.304 ? >>>>>> 1.466? ns/op >>>>>> VarHandleBenchmark.specFinalHandleBenchmark? avgt??? 5 0.652 ? >>>>>> 0.156? ns/op >>>>>> VarHandleBenchmark.specHandleBenchmark?????? avgt??? 5 17.266 ? >>>>>> 1.712? ns/op >>>>>> >>>>>> >>>>>> Benchmark: >>>>>> >>>>>> >>>>>> ???? public static final MemorySegment SEGMENT = >>>>>> MemorySegment.allocateNative(ValueLayout.JAVA_INT, >>>>>> ResourceScope.newSharedScope()); >>>>>> >>>>>> ???? public static final VarHandle GENERIC_HANDLE = >>>>>> MemoryHandles.varHandle(ValueLayout.JAVA_INT); >>>>>> >>>>>> ???? public static VarHandle SPEC_HANDLE = >>>>>> MemoryHandles.insertCoordinates(GENERIC_HANDLE, 0, SEGMENT, 0); >>>>>> >>>>>> ???? public static final VarHandle SPEC_HANDLE_FINAL = >>>>>> MemoryHandles.insertCoordinates(GENERIC_HANDLE, 0, SEGMENT, 0); >>>>>> >>>>>> ???? @Benchmark >>>>>> ???? @BenchmarkMode(Mode.AverageTime) >>>>>> ???? @OutputTimeUnit(TimeUnit.NANOSECONDS) >>>>>> ???? public void genericHandleBenchmark() >>>>>> ???? { >>>>>> ???????? GENERIC_HANDLE.set(SEGMENT, 0, 5); >>>>>> ???? } >>>>>> >>>>>> ???? @Benchmark >>>>>> ???? @BenchmarkMode(Mode.AverageTime) >>>>>> ???? @OutputTimeUnit(TimeUnit.NANOSECONDS) >>>>>> ???? public void specHandleBenchmark() >>>>>> ???? { >>>>>> ???????? SPEC_HANDLE.set(5); >>>>>> ???? } >>>>>> >>>>>> ???? @Benchmark >>>>>> ???? @BenchmarkMode(Mode.AverageTime) >>>>>> ???? @OutputTimeUnit(TimeUnit.NANOSECONDS) >>>>>> ???? public void specFinalHandleBenchmark() >>>>>> ???? { >>>>>> ???????? SPEC_HANDLE_FINAL.set(5); >>>>>> ???? } >>>>>> >>>>>> >>>>>> Sort of off-topic but... I don't remember anyone saying previously >>>>>> that insertCoordinates would give that big of a difference(or any at >>>>>> all!) so it's surprising to me. I was expecting a performance >>>>>> decrease due to the handle no longer being static-final. Can javac >>>>>> maybe optimize this so that any case where: >>>>>> >>>>>> >>>>>> GENERIC_HANDLE.set(SEGMENT, 0, 5); >>>>>> >>>>>> >>>>>> is, an optimized VarHandle is created at compile time that is >>>>>> equivalent to SPEC_HANDLE and inserted there instead? >>>>>> >>>>>> >>>>>> On 12/10/21 4:55 AM, Maurizio Cimadamore wrote: >>>>>>> (resending since mailing lists were down yesterday - I apologize if >>>>>>> this results in duplicates). >>>>>>> >>>>>>> Hi, >>>>>>> few days ago some VM enhancements were integrated [1, 2], so it is >>>>>>> time to take a look again at where we are. >>>>>>> >>>>>>> I put together a branch which removes all workarounds (both for >>>>>>> long >>>>>>> loops and for alignment checks): >>>>>>> >>>>>>> https://urldefense.com/v3/__https://github.com/mcimadamore/jdk/tree/long_loop_workarounds_removal__;!!ACWV5N9M2RV99hQ!eHJDUHk-4w7ACAv4d-zx4jrdqx8ZXOjSs2e8nfl6E_dVpYHxULfx83N2zQYlpyZ0wgQ-IjY$ >>>>>>> >>>>>>> >>>>>>> I also ran memory access benchmarks before/after, to see what the >>>>>>> difference is like - here's a visual report: >>>>>>> >>>>>>> https://urldefense.com/v3/__https://jmh.morethan.io/?gists=dfa7075db33f7e6a2690ac80a64aa252,7f894f48460a6a0c9891cbe3158b43a7__;!!ACWV5N9M2RV99hQ!eHJDUHk-4w7ACAv4d-zx4jrdqx8ZXOjSs2e8nfl6E_dVpYHxULfx83N2zQYlpyZ0CJV9Oz8$ >>>>>>> >>>>>>> >>>>>>> >>>>>>> Overall, I think the numbers are solid. The branch w/o workarounds >>>>>>> keep up with mainline in basically all cases but one >>>>>>> (UnrolledAccess >>>>>>> - this code pattern needs more work in the VM, but Roland Westrelin >>>>>>> has identified a possible fix for it). In some cases (parallel >>>>>>> tests) we see quite a big jump forward. >>>>>>> >>>>>>> I think it's hard to say how these results will translate in real >>>>>>> world - my gut feeling is that the simpler bound checking logic >>>>>>> will >>>>>>> almost invariably result in performance improvements with more >>>>>>> complex code patterns, despite what synthetic benchmark might say >>>>>>> (the current logic in mainline is fragile as it has to guard >>>>>>> against >>>>>>> integer overflow, which in turns sometimes kills BCE >>>>>>> optimizations). >>>>>>> >>>>>>> So I'd be inclined to integrate these changes in 18. >>>>>>> >>>>>>> If you gave a project that works agaist the Java 18 API, it >>>>>>> would be >>>>>>> very helpful for us if you could try it on the above branch and >>>>>>> report back. This will help us make a more informed decision. >>>>>>> >>>>>>> Cheers >>>>>>> Maurizio >>>>>>> >>>>>>> [1] - https://bugs.openjdk.java.net/browse/JDK-8276116 >>>>>>> [2] - https://bugs.openjdk.java.net/browse/JDK-8277850 >>>>>>> >>>>>>> From john.r.rose at oracle.com Sun Dec 12 01:00:30 2021 From: john.r.rose at oracle.com (John Rose) Date: Sat, 11 Dec 2021 17:00:30 -0800 Subject: a Saturday puzzler: streaming over variable-length data Message-ID: Here?s a puzzler (actually a family of puzzlers) that occurred to me. Suppose I, as a Java and Panama programmer, need to communicate arrays of strings with native code. To be specific, let?s talk only about null-terminated UTF8 strings (on the native side). How do I make streams that encode and decode these? They should be concise and efficient. The streams should be parallel-capable, if possible. Maybe there?s a library of utilities I?m missing?? (To be very very general, all of the rest of this discussion uses UTF8 strings as a ?for instance? example, and in fact any kind of self-delimiting variable length data would be about as interesting and informative. For example, var-ints in the classic form of ?bit seven means read more bytes after this one?. Moreover, if the data is self-synchronizing, as with strings and var-ints, you can write a spliterator over it for parallel stream processing.) So, how do I make a stream over a memory segment of type `char*` that consists of a series of zero-terminated UTF8 strings, back to back? The stream should produce a series of `String` objects. The answers differ a little depending on loop termination: 0. start with a predefined count of the strings to decode, or 1. keep going right up to the upper bound of the segment, or 2. stop when an empty string (a pair of null bytes) is found. Bonus points for avoiding double scanning of the strings. This means `MS::getUtf8String` is not necessarily the best tool. (But what is, then?) Second puzzler: How to do the whole thing backwards? That is, convert a stream of Java strings back into a memory segment containing the UTF8 string bodies concatenated with trailing nulls. The result is disposed of one of these ways: A. Allocate a fresh native MS in a given session. B. Allocate a fresh heap MS in the global session. C. Store the data into a given MS at a given offset, returning the new offset, and indicating if there is more that didn?t fit. (And allowing restart at that offset, for recovery code.) The number of converted strings is also reported, corresponding to the above options: 0. return the count of strings encoded and do nothing more, or 1. return a segment whose upper bound is after the last string?s null, or 2. encode an extra empty string (a pair of null bytes) at the end. And two more puzzlers pop into mind, for an argv/envp array, of type `char**`. Here, I suppose that the stream that reads the things will walk over a pointer to the `char**` array and read each `char*` item, decoding as it goes. Again the number of items to decode can be determined 0. with a predefined array-length for the strings to decode, or 1. read to the upper bound of the segment holding the array, or 2. stop when a `NULL` array element is found. For the reverse encoding there are a bunch of options: A. Allocate a *single* fresh native MS in a given session. B. Allocate a *pair* of MS?s, with the string bodies in a native MS in a given session. C. Store the data into one or two given MS?s at one or two a given offsets, etc. And the count can similarly be represented: 0. return the count of strings encoded and do nothing more, or 1. return a segment whose upper bound is after the last array element, or 2. encode an extra empty `NULL` element at the end of the output array The options C above are tricky but some applications may choose to embrace the complexity in order to reduce end-to-end copying. That in turn suggests that maybe someone should create a library to manage blocks of working storage that accumulate data structures for eventual posting to other native code. A very highly developed framework might also emphasize pointer-free and/or position-independent data structures. The various structured packet frameworks do this, one way or another. My favorite is https://capnproto.org ! From mail at smogura.eu Mon Dec 13 08:57:01 2021 From: mail at smogura.eu (Rado Smogura) Date: Mon, 13 Dec 2021 09:57:01 +0100 Subject: status of VM long loop optimizations - call for action In-Reply-To: References: <4072546c-e646-2ffd-6d01-af55e0cb8381@gmail.com> <7d330c42-1438-852e-f53f-7a74c6e5d3d3@gmail.com> <243775208.1333800.1639175610750.JavaMail.zimbra@u-pem.fr> Message-ID: Definitely yes! I'll check later the ASM output and graphs, to see if there's something which may look strange. I really would like to see numbers with heap arrays pinning! BR, Rado P. S. I think I need to finish package it and put it into public repo - it's drop-in replacement cooperating with current JDK Socket factories. On 11.12.2021 23:30, Maurizio Cimadamore wrote: > Thanks Rado, > seems like we're in the same ballpark? (which is great, since we're > removing a lot of complexity from the implementation) > > (P.S. it's impressive how much faster your implementation is compared > to JDK sockets, in the 2nd and 3rd bench). > > Maurizio > > On 11/12/2021 16:38, Rado Smogura wrote: >> Hi all, >> >> >> Just for comparison, run against April commits >> >> >> "Before" >> >> Benchmark????????????????????????? Mode? Cnt??????? Score Error Units >> SocketReadJdk.teatRead4k????????? thrpt??? 5?? 939997.688 ? >> 74877.602? ops/s >> SocketReadJdk.testRead16b???????? thrpt??? 5? 1881053.005 ? >> 72637.626? ops/s >> SocketReadJdk.testRead8bOffset??? thrpt??? 5? 1924527.582 ? >> 38308.317? ops/s >> SocketReadPosix.teatRead4k??????? thrpt??? 5? 1157621.341 ? >> 106649.696? ops/s >> SocketReadPosix.testRead16b?????? thrpt??? 5? 3059826.951 ? >> 232852.053? ops/s >> SocketReadPosix.testRead8bOffset? thrpt??? 5? 2983402.371 ? >> 269646.104? ops/s >> >> >> "Current" - other runs >> Benchmark????????????????????????? Mode? Cnt??????? Score Error Units >> Benchmark????????????????????????? Mode? Cnt??????? Score Error Units >> SocketReadPosix.teatRead4k??????? thrpt??? 5? 1163288.078 ? >> 263855.161? ops/s >> SocketReadPosix.testRead16b?????? thrpt??? 5? 3118810.213 ? >> 68389.408? ops/s >> SocketReadPosix.testRead8bOffset? thrpt??? 5? 2696627.066 ? >> 297527.130? ops/s >> >> I have to point out that this benchmark is not perfect, as it really >> reads data from the back server, so other noise can apply. >> >> BR, >> >> Rado >> >>> Hi Maurizio, >>> >>> >>> Checked against JExtract branch >>> 2617fbfa3050913d34906f87027b8be8f10e53a9 >>> >>> Project: >>> https://urldefense.com/v3/__https://github.com/rsmogura/panama-io__;!!ACWV5N9M2RV99hQ!eHJDUHk-4w7ACAv4d-zx4jrdqx8ZXOjSs2e8nfl6E_dVpYHxULfx83N2zQYlpyZ0FiCfiSk$ >>> >>> Benchmark????????????????????????? Mode? Cnt??????? Score Error Units >>> SocketReadJdk.teatRead4k????????? thrpt??? 5?? 947424.435 ? >>> 74922.610? ops/s >>> SocketReadJdk.testRead16b???????? thrpt??? 5? 1823338.685 ? >>> 33626.860? ops/s >>> SocketReadJdk.testRead8bOffset??? thrpt??? 5? 1817956.804 ? >>> 25456.785? ops/s >>> SocketReadPosix.teatRead4k??????? thrpt??? 5? 1205470.257 ? >>> 548343.499? ops/s >>> SocketReadPosix.testRead16b?????? thrpt??? 5? 2710119.664 ? >>> 227053.749? ops/s >>> SocketReadPosix.testRead8bOffset? thrpt??? 5? 2968281.197 ? >>> 216628.917? ops/s >>> >>> Numbers look amazing - I have to check if it's still does what it's >>> intended to do (so write some integration test). >>> >>> Kind regards, >>> >>> Rado >>> >>> On 10.12.2021 23:33, Remi Forax wrote: >>>> Hi Ty, >>>> there is a simple trick to be sure to get the best performance. >>>> >>>> When you create the VarHandle, call withInvokeExactBehavior [1] on it, >>>> the returned VarHandle will throw an error at runtime instead of >>>> trying to convert arguments. >>>> >>>> R?mi >>>> >>>> [1] >>>> https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/invoke/VarHandle.html#withInvokeExactBehavior() >>>> >>>> ----- Original Message ----- >>>>> From: "Ty Young" >>>>> To: "Maurizio Cimadamore" , >>>>> "panama-dev at openjdk.java.net'" >>>>> Sent: Friday, December 10, 2021 11:18:45 PM >>>>> Subject: Re: status of VM long loop optimizations - call for action >>>>> Yeah, I forgot that. Apologies. >>>>> >>>>> >>>>> On 12/10/21 4:06 PM, Maurizio Cimadamore wrote: >>>>>> Hi, >>>>>> I don't think the 1ns difference is real - if you look at the >>>>>> error in >>>>>> the second run is higher than that, so it's in the noise. >>>>>> >>>>>> And, since there's no loop, I don't think this specific kind of >>>>>> benchmark should be affected in any way by the VM improvements. What >>>>>> the VM can help with is to remove bound checks when you keep >>>>>> accessing >>>>>> a segment in a loop, as C2 is now able to correctly apply an >>>>>> optimization called "bound check elimination" or BCE. This >>>>>> optimization is routinely applied on Java array access, but it >>>>>> used to >>>>>> fail for memory segments because the bound of a memory segment is >>>>>> stored in a long variable, not an int. >>>>>> >>>>>> That said, note that you are passing inexact arguments to the var >>>>>> handle (e.g. you are passing an int offset instead of a long one; >>>>>> try >>>>>> to use "0L" instead of "0"). >>>>>> >>>>>> Maurizio >>>>>> >>>>>> >>>>>> On 10/12/2021 21:34, Ty Young wrote: >>>>>>> A simple write benchmark I had already made for specialized >>>>>>> VarHandles(AKA insertCoordinates) seems to get about 1ns >>>>>>> consistently >>>>>>> faster, so I guess these changes helped a bit? >>>>>>> >>>>>>> >>>>>>> Before: >>>>>>> >>>>>>> >>>>>>> Benchmark??????????????????????????????????? Mode? Cnt Score Error >>>>>>> Units >>>>>>> VarHandleBenchmark.genericHandleBenchmark??? avgt??? 5 21.155 ? >>>>>>> 0.145? ns/op >>>>>>> VarHandleBenchmark.specFinalHandleBenchmark? avgt??? 5 0.678 ? >>>>>>> 0.201? ns/op >>>>>>> VarHandleBenchmark.specHandleBenchmark?????? avgt??? 5 17.323 ? >>>>>>> 1.324? ns/op >>>>>>> >>>>>>> >>>>>>> After: >>>>>>> >>>>>>> >>>>>>> Benchmark??????????????????????????????????? Mode? Cnt Score Error >>>>>>> Units >>>>>>> VarHandleBenchmark.genericHandleBenchmark??? avgt??? 5 20.304 ? >>>>>>> 1.466? ns/op >>>>>>> VarHandleBenchmark.specFinalHandleBenchmark? avgt??? 5 0.652 ? >>>>>>> 0.156? ns/op >>>>>>> VarHandleBenchmark.specHandleBenchmark?????? avgt??? 5 17.266 ? >>>>>>> 1.712? ns/op >>>>>>> >>>>>>> >>>>>>> Benchmark: >>>>>>> >>>>>>> >>>>>>> ???? public static final MemorySegment SEGMENT = >>>>>>> MemorySegment.allocateNative(ValueLayout.JAVA_INT, >>>>>>> ResourceScope.newSharedScope()); >>>>>>> >>>>>>> ???? public static final VarHandle GENERIC_HANDLE = >>>>>>> MemoryHandles.varHandle(ValueLayout.JAVA_INT); >>>>>>> >>>>>>> ???? public static VarHandle SPEC_HANDLE = >>>>>>> MemoryHandles.insertCoordinates(GENERIC_HANDLE, 0, SEGMENT, 0); >>>>>>> >>>>>>> ???? public static final VarHandle SPEC_HANDLE_FINAL = >>>>>>> MemoryHandles.insertCoordinates(GENERIC_HANDLE, 0, SEGMENT, 0); >>>>>>> >>>>>>> ???? @Benchmark >>>>>>> ???? @BenchmarkMode(Mode.AverageTime) >>>>>>> ???? @OutputTimeUnit(TimeUnit.NANOSECONDS) >>>>>>> ???? public void genericHandleBenchmark() >>>>>>> ???? { >>>>>>> ???????? GENERIC_HANDLE.set(SEGMENT, 0, 5); >>>>>>> ???? } >>>>>>> >>>>>>> ???? @Benchmark >>>>>>> ???? @BenchmarkMode(Mode.AverageTime) >>>>>>> ???? @OutputTimeUnit(TimeUnit.NANOSECONDS) >>>>>>> ???? public void specHandleBenchmark() >>>>>>> ???? { >>>>>>> ???????? SPEC_HANDLE.set(5); >>>>>>> ???? } >>>>>>> >>>>>>> ???? @Benchmark >>>>>>> ???? @BenchmarkMode(Mode.AverageTime) >>>>>>> ???? @OutputTimeUnit(TimeUnit.NANOSECONDS) >>>>>>> ???? public void specFinalHandleBenchmark() >>>>>>> ???? { >>>>>>> ???????? SPEC_HANDLE_FINAL.set(5); >>>>>>> ???? } >>>>>>> >>>>>>> >>>>>>> Sort of off-topic but... I don't remember anyone saying previously >>>>>>> that insertCoordinates would give that big of a difference(or >>>>>>> any at >>>>>>> all!) so it's surprising to me. I was expecting a performance >>>>>>> decrease due to the handle no longer being static-final. Can javac >>>>>>> maybe optimize this so that any case where: >>>>>>> >>>>>>> >>>>>>> GENERIC_HANDLE.set(SEGMENT, 0, 5); >>>>>>> >>>>>>> >>>>>>> is, an optimized VarHandle is created at compile time that is >>>>>>> equivalent to SPEC_HANDLE and inserted there instead? >>>>>>> >>>>>>> >>>>>>> On 12/10/21 4:55 AM, Maurizio Cimadamore wrote: >>>>>>>> (resending since mailing lists were down yesterday - I >>>>>>>> apologize if >>>>>>>> this results in duplicates). >>>>>>>> >>>>>>>> Hi, >>>>>>>> few days ago some VM enhancements were integrated [1, 2], so it is >>>>>>>> time to take a look again at where we are. >>>>>>>> >>>>>>>> I put together a branch which removes all workarounds (both for >>>>>>>> long >>>>>>>> loops and for alignment checks): >>>>>>>> >>>>>>>> https://urldefense.com/v3/__https://github.com/mcimadamore/jdk/tree/long_loop_workarounds_removal__;!!ACWV5N9M2RV99hQ!eHJDUHk-4w7ACAv4d-zx4jrdqx8ZXOjSs2e8nfl6E_dVpYHxULfx83N2zQYlpyZ0wgQ-IjY$ >>>>>>>> >>>>>>>> >>>>>>>> I also ran memory access benchmarks before/after, to see what the >>>>>>>> difference is like - here's a visual report: >>>>>>>> >>>>>>>> https://urldefense.com/v3/__https://jmh.morethan.io/?gists=dfa7075db33f7e6a2690ac80a64aa252,7f894f48460a6a0c9891cbe3158b43a7__;!!ACWV5N9M2RV99hQ!eHJDUHk-4w7ACAv4d-zx4jrdqx8ZXOjSs2e8nfl6E_dVpYHxULfx83N2zQYlpyZ0CJV9Oz8$ >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> Overall, I think the numbers are solid. The branch w/o workarounds >>>>>>>> keep up with mainline in basically all cases but one >>>>>>>> (UnrolledAccess >>>>>>>> - this code pattern needs more work in the VM, but Roland >>>>>>>> Westrelin >>>>>>>> has identified a possible fix for it). In some cases (parallel >>>>>>>> tests) we see quite a big jump forward. >>>>>>>> >>>>>>>> I think it's hard to say how these results will translate in real >>>>>>>> world - my gut feeling is that the simpler bound checking logic >>>>>>>> will >>>>>>>> almost invariably result in performance improvements with more >>>>>>>> complex code patterns, despite what synthetic benchmark might say >>>>>>>> (the current logic in mainline is fragile as it has to guard >>>>>>>> against >>>>>>>> integer overflow, which in turns sometimes kills BCE >>>>>>>> optimizations). >>>>>>>> >>>>>>>> So I'd be inclined to integrate these changes in 18. >>>>>>>> >>>>>>>> If you gave a project that works agaist the Java 18 API, it >>>>>>>> would be >>>>>>>> very helpful for us if you could try it on the above branch and >>>>>>>> report back. This will help us make a more informed decision. >>>>>>>> >>>>>>>> Cheers >>>>>>>> Maurizio >>>>>>>> >>>>>>>> [1] - https://bugs.openjdk.java.net/browse/JDK-8276116 >>>>>>>> [2] - https://bugs.openjdk.java.net/browse/JDK-8277850 >>>>>>>> >>>>>>>> From mcimadamore at openjdk.java.net Mon Dec 13 12:03:26 2021 From: mcimadamore at openjdk.java.net (Maurizio Cimadamore) Date: Mon, 13 Dec 2021 12:03:26 GMT Subject: [foreign-memaccess+abi] RFR: 8278151: Heap segments should handle alignment constraints in a deterministic fashion [v6] In-Reply-To: References: Message-ID: > This patch fixes the issue with alignment checks on heap segment leading to failures which depend on VM implementation details and layout choices. > > This is discussed in more details here: > https://mail.openjdk.java.net/pipermail/panama-dev/2021-November/015852.html > > The fix consists in adding a *max alignment* mask to all segments. Native segments have mask set at 0, whereas heap segment have the mask set at the element size of their backing array (e.g. 1 for `byte[]`, 2 for `short[]`/`char[]` and so forth). > > The alignment check is the computed as follows: > > > if (((address | maxAlignMask) & alignmentMask) != 0) { > throw ... > } > > > Where `address` is the long address being dereferenced, `maxAlignMask` is the max alignment associated with the segment being dereferenced, and `alignmentMask` is the alignment associated with the layout used during a dereference operation. > This patch also applies alignment checks to bulk copy operations as well, and it consolidates the way in which alignment checks are carried out (by adding a couple of helper methods, in `Utils` and `AbstractMemorySegment`, respectively). > > This patch also changes alignment errors to uniformly throw IllegalArgumentException, in all cases. > > Finally, this patch clarifies that during bulk copy and spliterator calls, the element layout alignment cannot be bigger than its size (as the size is used as a stride). > > A new test `TestHeapAlignment` has been added to check that alignment of heap segment is correctly enforced. > > Performance-wise, this patch doesn't change anything; that's because the value layout constants in `ValueLayout` are all unaligned. For code using aligned layout, some slight regression when using heap segment is possible (whereas native segment should have same performance as before). Eventually, these performance issues should disappear once [1] is fixed. > > [1] - https://bugs.openjdk.java.net/browse/JDK-8277850 Maurizio Cimadamore 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 eight additional commits since the last revision: - Address review comments - Merge branch 'foreign-memaccess+abi' into heap_align - Merge branch 'foreign-memaccess+abi' into heap_align - Check for hyper alignment in indexed getter/setters Improve javadoc (address review comment) Add more tests - Strengthen test - Improve support for skipAlignmentCheck - Add benchmarks for aligned access - Initial push ------------- Changes: - all: https://git.openjdk.java.net/panama-foreign/pull/622/files - new: https://git.openjdk.java.net/panama-foreign/pull/622/files/765e2277..23cd1b5e Webrevs: - full: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=622&range=05 - incr: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=622&range=04-05 Stats: 27448 lines in 1053 files changed: 18551 ins; 4239 del; 4658 mod Patch: https://git.openjdk.java.net/panama-foreign/pull/622.diff Fetch: git fetch https://git.openjdk.java.net/panama-foreign pull/622/head:pull/622 PR: https://git.openjdk.java.net/panama-foreign/pull/622 From jvernee at openjdk.java.net Mon Dec 13 13:27:56 2021 From: jvernee at openjdk.java.net (Jorn Vernee) Date: Mon, 13 Dec 2021 13:27:56 GMT Subject: [foreign-memaccess+abi] RFR: Remove workarounds for issue surrounding upcalls and deoptimizations. Message-ID: Please review this patch which removes the (partial) workaround in aarch64 upcall code for spilling the receiver during a deopt. This has been properly fixed in the mainline by: https://github.com/openjdk/jdk/pull/6522 instead. It also restores the lazy-customization behavior of upcalls which was removed to work around the same issue (originally added by: https://github.com/openjdk/panama-foreign/pull/553). Thanks, Jorn ------------- Commit messages: - Remove deopt spill space from aarch64 as well - Re-drop ensureCustomized Changes: https://git.openjdk.java.net/panama-foreign/pull/625/files Webrev: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=625&range=00 Stats: 24 lines in 4 files changed: 0 ins; 22 del; 2 mod Patch: https://git.openjdk.java.net/panama-foreign/pull/625.diff Fetch: git fetch https://git.openjdk.java.net/panama-foreign pull/625/head:pull/625 PR: https://git.openjdk.java.net/panama-foreign/pull/625 From mail at smogura.eu Mon Dec 13 17:50:00 2021 From: mail at smogura.eu (Rado Smogura) Date: Mon, 13 Dec 2021 18:50:00 +0100 Subject: status of VM long loop optimizations - call for action In-Reply-To: References: <4072546c-e646-2ffd-6d01-af55e0cb8381@gmail.com> <7d330c42-1438-852e-f53f-7a74c6e5d3d3@gmail.com> <243775208.1333800.1639175610750.JavaMail.zimbra@u-pem.fr> Message-ID: Hi, Checked from my side, and actually on my side this code is more complicated and there's no direct loop unrolling. Kind regards, Rado On 13.12.2021 09:57, Rado Smogura wrote: > Definitely yes! > > > I'll check later the ASM output and graphs, to see if there's > something which may look strange. > > > I really would like to see numbers with heap arrays pinning! > > > BR, > > Rado > > > P. S. I think I need to finish package it and put it into public repo > - it's drop-in replacement cooperating with current JDK Socket factories. > > On 11.12.2021 23:30, Maurizio Cimadamore wrote: >> Thanks Rado, >> seems like we're in the same ballpark? (which is great, since we're >> removing a lot of complexity from the implementation) >> >> (P.S. it's impressive how much faster your implementation is compared >> to JDK sockets, in the 2nd and 3rd bench). >> >> Maurizio >> >> On 11/12/2021 16:38, Rado Smogura wrote: >>> Hi all, >>> >>> >>> Just for comparison, run against April commits >>> >>> >>> "Before" >>> >>> Benchmark????????????????????????? Mode? Cnt??????? Score Error Units >>> SocketReadJdk.teatRead4k????????? thrpt??? 5?? 939997.688 ? >>> 74877.602? ops/s >>> SocketReadJdk.testRead16b???????? thrpt??? 5? 1881053.005 ? >>> 72637.626? ops/s >>> SocketReadJdk.testRead8bOffset??? thrpt??? 5? 1924527.582 ? >>> 38308.317? ops/s >>> SocketReadPosix.teatRead4k??????? thrpt??? 5? 1157621.341 ? >>> 106649.696? ops/s >>> SocketReadPosix.testRead16b?????? thrpt??? 5? 3059826.951 ? >>> 232852.053? ops/s >>> SocketReadPosix.testRead8bOffset? thrpt??? 5? 2983402.371 ? >>> 269646.104? ops/s >>> >>> >>> "Current" - other runs >>> Benchmark????????????????????????? Mode? Cnt??????? Score Error Units >>> Benchmark????????????????????????? Mode? Cnt??????? Score Error Units >>> SocketReadPosix.teatRead4k??????? thrpt??? 5? 1163288.078 ? >>> 263855.161? ops/s >>> SocketReadPosix.testRead16b?????? thrpt??? 5? 3118810.213 ? >>> 68389.408? ops/s >>> SocketReadPosix.testRead8bOffset? thrpt??? 5? 2696627.066 ? >>> 297527.130? ops/s >>> >>> I have to point out that this benchmark is not perfect, as it really >>> reads data from the back server, so other noise can apply. >>> >>> BR, >>> >>> Rado >>> >>>> Hi Maurizio, >>>> >>>> >>>> Checked against JExtract branch >>>> 2617fbfa3050913d34906f87027b8be8f10e53a9 >>>> >>>> Project: >>>> https://urldefense.com/v3/__https://github.com/rsmogura/panama-io__;!!ACWV5N9M2RV99hQ!eHJDUHk-4w7ACAv4d-zx4jrdqx8ZXOjSs2e8nfl6E_dVpYHxULfx83N2zQYlpyZ0FiCfiSk$ >>>> >>>> Benchmark????????????????????????? Mode? Cnt??????? Score Error Units >>>> SocketReadJdk.teatRead4k????????? thrpt??? 5?? 947424.435 ? >>>> 74922.610? ops/s >>>> SocketReadJdk.testRead16b???????? thrpt??? 5? 1823338.685 ? >>>> 33626.860? ops/s >>>> SocketReadJdk.testRead8bOffset??? thrpt??? 5? 1817956.804 ? >>>> 25456.785? ops/s >>>> SocketReadPosix.teatRead4k??????? thrpt??? 5? 1205470.257 ? >>>> 548343.499? ops/s >>>> SocketReadPosix.testRead16b?????? thrpt??? 5? 2710119.664 ? >>>> 227053.749? ops/s >>>> SocketReadPosix.testRead8bOffset? thrpt??? 5? 2968281.197 ? >>>> 216628.917? ops/s >>>> >>>> Numbers look amazing - I have to check if it's still does what it's >>>> intended to do (so write some integration test). >>>> >>>> Kind regards, >>>> >>>> Rado >>>> >>>> On 10.12.2021 23:33, Remi Forax wrote: >>>>> Hi Ty, >>>>> there is a simple trick to be sure to get the best performance. >>>>> >>>>> When you create the VarHandle, call withInvokeExactBehavior [1] on >>>>> it, >>>>> the returned VarHandle will throw an error at runtime instead of >>>>> trying to convert arguments. >>>>> >>>>> R?mi >>>>> >>>>> [1] >>>>> https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/invoke/VarHandle.html#withInvokeExactBehavior() >>>>> >>>>> ----- Original Message ----- >>>>>> From: "Ty Young" >>>>>> To: "Maurizio Cimadamore" , >>>>>> "panama-dev at openjdk.java.net'" >>>>>> Sent: Friday, December 10, 2021 11:18:45 PM >>>>>> Subject: Re: status of VM long loop optimizations - call for action >>>>>> Yeah, I forgot that. Apologies. >>>>>> >>>>>> >>>>>> On 12/10/21 4:06 PM, Maurizio Cimadamore wrote: >>>>>>> Hi, >>>>>>> I don't think the 1ns difference is real - if you look at the >>>>>>> error in >>>>>>> the second run is higher than that, so it's in the noise. >>>>>>> >>>>>>> And, since there's no loop, I don't think this specific kind of >>>>>>> benchmark should be affected in any way by the VM improvements. >>>>>>> What >>>>>>> the VM can help with is to remove bound checks when you keep >>>>>>> accessing >>>>>>> a segment in a loop, as C2 is now able to correctly apply an >>>>>>> optimization called "bound check elimination" or BCE. This >>>>>>> optimization is routinely applied on Java array access, but it >>>>>>> used to >>>>>>> fail for memory segments because the bound of a memory segment is >>>>>>> stored in a long variable, not an int. >>>>>>> >>>>>>> That said, note that you are passing inexact arguments to the var >>>>>>> handle (e.g. you are passing an int offset instead of a long >>>>>>> one; try >>>>>>> to use "0L" instead of "0"). >>>>>>> >>>>>>> Maurizio >>>>>>> >>>>>>> >>>>>>> On 10/12/2021 21:34, Ty Young wrote: >>>>>>>> A simple write benchmark I had already made for specialized >>>>>>>> VarHandles(AKA insertCoordinates) seems to get about 1ns >>>>>>>> consistently >>>>>>>> faster, so I guess these changes helped a bit? >>>>>>>> >>>>>>>> >>>>>>>> Before: >>>>>>>> >>>>>>>> >>>>>>>> Benchmark??????????????????????????????????? Mode Cnt Score Error >>>>>>>> Units >>>>>>>> VarHandleBenchmark.genericHandleBenchmark??? avgt 5 21.155 ? >>>>>>>> 0.145? ns/op >>>>>>>> VarHandleBenchmark.specFinalHandleBenchmark? avgt 5 0.678 ? >>>>>>>> 0.201? ns/op >>>>>>>> VarHandleBenchmark.specHandleBenchmark?????? avgt 5 17.323 ? >>>>>>>> 1.324? ns/op >>>>>>>> >>>>>>>> >>>>>>>> After: >>>>>>>> >>>>>>>> >>>>>>>> Benchmark??????????????????????????????????? Mode Cnt Score Error >>>>>>>> Units >>>>>>>> VarHandleBenchmark.genericHandleBenchmark??? avgt 5 20.304 ? >>>>>>>> 1.466? ns/op >>>>>>>> VarHandleBenchmark.specFinalHandleBenchmark? avgt 5 0.652 ? >>>>>>>> 0.156? ns/op >>>>>>>> VarHandleBenchmark.specHandleBenchmark?????? avgt 5 17.266 ? >>>>>>>> 1.712? ns/op >>>>>>>> >>>>>>>> >>>>>>>> Benchmark: >>>>>>>> >>>>>>>> >>>>>>>> ???? public static final MemorySegment SEGMENT = >>>>>>>> MemorySegment.allocateNative(ValueLayout.JAVA_INT, >>>>>>>> ResourceScope.newSharedScope()); >>>>>>>> >>>>>>>> ???? public static final VarHandle GENERIC_HANDLE = >>>>>>>> MemoryHandles.varHandle(ValueLayout.JAVA_INT); >>>>>>>> >>>>>>>> ???? public static VarHandle SPEC_HANDLE = >>>>>>>> MemoryHandles.insertCoordinates(GENERIC_HANDLE, 0, SEGMENT, 0); >>>>>>>> >>>>>>>> ???? public static final VarHandle SPEC_HANDLE_FINAL = >>>>>>>> MemoryHandles.insertCoordinates(GENERIC_HANDLE, 0, SEGMENT, 0); >>>>>>>> >>>>>>>> ???? @Benchmark >>>>>>>> ???? @BenchmarkMode(Mode.AverageTime) >>>>>>>> ???? @OutputTimeUnit(TimeUnit.NANOSECONDS) >>>>>>>> ???? public void genericHandleBenchmark() >>>>>>>> ???? { >>>>>>>> ???????? GENERIC_HANDLE.set(SEGMENT, 0, 5); >>>>>>>> ???? } >>>>>>>> >>>>>>>> ???? @Benchmark >>>>>>>> ???? @BenchmarkMode(Mode.AverageTime) >>>>>>>> ???? @OutputTimeUnit(TimeUnit.NANOSECONDS) >>>>>>>> ???? public void specHandleBenchmark() >>>>>>>> ???? { >>>>>>>> ???????? SPEC_HANDLE.set(5); >>>>>>>> ???? } >>>>>>>> >>>>>>>> ???? @Benchmark >>>>>>>> ???? @BenchmarkMode(Mode.AverageTime) >>>>>>>> ???? @OutputTimeUnit(TimeUnit.NANOSECONDS) >>>>>>>> ???? public void specFinalHandleBenchmark() >>>>>>>> ???? { >>>>>>>> ???????? SPEC_HANDLE_FINAL.set(5); >>>>>>>> ???? } >>>>>>>> >>>>>>>> >>>>>>>> Sort of off-topic but... I don't remember anyone saying previously >>>>>>>> that insertCoordinates would give that big of a difference(or >>>>>>>> any at >>>>>>>> all!) so it's surprising to me. I was expecting a performance >>>>>>>> decrease due to the handle no longer being static-final. Can javac >>>>>>>> maybe optimize this so that any case where: >>>>>>>> >>>>>>>> >>>>>>>> GENERIC_HANDLE.set(SEGMENT, 0, 5); >>>>>>>> >>>>>>>> >>>>>>>> is, an optimized VarHandle is created at compile time that is >>>>>>>> equivalent to SPEC_HANDLE and inserted there instead? >>>>>>>> >>>>>>>> >>>>>>>> On 12/10/21 4:55 AM, Maurizio Cimadamore wrote: >>>>>>>>> (resending since mailing lists were down yesterday - I >>>>>>>>> apologize if >>>>>>>>> this results in duplicates). >>>>>>>>> >>>>>>>>> Hi, >>>>>>>>> few days ago some VM enhancements were integrated [1, 2], so >>>>>>>>> it is >>>>>>>>> time to take a look again at where we are. >>>>>>>>> >>>>>>>>> I put together a branch which removes all workarounds (both >>>>>>>>> for long >>>>>>>>> loops and for alignment checks): >>>>>>>>> >>>>>>>>> https://urldefense.com/v3/__https://github.com/mcimadamore/jdk/tree/long_loop_workarounds_removal__;!!ACWV5N9M2RV99hQ!eHJDUHk-4w7ACAv4d-zx4jrdqx8ZXOjSs2e8nfl6E_dVpYHxULfx83N2zQYlpyZ0wgQ-IjY$ >>>>>>>>> >>>>>>>>> >>>>>>>>> I also ran memory access benchmarks before/after, to see what the >>>>>>>>> difference is like - here's a visual report: >>>>>>>>> >>>>>>>>> https://urldefense.com/v3/__https://jmh.morethan.io/?gists=dfa7075db33f7e6a2690ac80a64aa252,7f894f48460a6a0c9891cbe3158b43a7__;!!ACWV5N9M2RV99hQ!eHJDUHk-4w7ACAv4d-zx4jrdqx8ZXOjSs2e8nfl6E_dVpYHxULfx83N2zQYlpyZ0CJV9Oz8$ >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> Overall, I think the numbers are solid. The branch w/o >>>>>>>>> workarounds >>>>>>>>> keep up with mainline in basically all cases but one >>>>>>>>> (UnrolledAccess >>>>>>>>> - this code pattern needs more work in the VM, but Roland >>>>>>>>> Westrelin >>>>>>>>> has identified a possible fix for it). In some cases (parallel >>>>>>>>> tests) we see quite a big jump forward. >>>>>>>>> >>>>>>>>> I think it's hard to say how these results will translate in real >>>>>>>>> world - my gut feeling is that the simpler bound checking >>>>>>>>> logic will >>>>>>>>> almost invariably result in performance improvements with more >>>>>>>>> complex code patterns, despite what synthetic benchmark might say >>>>>>>>> (the current logic in mainline is fragile as it has to guard >>>>>>>>> against >>>>>>>>> integer overflow, which in turns sometimes kills BCE >>>>>>>>> optimizations). >>>>>>>>> >>>>>>>>> So I'd be inclined to integrate these changes in 18. >>>>>>>>> >>>>>>>>> If you gave a project that works agaist the Java 18 API, it >>>>>>>>> would be >>>>>>>>> very helpful for us if you could try it on the above branch and >>>>>>>>> report back. This will help us make a more informed decision. >>>>>>>>> >>>>>>>>> Cheers >>>>>>>>> Maurizio >>>>>>>>> >>>>>>>>> [1] - https://bugs.openjdk.java.net/browse/JDK-8276116 >>>>>>>>> [2] - https://bugs.openjdk.java.net/browse/JDK-8277850 >>>>>>>>> >>>>>>>>> From maurizio.cimadamore at oracle.com Mon Dec 13 19:27:13 2021 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Mon, 13 Dec 2021 19:27:13 +0000 Subject: status of VM long loop optimizations - call for action In-Reply-To: References: <4072546c-e646-2ffd-6d01-af55e0cb8381@gmail.com> <7d330c42-1438-852e-f53f-7a74c6e5d3d3@gmail.com> <243775208.1333800.1639175610750.JavaMail.zimbra@u-pem.fr> Message-ID: On 13/12/2021 17:50, Rado Smogura wrote: > Hi, > > > Checked from my side, and actually on my side this code is more > complicated and there's no direct loop unrolling. Which code is more complicated? The one with the new patch which enabled the VM to do its job? If that's the case it would be great if we could boil it down to a simple-ish reproducer. Thanks Maurizio > > > Kind regards, > > Rado > > On 13.12.2021 09:57, Rado Smogura wrote: >> Definitely yes! >> >> >> I'll check later the ASM output and graphs, to see if there's >> something which may look strange. >> >> >> I really would like to see numbers with heap arrays pinning! >> >> >> BR, >> >> Rado >> >> >> P. S. I think I need to finish package it and put it into public repo >> - it's drop-in replacement cooperating with current JDK Socket >> factories. >> >> On 11.12.2021 23:30, Maurizio Cimadamore wrote: >>> Thanks Rado, >>> seems like we're in the same ballpark? (which is great, since we're >>> removing a lot of complexity from the implementation) >>> >>> (P.S. it's impressive how much faster your implementation is >>> compared to JDK sockets, in the 2nd and 3rd bench). >>> >>> Maurizio >>> >>> On 11/12/2021 16:38, Rado Smogura wrote: >>>> Hi all, >>>> >>>> >>>> Just for comparison, run against April commits >>>> >>>> >>>> "Before" >>>> >>>> Benchmark????????????????????????? Mode? Cnt??????? Score Error Units >>>> SocketReadJdk.teatRead4k????????? thrpt??? 5?? 939997.688 ? >>>> 74877.602? ops/s >>>> SocketReadJdk.testRead16b???????? thrpt??? 5? 1881053.005 ? >>>> 72637.626? ops/s >>>> SocketReadJdk.testRead8bOffset??? thrpt??? 5? 1924527.582 ? >>>> 38308.317? ops/s >>>> SocketReadPosix.teatRead4k??????? thrpt??? 5? 1157621.341 ? >>>> 106649.696? ops/s >>>> SocketReadPosix.testRead16b?????? thrpt??? 5? 3059826.951 ? >>>> 232852.053? ops/s >>>> SocketReadPosix.testRead8bOffset? thrpt??? 5? 2983402.371 ? >>>> 269646.104? ops/s >>>> >>>> >>>> "Current" - other runs >>>> Benchmark????????????????????????? Mode? Cnt??????? Score Error Units >>>> Benchmark????????????????????????? Mode? Cnt??????? Score Error Units >>>> SocketReadPosix.teatRead4k??????? thrpt??? 5? 1163288.078 ? >>>> 263855.161? ops/s >>>> SocketReadPosix.testRead16b?????? thrpt??? 5? 3118810.213 ? >>>> 68389.408? ops/s >>>> SocketReadPosix.testRead8bOffset? thrpt??? 5? 2696627.066 ? >>>> 297527.130? ops/s >>>> >>>> I have to point out that this benchmark is not perfect, as it >>>> really reads data from the back server, so other noise can apply. >>>> >>>> BR, >>>> >>>> Rado >>>> >>>>> Hi Maurizio, >>>>> >>>>> >>>>> Checked against JExtract branch >>>>> 2617fbfa3050913d34906f87027b8be8f10e53a9 >>>>> >>>>> Project: >>>>> https://urldefense.com/v3/__https://github.com/rsmogura/panama-io__;!!ACWV5N9M2RV99hQ!eHJDUHk-4w7ACAv4d-zx4jrdqx8ZXOjSs2e8nfl6E_dVpYHxULfx83N2zQYlpyZ0FiCfiSk$ >>>>> >>>>> Benchmark????????????????????????? Mode? Cnt??????? Score Error Units >>>>> SocketReadJdk.teatRead4k????????? thrpt??? 5?? 947424.435 ? >>>>> 74922.610? ops/s >>>>> SocketReadJdk.testRead16b???????? thrpt??? 5? 1823338.685 ? >>>>> 33626.860? ops/s >>>>> SocketReadJdk.testRead8bOffset??? thrpt??? 5? 1817956.804 ? >>>>> 25456.785? ops/s >>>>> SocketReadPosix.teatRead4k??????? thrpt??? 5? 1205470.257 ? >>>>> 548343.499? ops/s >>>>> SocketReadPosix.testRead16b?????? thrpt??? 5? 2710119.664 ? >>>>> 227053.749? ops/s >>>>> SocketReadPosix.testRead8bOffset? thrpt??? 5? 2968281.197 ? >>>>> 216628.917? ops/s >>>>> >>>>> Numbers look amazing - I have to check if it's still does what >>>>> it's intended to do (so write some integration test). >>>>> >>>>> Kind regards, >>>>> >>>>> Rado >>>>> >>>>> On 10.12.2021 23:33, Remi Forax wrote: >>>>>> Hi Ty, >>>>>> there is a simple trick to be sure to get the best performance. >>>>>> >>>>>> When you create the VarHandle, call withInvokeExactBehavior [1] >>>>>> on it, >>>>>> the returned VarHandle will throw an error at runtime instead of >>>>>> trying to convert arguments. >>>>>> >>>>>> R?mi >>>>>> >>>>>> [1] >>>>>> https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/invoke/VarHandle.html#withInvokeExactBehavior() >>>>>> >>>>>> ----- Original Message ----- >>>>>>> From: "Ty Young" >>>>>>> To: "Maurizio Cimadamore" , >>>>>>> "panama-dev at openjdk.java.net'" >>>>>>> Sent: Friday, December 10, 2021 11:18:45 PM >>>>>>> Subject: Re: status of VM long loop optimizations - call for action >>>>>>> Yeah, I forgot that. Apologies. >>>>>>> >>>>>>> >>>>>>> On 12/10/21 4:06 PM, Maurizio Cimadamore wrote: >>>>>>>> Hi, >>>>>>>> I don't think the 1ns difference is real - if you look at the >>>>>>>> error in >>>>>>>> the second run is higher than that, so it's in the noise. >>>>>>>> >>>>>>>> And, since there's no loop, I don't think this specific kind of >>>>>>>> benchmark should be affected in any way by the VM improvements. >>>>>>>> What >>>>>>>> the VM can help with is to remove bound checks when you keep >>>>>>>> accessing >>>>>>>> a segment in a loop, as C2 is now able to correctly apply an >>>>>>>> optimization called "bound check elimination" or BCE. This >>>>>>>> optimization is routinely applied on Java array access, but it >>>>>>>> used to >>>>>>>> fail for memory segments because the bound of a memory segment is >>>>>>>> stored in a long variable, not an int. >>>>>>>> >>>>>>>> That said, note that you are passing inexact arguments to the var >>>>>>>> handle (e.g. you are passing an int offset instead of a long >>>>>>>> one; try >>>>>>>> to use "0L" instead of "0"). >>>>>>>> >>>>>>>> Maurizio >>>>>>>> >>>>>>>> >>>>>>>> On 10/12/2021 21:34, Ty Young wrote: >>>>>>>>> A simple write benchmark I had already made for specialized >>>>>>>>> VarHandles(AKA insertCoordinates) seems to get about 1ns >>>>>>>>> consistently >>>>>>>>> faster, so I guess these changes helped a bit? >>>>>>>>> >>>>>>>>> >>>>>>>>> Before: >>>>>>>>> >>>>>>>>> >>>>>>>>> Benchmark??????????????????????????????????? Mode Cnt Score Error >>>>>>>>> Units >>>>>>>>> VarHandleBenchmark.genericHandleBenchmark??? avgt 5 21.155 ? >>>>>>>>> 0.145? ns/op >>>>>>>>> VarHandleBenchmark.specFinalHandleBenchmark? avgt 5 0.678 ? >>>>>>>>> 0.201? ns/op >>>>>>>>> VarHandleBenchmark.specHandleBenchmark?????? avgt 5 17.323 ? >>>>>>>>> 1.324? ns/op >>>>>>>>> >>>>>>>>> >>>>>>>>> After: >>>>>>>>> >>>>>>>>> >>>>>>>>> Benchmark??????????????????????????????????? Mode Cnt Score Error >>>>>>>>> Units >>>>>>>>> VarHandleBenchmark.genericHandleBenchmark??? avgt 5 20.304 ? >>>>>>>>> 1.466? ns/op >>>>>>>>> VarHandleBenchmark.specFinalHandleBenchmark? avgt 5 0.652 ? >>>>>>>>> 0.156? ns/op >>>>>>>>> VarHandleBenchmark.specHandleBenchmark?????? avgt 5 17.266 ? >>>>>>>>> 1.712? ns/op >>>>>>>>> >>>>>>>>> >>>>>>>>> Benchmark: >>>>>>>>> >>>>>>>>> >>>>>>>>> ???? public static final MemorySegment SEGMENT = >>>>>>>>> MemorySegment.allocateNative(ValueLayout.JAVA_INT, >>>>>>>>> ResourceScope.newSharedScope()); >>>>>>>>> >>>>>>>>> ???? public static final VarHandle GENERIC_HANDLE = >>>>>>>>> MemoryHandles.varHandle(ValueLayout.JAVA_INT); >>>>>>>>> >>>>>>>>> ???? public static VarHandle SPEC_HANDLE = >>>>>>>>> MemoryHandles.insertCoordinates(GENERIC_HANDLE, 0, SEGMENT, 0); >>>>>>>>> >>>>>>>>> ???? public static final VarHandle SPEC_HANDLE_FINAL = >>>>>>>>> MemoryHandles.insertCoordinates(GENERIC_HANDLE, 0, SEGMENT, 0); >>>>>>>>> >>>>>>>>> ???? @Benchmark >>>>>>>>> ???? @BenchmarkMode(Mode.AverageTime) >>>>>>>>> ???? @OutputTimeUnit(TimeUnit.NANOSECONDS) >>>>>>>>> ???? public void genericHandleBenchmark() >>>>>>>>> ???? { >>>>>>>>> ???????? GENERIC_HANDLE.set(SEGMENT, 0, 5); >>>>>>>>> ???? } >>>>>>>>> >>>>>>>>> ???? @Benchmark >>>>>>>>> ???? @BenchmarkMode(Mode.AverageTime) >>>>>>>>> ???? @OutputTimeUnit(TimeUnit.NANOSECONDS) >>>>>>>>> ???? public void specHandleBenchmark() >>>>>>>>> ???? { >>>>>>>>> ???????? SPEC_HANDLE.set(5); >>>>>>>>> ???? } >>>>>>>>> >>>>>>>>> ???? @Benchmark >>>>>>>>> ???? @BenchmarkMode(Mode.AverageTime) >>>>>>>>> ???? @OutputTimeUnit(TimeUnit.NANOSECONDS) >>>>>>>>> ???? public void specFinalHandleBenchmark() >>>>>>>>> ???? { >>>>>>>>> ???????? SPEC_HANDLE_FINAL.set(5); >>>>>>>>> ???? } >>>>>>>>> >>>>>>>>> >>>>>>>>> Sort of off-topic but... I don't remember anyone saying >>>>>>>>> previously >>>>>>>>> that insertCoordinates would give that big of a difference(or >>>>>>>>> any at >>>>>>>>> all!) so it's surprising to me. I was expecting a performance >>>>>>>>> decrease due to the handle no longer being static-final. Can >>>>>>>>> javac >>>>>>>>> maybe optimize this so that any case where: >>>>>>>>> >>>>>>>>> >>>>>>>>> GENERIC_HANDLE.set(SEGMENT, 0, 5); >>>>>>>>> >>>>>>>>> >>>>>>>>> is, an optimized VarHandle is created at compile time that is >>>>>>>>> equivalent to SPEC_HANDLE and inserted there instead? >>>>>>>>> >>>>>>>>> >>>>>>>>> On 12/10/21 4:55 AM, Maurizio Cimadamore wrote: >>>>>>>>>> (resending since mailing lists were down yesterday - I >>>>>>>>>> apologize if >>>>>>>>>> this results in duplicates). >>>>>>>>>> >>>>>>>>>> Hi, >>>>>>>>>> few days ago some VM enhancements were integrated [1, 2], so >>>>>>>>>> it is >>>>>>>>>> time to take a look again at where we are. >>>>>>>>>> >>>>>>>>>> I put together a branch which removes all workarounds (both >>>>>>>>>> for long >>>>>>>>>> loops and for alignment checks): >>>>>>>>>> >>>>>>>>>> https://urldefense.com/v3/__https://github.com/mcimadamore/jdk/tree/long_loop_workarounds_removal__;!!ACWV5N9M2RV99hQ!eHJDUHk-4w7ACAv4d-zx4jrdqx8ZXOjSs2e8nfl6E_dVpYHxULfx83N2zQYlpyZ0wgQ-IjY$ >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> I also ran memory access benchmarks before/after, to see what >>>>>>>>>> the >>>>>>>>>> difference is like - here's a visual report: >>>>>>>>>> >>>>>>>>>> https://urldefense.com/v3/__https://jmh.morethan.io/?gists=dfa7075db33f7e6a2690ac80a64aa252,7f894f48460a6a0c9891cbe3158b43a7__;!!ACWV5N9M2RV99hQ!eHJDUHk-4w7ACAv4d-zx4jrdqx8ZXOjSs2e8nfl6E_dVpYHxULfx83N2zQYlpyZ0CJV9Oz8$ >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Overall, I think the numbers are solid. The branch w/o >>>>>>>>>> workarounds >>>>>>>>>> keep up with mainline in basically all cases but one >>>>>>>>>> (UnrolledAccess >>>>>>>>>> - this code pattern needs more work in the VM, but Roland >>>>>>>>>> Westrelin >>>>>>>>>> has identified a possible fix for it). In some cases (parallel >>>>>>>>>> tests) we see quite a big jump forward. >>>>>>>>>> >>>>>>>>>> I think it's hard to say how these results will translate in >>>>>>>>>> real >>>>>>>>>> world - my gut feeling is that the simpler bound checking >>>>>>>>>> logic will >>>>>>>>>> almost invariably result in performance improvements with more >>>>>>>>>> complex code patterns, despite what synthetic benchmark might >>>>>>>>>> say >>>>>>>>>> (the current logic in mainline is fragile as it has to guard >>>>>>>>>> against >>>>>>>>>> integer overflow, which in turns sometimes kills BCE >>>>>>>>>> optimizations). >>>>>>>>>> >>>>>>>>>> So I'd be inclined to integrate these changes in 18. >>>>>>>>>> >>>>>>>>>> If you gave a project that works agaist the Java 18 API, it >>>>>>>>>> would be >>>>>>>>>> very helpful for us if you could try it on the above branch and >>>>>>>>>> report back. This will help us make a more informed decision. >>>>>>>>>> >>>>>>>>>> Cheers >>>>>>>>>> Maurizio >>>>>>>>>> >>>>>>>>>> [1] - https://bugs.openjdk.java.net/browse/JDK-8276116 >>>>>>>>>> [2] - https://bugs.openjdk.java.net/browse/JDK-8277850 >>>>>>>>>> >>>>>>>>>> From mail at smogura.eu Mon Dec 13 19:49:19 2021 From: mail at smogura.eu (Rado Smogura) Date: Mon, 13 Dec 2021 20:49:19 +0100 Subject: status of VM long loop optimizations - call for action In-Reply-To: References: <4072546c-e646-2ffd-6d01-af55e0cb8381@gmail.com> <7d330c42-1438-852e-f53f-7a74c6e5d3d3@gmail.com> <243775208.1333800.1639175610750.JavaMail.zimbra@u-pem.fr> Message-ID: It's mine part. The PosixInputStream.read is just quite large, so it does not get inlined and even if it would it uses Polling Allocator which uses has synchronized code (so in any way hard to unroll) However I've found something like this in graph CallLeaf jvms: Binding$Context::ofAllocator @ bci:0 (line 273) DirectMethodHandle$Holder::invokeStatic @ bci:10 0x00000008010a7400::invoke @ I put there @ForceInline, but for me there's no huge impact. Kind regards, Rado On 13.12.2021 20:27, Maurizio Cimadamore wrote: > > On 13/12/2021 17:50, Rado Smogura wrote: >> Hi, >> >> >> Checked from my side, and actually on my side this code is more >> complicated and there's no direct loop unrolling. > > Which code is more complicated? The one with the new patch which > enabled the VM to do its job? > > If that's the case it would be great if we could boil it down to a > simple-ish reproducer. > > Thanks > Maurizio > >> >> >> Kind regards, >> >> Rado >> >> On 13.12.2021 09:57, Rado Smogura wrote: >>> Definitely yes! >>> >>> >>> I'll check later the ASM output and graphs, to see if there's >>> something which may look strange. >>> >>> >>> I really would like to see numbers with heap arrays pinning! >>> >>> >>> BR, >>> >>> Rado >>> >>> >>> P. S. I think I need to finish package it and put it into public >>> repo - it's drop-in replacement cooperating with current JDK Socket >>> factories. >>> >>> On 11.12.2021 23:30, Maurizio Cimadamore wrote: >>>> Thanks Rado, >>>> seems like we're in the same ballpark? (which is great, since we're >>>> removing a lot of complexity from the implementation) >>>> >>>> (P.S. it's impressive how much faster your implementation is >>>> compared to JDK sockets, in the 2nd and 3rd bench). >>>> >>>> Maurizio >>>> >>>> On 11/12/2021 16:38, Rado Smogura wrote: >>>>> Hi all, >>>>> >>>>> >>>>> Just for comparison, run against April commits >>>>> >>>>> >>>>> "Before" >>>>> >>>>> Benchmark????????????????????????? Mode? Cnt??????? Score Error Units >>>>> SocketReadJdk.teatRead4k????????? thrpt??? 5?? 939997.688 ? >>>>> 74877.602? ops/s >>>>> SocketReadJdk.testRead16b???????? thrpt??? 5? 1881053.005 ? >>>>> 72637.626? ops/s >>>>> SocketReadJdk.testRead8bOffset??? thrpt??? 5? 1924527.582 ? >>>>> 38308.317? ops/s >>>>> SocketReadPosix.teatRead4k??????? thrpt??? 5? 1157621.341 ? >>>>> 106649.696? ops/s >>>>> SocketReadPosix.testRead16b?????? thrpt??? 5? 3059826.951 ? >>>>> 232852.053? ops/s >>>>> SocketReadPosix.testRead8bOffset? thrpt??? 5? 2983402.371 ? >>>>> 269646.104? ops/s >>>>> >>>>> >>>>> "Current" - other runs >>>>> Benchmark????????????????????????? Mode? Cnt??????? Score Error Units >>>>> Benchmark????????????????????????? Mode? Cnt??????? Score Error Units >>>>> SocketReadPosix.teatRead4k??????? thrpt??? 5? 1163288.078 ? >>>>> 263855.161? ops/s >>>>> SocketReadPosix.testRead16b?????? thrpt??? 5? 3118810.213 ? >>>>> 68389.408? ops/s >>>>> SocketReadPosix.testRead8bOffset? thrpt??? 5? 2696627.066 ? >>>>> 297527.130? ops/s >>>>> >>>>> I have to point out that this benchmark is not perfect, as it >>>>> really reads data from the back server, so other noise can apply. >>>>> >>>>> BR, >>>>> >>>>> Rado >>>>> >>>>>> Hi Maurizio, >>>>>> >>>>>> >>>>>> Checked against JExtract branch >>>>>> 2617fbfa3050913d34906f87027b8be8f10e53a9 >>>>>> >>>>>> Project: >>>>>> https://urldefense.com/v3/__https://github.com/rsmogura/panama-io__;!!ACWV5N9M2RV99hQ!eHJDUHk-4w7ACAv4d-zx4jrdqx8ZXOjSs2e8nfl6E_dVpYHxULfx83N2zQYlpyZ0FiCfiSk$ >>>>>> >>>>>> Benchmark????????????????????????? Mode? Cnt Score Error Units >>>>>> SocketReadJdk.teatRead4k????????? thrpt??? 5 947424.435 ? >>>>>> 74922.610? ops/s >>>>>> SocketReadJdk.testRead16b???????? thrpt??? 5 1823338.685 ? >>>>>> 33626.860? ops/s >>>>>> SocketReadJdk.testRead8bOffset??? thrpt??? 5 1817956.804 ? >>>>>> 25456.785? ops/s >>>>>> SocketReadPosix.teatRead4k??????? thrpt??? 5 1205470.257 ? >>>>>> 548343.499? ops/s >>>>>> SocketReadPosix.testRead16b?????? thrpt??? 5 2710119.664 ? >>>>>> 227053.749? ops/s >>>>>> SocketReadPosix.testRead8bOffset? thrpt??? 5 2968281.197 ? >>>>>> 216628.917? ops/s >>>>>> >>>>>> Numbers look amazing - I have to check if it's still does what >>>>>> it's intended to do (so write some integration test). >>>>>> >>>>>> Kind regards, >>>>>> >>>>>> Rado >>>>>> >>>>>> On 10.12.2021 23:33, Remi Forax wrote: >>>>>>> Hi Ty, >>>>>>> there is a simple trick to be sure to get the best performance. >>>>>>> >>>>>>> When you create the VarHandle, call withInvokeExactBehavior [1] >>>>>>> on it, >>>>>>> the returned VarHandle will throw an error at runtime instead of >>>>>>> trying to convert arguments. >>>>>>> >>>>>>> R?mi >>>>>>> >>>>>>> [1] >>>>>>> https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/invoke/VarHandle.html#withInvokeExactBehavior() >>>>>>> >>>>>>> ----- Original Message ----- >>>>>>>> From: "Ty Young" >>>>>>>> To: "Maurizio Cimadamore" , >>>>>>>> "panama-dev at openjdk.java.net'" >>>>>>>> Sent: Friday, December 10, 2021 11:18:45 PM >>>>>>>> Subject: Re: status of VM long loop optimizations - call for >>>>>>>> action >>>>>>>> Yeah, I forgot that. Apologies. >>>>>>>> >>>>>>>> >>>>>>>> On 12/10/21 4:06 PM, Maurizio Cimadamore wrote: >>>>>>>>> Hi, >>>>>>>>> I don't think the 1ns difference is real - if you look at the >>>>>>>>> error in >>>>>>>>> the second run is higher than that, so it's in the noise. >>>>>>>>> >>>>>>>>> And, since there's no loop, I don't think this specific kind of >>>>>>>>> benchmark should be affected in any way by the VM >>>>>>>>> improvements. What >>>>>>>>> the VM can help with is to remove bound checks when you keep >>>>>>>>> accessing >>>>>>>>> a segment in a loop, as C2 is now able to correctly apply an >>>>>>>>> optimization called "bound check elimination" or BCE. This >>>>>>>>> optimization is routinely applied on Java array access, but it >>>>>>>>> used to >>>>>>>>> fail for memory segments because the bound of a memory segment is >>>>>>>>> stored in a long variable, not an int. >>>>>>>>> >>>>>>>>> That said, note that you are passing inexact arguments to the var >>>>>>>>> handle (e.g. you are passing an int offset instead of a long >>>>>>>>> one; try >>>>>>>>> to use "0L" instead of "0"). >>>>>>>>> >>>>>>>>> Maurizio >>>>>>>>> >>>>>>>>> >>>>>>>>> On 10/12/2021 21:34, Ty Young wrote: >>>>>>>>>> A simple write benchmark I had already made for specialized >>>>>>>>>> VarHandles(AKA insertCoordinates) seems to get about 1ns >>>>>>>>>> consistently >>>>>>>>>> faster, so I guess these changes helped a bit? >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Before: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Benchmark Mode Cnt Score Error >>>>>>>>>> Units >>>>>>>>>> VarHandleBenchmark.genericHandleBenchmark avgt 5 21.155 ? >>>>>>>>>> 0.145? ns/op >>>>>>>>>> VarHandleBenchmark.specFinalHandleBenchmark avgt 5 0.678 ? >>>>>>>>>> 0.201? ns/op >>>>>>>>>> VarHandleBenchmark.specHandleBenchmark avgt 5 17.323 ? >>>>>>>>>> 1.324? ns/op >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> After: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Benchmark Mode Cnt Score Error >>>>>>>>>> Units >>>>>>>>>> VarHandleBenchmark.genericHandleBenchmark avgt 5 20.304 ? >>>>>>>>>> 1.466? ns/op >>>>>>>>>> VarHandleBenchmark.specFinalHandleBenchmark avgt 5 0.652 ? >>>>>>>>>> 0.156? ns/op >>>>>>>>>> VarHandleBenchmark.specHandleBenchmark avgt 5 17.266 ? >>>>>>>>>> 1.712? ns/op >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Benchmark: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> ???? public static final MemorySegment SEGMENT = >>>>>>>>>> MemorySegment.allocateNative(ValueLayout.JAVA_INT, >>>>>>>>>> ResourceScope.newSharedScope()); >>>>>>>>>> >>>>>>>>>> ???? public static final VarHandle GENERIC_HANDLE = >>>>>>>>>> MemoryHandles.varHandle(ValueLayout.JAVA_INT); >>>>>>>>>> >>>>>>>>>> ???? public static VarHandle SPEC_HANDLE = >>>>>>>>>> MemoryHandles.insertCoordinates(GENERIC_HANDLE, 0, SEGMENT, 0); >>>>>>>>>> >>>>>>>>>> ???? public static final VarHandle SPEC_HANDLE_FINAL = >>>>>>>>>> MemoryHandles.insertCoordinates(GENERIC_HANDLE, 0, SEGMENT, 0); >>>>>>>>>> >>>>>>>>>> ???? @Benchmark >>>>>>>>>> ???? @BenchmarkMode(Mode.AverageTime) >>>>>>>>>> ???? @OutputTimeUnit(TimeUnit.NANOSECONDS) >>>>>>>>>> ???? public void genericHandleBenchmark() >>>>>>>>>> ???? { >>>>>>>>>> ???????? GENERIC_HANDLE.set(SEGMENT, 0, 5); >>>>>>>>>> ???? } >>>>>>>>>> >>>>>>>>>> ???? @Benchmark >>>>>>>>>> ???? @BenchmarkMode(Mode.AverageTime) >>>>>>>>>> ???? @OutputTimeUnit(TimeUnit.NANOSECONDS) >>>>>>>>>> ???? public void specHandleBenchmark() >>>>>>>>>> ???? { >>>>>>>>>> ???????? SPEC_HANDLE.set(5); >>>>>>>>>> ???? } >>>>>>>>>> >>>>>>>>>> ???? @Benchmark >>>>>>>>>> ???? @BenchmarkMode(Mode.AverageTime) >>>>>>>>>> ???? @OutputTimeUnit(TimeUnit.NANOSECONDS) >>>>>>>>>> ???? public void specFinalHandleBenchmark() >>>>>>>>>> ???? { >>>>>>>>>> ???????? SPEC_HANDLE_FINAL.set(5); >>>>>>>>>> ???? } >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Sort of off-topic but... I don't remember anyone saying >>>>>>>>>> previously >>>>>>>>>> that insertCoordinates would give that big of a difference(or >>>>>>>>>> any at >>>>>>>>>> all!) so it's surprising to me. I was expecting a performance >>>>>>>>>> decrease due to the handle no longer being static-final. Can >>>>>>>>>> javac >>>>>>>>>> maybe optimize this so that any case where: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> GENERIC_HANDLE.set(SEGMENT, 0, 5); >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> is, an optimized VarHandle is created at compile time that is >>>>>>>>>> equivalent to SPEC_HANDLE and inserted there instead? >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On 12/10/21 4:55 AM, Maurizio Cimadamore wrote: >>>>>>>>>>> (resending since mailing lists were down yesterday - I >>>>>>>>>>> apologize if >>>>>>>>>>> this results in duplicates). >>>>>>>>>>> >>>>>>>>>>> Hi, >>>>>>>>>>> few days ago some VM enhancements were integrated [1, 2], so >>>>>>>>>>> it is >>>>>>>>>>> time to take a look again at where we are. >>>>>>>>>>> >>>>>>>>>>> I put together a branch which removes all workarounds (both >>>>>>>>>>> for long >>>>>>>>>>> loops and for alignment checks): >>>>>>>>>>> >>>>>>>>>>> https://urldefense.com/v3/__https://github.com/mcimadamore/jdk/tree/long_loop_workarounds_removal__;!!ACWV5N9M2RV99hQ!eHJDUHk-4w7ACAv4d-zx4jrdqx8ZXOjSs2e8nfl6E_dVpYHxULfx83N2zQYlpyZ0wgQ-IjY$ >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> I also ran memory access benchmarks before/after, to see >>>>>>>>>>> what the >>>>>>>>>>> difference is like - here's a visual report: >>>>>>>>>>> >>>>>>>>>>> https://urldefense.com/v3/__https://jmh.morethan.io/?gists=dfa7075db33f7e6a2690ac80a64aa252,7f894f48460a6a0c9891cbe3158b43a7__;!!ACWV5N9M2RV99hQ!eHJDUHk-4w7ACAv4d-zx4jrdqx8ZXOjSs2e8nfl6E_dVpYHxULfx83N2zQYlpyZ0CJV9Oz8$ >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Overall, I think the numbers are solid. The branch w/o >>>>>>>>>>> workarounds >>>>>>>>>>> keep up with mainline in basically all cases but one >>>>>>>>>>> (UnrolledAccess >>>>>>>>>>> - this code pattern needs more work in the VM, but Roland >>>>>>>>>>> Westrelin >>>>>>>>>>> has identified a possible fix for it). In some cases (parallel >>>>>>>>>>> tests) we see quite a big jump forward. >>>>>>>>>>> >>>>>>>>>>> I think it's hard to say how these results will translate in >>>>>>>>>>> real >>>>>>>>>>> world - my gut feeling is that the simpler bound checking >>>>>>>>>>> logic will >>>>>>>>>>> almost invariably result in performance improvements with more >>>>>>>>>>> complex code patterns, despite what synthetic benchmark >>>>>>>>>>> might say >>>>>>>>>>> (the current logic in mainline is fragile as it has to guard >>>>>>>>>>> against >>>>>>>>>>> integer overflow, which in turns sometimes kills BCE >>>>>>>>>>> optimizations). >>>>>>>>>>> >>>>>>>>>>> So I'd be inclined to integrate these changes in 18. >>>>>>>>>>> >>>>>>>>>>> If you gave a project that works agaist the Java 18 API, it >>>>>>>>>>> would be >>>>>>>>>>> very helpful for us if you could try it on the above branch and >>>>>>>>>>> report back. This will help us make a more informed decision. >>>>>>>>>>> >>>>>>>>>>> Cheers >>>>>>>>>>> Maurizio >>>>>>>>>>> >>>>>>>>>>> [1] - https://bugs.openjdk.java.net/browse/JDK-8276116 >>>>>>>>>>> [2] - https://bugs.openjdk.java.net/browse/JDK-8277850 >>>>>>>>>>> >>>>>>>>>>> From maurizio.cimadamore at oracle.com Mon Dec 13 22:10:55 2021 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Mon, 13 Dec 2021 22:10:55 +0000 Subject: status of VM long loop optimizations - call for action In-Reply-To: References: <4072546c-e646-2ffd-6d01-af55e0cb8381@gmail.com> <7d330c42-1438-852e-f53f-7a74c6e5d3d3@gmail.com> <243775208.1333800.1639175610750.JavaMail.zimbra@u-pem.fr> Message-ID: <9f60f6fe-6ab2-b457-380f-1456f4fd0828@oracle.com> On 13/12/2021 19:49, Rado Smogura wrote: > It's mine part. > > > The PosixInputStream.read is just quite large, so it does not get > inlined and even if it would it uses Polling Allocator which uses has > synchronized code (so in any way hard to unroll) > > > However I've found something like this in graph > > CallLeaf > > jvms: Binding$Context::ofAllocator @ bci:0 (line 273) > DirectMethodHandle$Holder::invokeStatic @ bci:10 > 0x00000008010a7400::invoke @ That's odd - I mean, the BindingContext is used when setting up downcall method handles, or upcall stubs. But should not be invoked in the hot path. That said, in jdk/jdk calls that need to spill arguments on the stack are not intrinsified (but they are on the panama repo). I wonder if that is playing a role here? Typically, if you see a lot of ProgrammableInvoker stuff showing up in -XX:+PrintInlining, that's the culprit. Maurizio > > > I put there @ForceInline, but for me there's no huge impact. > > > Kind regards, > > Rado > > > On 13.12.2021 20:27, Maurizio Cimadamore wrote: >> >> On 13/12/2021 17:50, Rado Smogura wrote: >>> Hi, >>> >>> >>> Checked from my side, and actually on my side this code is more >>> complicated and there's no direct loop unrolling. >> >> Which code is more complicated? The one with the new patch which >> enabled the VM to do its job? >> >> If that's the case it would be great if we could boil it down to a >> simple-ish reproducer. >> >> Thanks >> Maurizio >> >>> >>> >>> Kind regards, >>> >>> Rado >>> >>> On 13.12.2021 09:57, Rado Smogura wrote: >>>> Definitely yes! >>>> >>>> >>>> I'll check later the ASM output and graphs, to see if there's >>>> something which may look strange. >>>> >>>> >>>> I really would like to see numbers with heap arrays pinning! >>>> >>>> >>>> BR, >>>> >>>> Rado >>>> >>>> >>>> P. S. I think I need to finish package it and put it into public >>>> repo - it's drop-in replacement cooperating with current JDK Socket >>>> factories. >>>> >>>> On 11.12.2021 23:30, Maurizio Cimadamore wrote: >>>>> Thanks Rado, >>>>> seems like we're in the same ballpark? (which is great, since >>>>> we're removing a lot of complexity from the implementation) >>>>> >>>>> (P.S. it's impressive how much faster your implementation is >>>>> compared to JDK sockets, in the 2nd and 3rd bench). >>>>> >>>>> Maurizio >>>>> >>>>> On 11/12/2021 16:38, Rado Smogura wrote: >>>>>> Hi all, >>>>>> >>>>>> >>>>>> Just for comparison, run against April commits >>>>>> >>>>>> >>>>>> "Before" >>>>>> >>>>>> Benchmark????????????????????????? Mode? Cnt Score Error Units >>>>>> SocketReadJdk.teatRead4k????????? thrpt??? 5 939997.688 ? >>>>>> 74877.602? ops/s >>>>>> SocketReadJdk.testRead16b???????? thrpt??? 5 1881053.005 ? >>>>>> 72637.626? ops/s >>>>>> SocketReadJdk.testRead8bOffset??? thrpt??? 5 1924527.582 ? >>>>>> 38308.317? ops/s >>>>>> SocketReadPosix.teatRead4k??????? thrpt??? 5 1157621.341 ? >>>>>> 106649.696? ops/s >>>>>> SocketReadPosix.testRead16b?????? thrpt??? 5 3059826.951 ? >>>>>> 232852.053? ops/s >>>>>> SocketReadPosix.testRead8bOffset? thrpt??? 5 2983402.371 ? >>>>>> 269646.104? ops/s >>>>>> >>>>>> >>>>>> "Current" - other runs >>>>>> Benchmark????????????????????????? Mode? Cnt Score Error Units >>>>>> Benchmark????????????????????????? Mode? Cnt Score Error Units >>>>>> SocketReadPosix.teatRead4k??????? thrpt??? 5 1163288.078 ? >>>>>> 263855.161? ops/s >>>>>> SocketReadPosix.testRead16b?????? thrpt??? 5 3118810.213 ? >>>>>> 68389.408? ops/s >>>>>> SocketReadPosix.testRead8bOffset? thrpt??? 5 2696627.066 ? >>>>>> 297527.130? ops/s >>>>>> >>>>>> I have to point out that this benchmark is not perfect, as it >>>>>> really reads data from the back server, so other noise can apply. >>>>>> >>>>>> BR, >>>>>> >>>>>> Rado >>>>>> >>>>>>> Hi Maurizio, >>>>>>> >>>>>>> >>>>>>> Checked against JExtract branch >>>>>>> 2617fbfa3050913d34906f87027b8be8f10e53a9 >>>>>>> >>>>>>> Project: >>>>>>> https://urldefense.com/v3/__https://github.com/rsmogura/panama-io__;!!ACWV5N9M2RV99hQ!eHJDUHk-4w7ACAv4d-zx4jrdqx8ZXOjSs2e8nfl6E_dVpYHxULfx83N2zQYlpyZ0FiCfiSk$ >>>>>>> >>>>>>> Benchmark????????????????????????? Mode? Cnt Score Error Units >>>>>>> SocketReadJdk.teatRead4k????????? thrpt??? 5 947424.435 ? >>>>>>> 74922.610? ops/s >>>>>>> SocketReadJdk.testRead16b???????? thrpt??? 5 1823338.685 ? >>>>>>> 33626.860? ops/s >>>>>>> SocketReadJdk.testRead8bOffset??? thrpt??? 5 1817956.804 ? >>>>>>> 25456.785? ops/s >>>>>>> SocketReadPosix.teatRead4k??????? thrpt??? 5 1205470.257 ? >>>>>>> 548343.499? ops/s >>>>>>> SocketReadPosix.testRead16b?????? thrpt??? 5 2710119.664 ? >>>>>>> 227053.749? ops/s >>>>>>> SocketReadPosix.testRead8bOffset? thrpt??? 5 2968281.197 ? >>>>>>> 216628.917? ops/s >>>>>>> >>>>>>> Numbers look amazing - I have to check if it's still does what >>>>>>> it's intended to do (so write some integration test). >>>>>>> >>>>>>> Kind regards, >>>>>>> >>>>>>> Rado >>>>>>> >>>>>>> On 10.12.2021 23:33, Remi Forax wrote: >>>>>>>> Hi Ty, >>>>>>>> there is a simple trick to be sure to get the best performance. >>>>>>>> >>>>>>>> When you create the VarHandle, call withInvokeExactBehavior [1] >>>>>>>> on it, >>>>>>>> the returned VarHandle will throw an error at runtime instead >>>>>>>> of trying to convert arguments. >>>>>>>> >>>>>>>> R?mi >>>>>>>> >>>>>>>> [1] >>>>>>>> https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/invoke/VarHandle.html#withInvokeExactBehavior() >>>>>>>> >>>>>>>> ----- Original Message ----- >>>>>>>>> From: "Ty Young" >>>>>>>>> To: "Maurizio Cimadamore" , >>>>>>>>> "panama-dev at openjdk.java.net'" >>>>>>>>> Sent: Friday, December 10, 2021 11:18:45 PM >>>>>>>>> Subject: Re: status of VM long loop optimizations - call for >>>>>>>>> action >>>>>>>>> Yeah, I forgot that. Apologies. >>>>>>>>> >>>>>>>>> >>>>>>>>> On 12/10/21 4:06 PM, Maurizio Cimadamore wrote: >>>>>>>>>> Hi, >>>>>>>>>> I don't think the 1ns difference is real - if you look at the >>>>>>>>>> error in >>>>>>>>>> the second run is higher than that, so it's in the noise. >>>>>>>>>> >>>>>>>>>> And, since there's no loop, I don't think this specific kind of >>>>>>>>>> benchmark should be affected in any way by the VM >>>>>>>>>> improvements. What >>>>>>>>>> the VM can help with is to remove bound checks when you keep >>>>>>>>>> accessing >>>>>>>>>> a segment in a loop, as C2 is now able to correctly apply an >>>>>>>>>> optimization called "bound check elimination" or BCE. This >>>>>>>>>> optimization is routinely applied on Java array access, but >>>>>>>>>> it used to >>>>>>>>>> fail for memory segments because the bound of a memory >>>>>>>>>> segment is >>>>>>>>>> stored in a long variable, not an int. >>>>>>>>>> >>>>>>>>>> That said, note that you are passing inexact arguments to the >>>>>>>>>> var >>>>>>>>>> handle (e.g. you are passing an int offset instead of a long >>>>>>>>>> one; try >>>>>>>>>> to use "0L" instead of "0"). >>>>>>>>>> >>>>>>>>>> Maurizio >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On 10/12/2021 21:34, Ty Young wrote: >>>>>>>>>>> A simple write benchmark I had already made for specialized >>>>>>>>>>> VarHandles(AKA insertCoordinates) seems to get about 1ns >>>>>>>>>>> consistently >>>>>>>>>>> faster, so I guess these changes helped a bit? >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Before: >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Benchmark Mode Cnt Score Error >>>>>>>>>>> Units >>>>>>>>>>> VarHandleBenchmark.genericHandleBenchmark avgt 5 21.155 ? >>>>>>>>>>> 0.145? ns/op >>>>>>>>>>> VarHandleBenchmark.specFinalHandleBenchmark avgt 5 0.678 ? >>>>>>>>>>> 0.201? ns/op >>>>>>>>>>> VarHandleBenchmark.specHandleBenchmark avgt 5 17.323 ? >>>>>>>>>>> 1.324? ns/op >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> After: >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Benchmark Mode Cnt Score Error >>>>>>>>>>> Units >>>>>>>>>>> VarHandleBenchmark.genericHandleBenchmark avgt 5 20.304 ? >>>>>>>>>>> 1.466? ns/op >>>>>>>>>>> VarHandleBenchmark.specFinalHandleBenchmark avgt 5 0.652 ? >>>>>>>>>>> 0.156? ns/op >>>>>>>>>>> VarHandleBenchmark.specHandleBenchmark avgt 5 17.266 ? >>>>>>>>>>> 1.712? ns/op >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Benchmark: >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> ???? public static final MemorySegment SEGMENT = >>>>>>>>>>> MemorySegment.allocateNative(ValueLayout.JAVA_INT, >>>>>>>>>>> ResourceScope.newSharedScope()); >>>>>>>>>>> >>>>>>>>>>> ???? public static final VarHandle GENERIC_HANDLE = >>>>>>>>>>> MemoryHandles.varHandle(ValueLayout.JAVA_INT); >>>>>>>>>>> >>>>>>>>>>> ???? public static VarHandle SPEC_HANDLE = >>>>>>>>>>> MemoryHandles.insertCoordinates(GENERIC_HANDLE, 0, SEGMENT, 0); >>>>>>>>>>> >>>>>>>>>>> ???? public static final VarHandle SPEC_HANDLE_FINAL = >>>>>>>>>>> MemoryHandles.insertCoordinates(GENERIC_HANDLE, 0, SEGMENT, 0); >>>>>>>>>>> >>>>>>>>>>> ???? @Benchmark >>>>>>>>>>> ???? @BenchmarkMode(Mode.AverageTime) >>>>>>>>>>> ???? @OutputTimeUnit(TimeUnit.NANOSECONDS) >>>>>>>>>>> ???? public void genericHandleBenchmark() >>>>>>>>>>> ???? { >>>>>>>>>>> ???????? GENERIC_HANDLE.set(SEGMENT, 0, 5); >>>>>>>>>>> ???? } >>>>>>>>>>> >>>>>>>>>>> ???? @Benchmark >>>>>>>>>>> ???? @BenchmarkMode(Mode.AverageTime) >>>>>>>>>>> ???? @OutputTimeUnit(TimeUnit.NANOSECONDS) >>>>>>>>>>> ???? public void specHandleBenchmark() >>>>>>>>>>> ???? { >>>>>>>>>>> ???????? SPEC_HANDLE.set(5); >>>>>>>>>>> ???? } >>>>>>>>>>> >>>>>>>>>>> ???? @Benchmark >>>>>>>>>>> ???? @BenchmarkMode(Mode.AverageTime) >>>>>>>>>>> ???? @OutputTimeUnit(TimeUnit.NANOSECONDS) >>>>>>>>>>> ???? public void specFinalHandleBenchmark() >>>>>>>>>>> ???? { >>>>>>>>>>> ???????? SPEC_HANDLE_FINAL.set(5); >>>>>>>>>>> ???? } >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Sort of off-topic but... I don't remember anyone saying >>>>>>>>>>> previously >>>>>>>>>>> that insertCoordinates would give that big of a >>>>>>>>>>> difference(or any at >>>>>>>>>>> all!) so it's surprising to me. I was expecting a performance >>>>>>>>>>> decrease due to the handle no longer being static-final. Can >>>>>>>>>>> javac >>>>>>>>>>> maybe optimize this so that any case where: >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> GENERIC_HANDLE.set(SEGMENT, 0, 5); >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> is, an optimized VarHandle is created at compile time that is >>>>>>>>>>> equivalent to SPEC_HANDLE and inserted there instead? >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On 12/10/21 4:55 AM, Maurizio Cimadamore wrote: >>>>>>>>>>>> (resending since mailing lists were down yesterday - I >>>>>>>>>>>> apologize if >>>>>>>>>>>> this results in duplicates). >>>>>>>>>>>> >>>>>>>>>>>> Hi, >>>>>>>>>>>> few days ago some VM enhancements were integrated [1, 2], >>>>>>>>>>>> so it is >>>>>>>>>>>> time to take a look again at where we are. >>>>>>>>>>>> >>>>>>>>>>>> I put together a branch which removes all workarounds (both >>>>>>>>>>>> for long >>>>>>>>>>>> loops and for alignment checks): >>>>>>>>>>>> >>>>>>>>>>>> https://urldefense.com/v3/__https://github.com/mcimadamore/jdk/tree/long_loop_workarounds_removal__;!!ACWV5N9M2RV99hQ!eHJDUHk-4w7ACAv4d-zx4jrdqx8ZXOjSs2e8nfl6E_dVpYHxULfx83N2zQYlpyZ0wgQ-IjY$ >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> I also ran memory access benchmarks before/after, to see >>>>>>>>>>>> what the >>>>>>>>>>>> difference is like - here's a visual report: >>>>>>>>>>>> >>>>>>>>>>>> https://urldefense.com/v3/__https://jmh.morethan.io/?gists=dfa7075db33f7e6a2690ac80a64aa252,7f894f48460a6a0c9891cbe3158b43a7__;!!ACWV5N9M2RV99hQ!eHJDUHk-4w7ACAv4d-zx4jrdqx8ZXOjSs2e8nfl6E_dVpYHxULfx83N2zQYlpyZ0CJV9Oz8$ >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Overall, I think the numbers are solid. The branch w/o >>>>>>>>>>>> workarounds >>>>>>>>>>>> keep up with mainline in basically all cases but one >>>>>>>>>>>> (UnrolledAccess >>>>>>>>>>>> - this code pattern needs more work in the VM, but Roland >>>>>>>>>>>> Westrelin >>>>>>>>>>>> has identified a possible fix for it). In some cases (parallel >>>>>>>>>>>> tests) we see quite a big jump forward. >>>>>>>>>>>> >>>>>>>>>>>> I think it's hard to say how these results will translate >>>>>>>>>>>> in real >>>>>>>>>>>> world - my gut feeling is that the simpler bound checking >>>>>>>>>>>> logic will >>>>>>>>>>>> almost invariably result in performance improvements with more >>>>>>>>>>>> complex code patterns, despite what synthetic benchmark >>>>>>>>>>>> might say >>>>>>>>>>>> (the current logic in mainline is fragile as it has to >>>>>>>>>>>> guard against >>>>>>>>>>>> integer overflow, which in turns sometimes kills BCE >>>>>>>>>>>> optimizations). >>>>>>>>>>>> >>>>>>>>>>>> So I'd be inclined to integrate these changes in 18. >>>>>>>>>>>> >>>>>>>>>>>> If you gave a project that works agaist the Java 18 API, it >>>>>>>>>>>> would be >>>>>>>>>>>> very helpful for us if you could try it on the above branch >>>>>>>>>>>> and >>>>>>>>>>>> report back. This will help us make a more informed decision. >>>>>>>>>>>> >>>>>>>>>>>> Cheers >>>>>>>>>>>> Maurizio >>>>>>>>>>>> >>>>>>>>>>>> [1] - https://bugs.openjdk.java.net/browse/JDK-8276116 >>>>>>>>>>>> [2] - https://bugs.openjdk.java.net/browse/JDK-8277850 >>>>>>>>>>>> >>>>>>>>>>>> From ltorokrl at gmail.com Tue Dec 14 11:47:10 2021 From: ltorokrl at gmail.com (=?UTF-8?B?TGFkaXNsYXYgVMO2csO2aw==?=) Date: Tue, 14 Dec 2021 12:47:10 +0100 Subject: Problem with concating of multiple wide string in wcout - unnecessary space after each charcater Message-ID: Here is copy of my conversation with Maurizio Cimadamore: 1. email by me: Hi, use the example panama-tutorial-005 on https://github.com/tornaia/panama-tutorial. I am checked and result in my console on Windows (CMD) is: --- D:\repositories\moje\GitHub\tornaia\panama-tutorial\panama-tutorial-005>java --enable-preview --add-modules jdk.incubator.foreign --enable-native-access=ALL-UNNAMED -Djava.library.path=lib/helloworldwinrt/target -classpath target/classes;lib/target/jar/* com.github.tornaia.panama.tutorial005.Tutorial005 WARNING: Using incubator modules: jdk.incubator.foreign Start N u m b e r o f d e v i c e s : 2 5 9 5 End D:\repositories\moje\GitHub\tornaia\panama-tutorial\panama-tutorial-005> --- See space after each character of started in place where is used concating of multiple wide string in wcout. !!! Build the sample is in Microsoft Visual Studio 2019, configuration is Release x64 !!! For configuration Debug x64 is all ok. Output is: --- D:\repositories\moje\GitHub\tornaia\panama-tutorial\panama-tutorial-005>java --enable-preview --add-modules jdk.incubator.foreign --enable-native-access=ALL-UNNAMED -Djava.library.path=lib/helloworldwinrt/target -classpath target/classes;lib/target/jar/* com.github.tornaia.panama.tutorial005.Tutorial005 WARNING: Using incubator modules: jdk.incubator.foreign Start Number of devices: 2595 End D:\repositories\moje\GitHub\tornaia\panama-tutorial\panama-tutorial-005> --- Thanks. 2. email by Maurizio Cimadamore (his answer on my 1. email by me): Adding Jorn, who might know more. One control question first: have you tried calling your C++ code directly (e.g. w/o Panama, using a `main`) ? I have a feeling that you might get the same behavior there. I note that your CPP library is not really returning a string back to Java, but it's doing a `cout` to print things on the terminal console. It's unlikely that Panama will have any effect here. (in general, please use mailing list :-)). Thanks Maurizio *** Here is my reaction on previous 2. email by Maurizio Cimadamore *** I was try of calling my C++ code directly (without Panama, using a 'main') in other application - building of this application in Microsoft Visual Studio 2019, configuration1 Release x64 and configuration2 Debug x64 and is all ok (in both cases): --- Debug --- Microsoft Windows [Version 10.0.19043.1348] (c) Microsoft Corporation. All rights reserved. D:\MSVS2019\Projects\Project2\x64\Debug>Project2.exe Number of devices: 2595 Result: 0 D:\MSVS2019\Projects\Project2\x64\Debug> --- Debug --- --- Release --- Microsoft Windows [Version 10.0.19043.1348] (c) Microsoft Corporation. All rights reserved. D:\MSVS2019\Projects\Project2\x64\Release>Project2.exe Number of devices: 2595 Result: 0 D:\MSVS2019\Projects\Project2\x64\Release> --- Release --- Code of my client application: #include "helloworldwinrt.h" #include int main() { int result = print_number_of_devices(); printf("Result: %d\n", result); } "I note that your CPP library is not really returning a string back to Java, but it's doing a `cout` to print things on the terminal console." --- Yes. " It's unlikely that Panama will have any effect here." --- It doesn't look like that yet. Could someone practically try it? Thanks Ladislav From jorn.vernee at oracle.com Tue Dec 14 16:21:18 2021 From: jorn.vernee at oracle.com (Jorn Vernee) Date: Tue, 14 Dec 2021 17:21:18 +0100 Subject: Problem with concating of multiple wide string in wcout - unnecessary space after each charcater In-Reply-To: References: Message-ID: (Sending my earlier reply to panama-dev as well) Hi Ladislav, I'm also not able to reproduce the issue. Can we try a simpler example first? I have a lib.cpp file like so: ??? #include ??? extern "C" ??? __declspec(dllexport) ??? void print() { ? ?? ?? std::wcout << "Testing wcout" << std::endl; ??? } A CMakeLists.txt to compile it: ??? cmake_minimum_required(VERSION 3.14) ??? project(TestingWCout) ??? add_library(Lib SHARED lib.cpp) ??? install(TARGETS Lib) And a file Test.java like so: ??? import jdk.incubator.foreign.*; ??? import java.lang.invoke.*; ??? public class Test { ?? ???? public static void main(String[] args) throws Throwable { ?? ???????? System.loadLibrary("Lib"); ?? ???????? MemoryAddress sym = SymbolLookup.loaderLookup().lookup("print").get(); ?? ???????? MethodHandle mh = CLinker.getInstance().downcallHandle(sym, MethodType.methodType(void.class), FunctionDescriptor.ofVoid()); ?? ???????? mh.invokeExact(); ?? ???? } ??? } And, using the panama snapshot: ???? > java --version ???? openjdk 17-panama 2021-09-14 ???? OpenJDK Runtime Environment (build 17-panama+3-167) ???? OpenJDK 64-Bit Server VM (build 17-panama+3-167, mixed mode, sharing) Build and run it with (I've used powershell here): ??? $ cmake -B build -S . '-DCMAKE_INSTALL_PREFIX=install' -T host=x64 -A x64 ??? $ cmake --build build --config Release --target install ??? $ java --add-modules jdk.incubator.foreign --enable-native-access=ALL-UNNAMED '-Djava.library.path=./install/bin' Test.java This ends up printing: ??? WARNING: Using incubator modules: jdk.incubator.foreign ??? warning: using incubating module(s): jdk.incubator.foreign ??? 1 warning ??? Testing wcout Could you try and see if that works? I've also uploaded the files here: http://cr.openjdk.java.net/~jvernee/wcout/ Thanks, Jorn On 14/12/2021 12:47, Ladislav T?r?k wrote: > Here is copy of my conversation with Maurizio Cimadamore: > 1. email by me: > Hi, > > use the example panama-tutorial-005 on > https://github.com/tornaia/panama-tutorial. > I am checked and result in my console on Windows (CMD) is: > --- > D:\repositories\moje\GitHub\tornaia\panama-tutorial\panama-tutorial-005>java > --enable-preview --add-modules jdk.incubator.foreign > --enable-native-access=ALL-UNNAMED > -Djava.library.path=lib/helloworldwinrt/target -classpath > target/classes;lib/target/jar/* > com.github.tornaia.panama.tutorial005.Tutorial005 > WARNING: Using incubator modules: jdk.incubator.foreign > Start > N u m b e r o f d e v i c e s : 2 5 9 5 > End > > D:\repositories\moje\GitHub\tornaia\panama-tutorial\panama-tutorial-005> > --- > See space after each character of started in place where is used concating > of multiple wide string in wcout. > !!! Build the sample is in Microsoft Visual Studio 2019, configuration is > Release x64 !!! For configuration Debug x64 is all ok. > Output is: > --- > D:\repositories\moje\GitHub\tornaia\panama-tutorial\panama-tutorial-005>java > --enable-preview --add-modules jdk.incubator.foreign > --enable-native-access=ALL-UNNAMED > -Djava.library.path=lib/helloworldwinrt/target -classpath > target/classes;lib/target/jar/* > com.github.tornaia.panama.tutorial005.Tutorial005 > WARNING: Using incubator modules: jdk.incubator.foreign > Start > Number of devices: 2595 > End > > D:\repositories\moje\GitHub\tornaia\panama-tutorial\panama-tutorial-005> > --- > > Thanks. > > 2. email by Maurizio Cimadamore (his answer on my 1. email by me): > > Adding Jorn, who might know more. > > One control question first: have you tried calling your C++ code directly > (e.g. w/o Panama, using a `main`) ? I have a feeling that you might get the > same behavior there. I note that your CPP library is not really returning a > string back to Java, but it's doing a `cout` to print things on the > terminal console. It's unlikely that Panama will have any effect here. > > (in general, please use mailing list :-)). > > Thanks > Maurizio > > *** Here is my reaction on previous 2. email by Maurizio Cimadamore *** > I was try of calling my C++ code directly (without Panama, using a 'main') > in other application - building of this application in Microsoft Visual > Studio 2019, configuration1 Release x64 and configuration2 Debug x64 and is > all ok (in both cases): > --- Debug --- > Microsoft Windows [Version 10.0.19043.1348] > (c) Microsoft Corporation. All rights reserved. > > D:\MSVS2019\Projects\Project2\x64\Debug>Project2.exe > Number of devices: 2595 > Result: 0 > > D:\MSVS2019\Projects\Project2\x64\Debug> > --- Debug --- > > --- Release --- > Microsoft Windows [Version 10.0.19043.1348] > (c) Microsoft Corporation. All rights reserved. > > D:\MSVS2019\Projects\Project2\x64\Release>Project2.exe > Number of devices: 2595 > Result: 0 > > D:\MSVS2019\Projects\Project2\x64\Release> > --- Release --- > > Code of my client application: > #include "helloworldwinrt.h" > #include > > int main() > { > int result = print_number_of_devices(); > printf("Result: %d\n", result); > } > > "I note that your CPP library is not really returning a string back to > Java, but it's doing a `cout` to print things on the terminal console." --- > Yes. > > " It's unlikely that Panama will have any effect here." --- It doesn't look > like that yet. Could someone practically try it? > > Thanks > Ladislav From mail at smogura.eu Tue Dec 14 16:36:10 2021 From: mail at smogura.eu (=?utf-8?B?UmFkb3PFgmF3IFNtb2d1cmE=?=) Date: Tue, 14 Dec 2021 16:36:10 +0000 Subject: Problem with concating of multiple wide string in wcout - unnecessary space after each charcater In-Reply-To: References: Message-ID: Hi, Can it be released to terminal? Maybe your terminal does not accept wide chars and the space is 0x00? I wonder if you could copy paste output form terminal to some file and check hex content, or forward output to text file and check hex? BR, Rado > On Dec 14, 2021, at 5:22 PM, Jorn Vernee wrote: > > ?(Sending my earlier reply to panama-dev as well) > > Hi Ladislav, > > I'm also not able to reproduce the issue. Can we try a simpler example first? > > I have a lib.cpp file like so: > > #include > > extern "C" > __declspec(dllexport) > void print() { > std::wcout << "Testing wcout" << std::endl; > } > > A CMakeLists.txt to compile it: > > cmake_minimum_required(VERSION 3.14) > project(TestingWCout) > > add_library(Lib SHARED lib.cpp) > > install(TARGETS Lib) > > And a file Test.java like so: > > import jdk.incubator.foreign.*; > import java.lang.invoke.*; > > public class Test { > public static void main(String[] args) throws Throwable { > System.loadLibrary("Lib"); > MemoryAddress sym = SymbolLookup.loaderLookup().lookup("print").get(); > MethodHandle mh = CLinker.getInstance().downcallHandle(sym, MethodType.methodType(void.class), FunctionDescriptor.ofVoid()); > mh.invokeExact(); > } > } > > And, using the panama snapshot: > > > java --version > openjdk 17-panama 2021-09-14 > OpenJDK Runtime Environment (build 17-panama+3-167) > OpenJDK 64-Bit Server VM (build 17-panama+3-167, mixed mode, sharing) > > Build and run it with (I've used powershell here): > > $ cmake -B build -S . '-DCMAKE_INSTALL_PREFIX=install' -T host=x64 -A x64 > $ cmake --build build --config Release --target install > $ java --add-modules jdk.incubator.foreign --enable-native-access=ALL-UNNAMED '-Djava.library.path=./install/bin' Test.java > > This ends up printing: > > WARNING: Using incubator modules: jdk.incubator.foreign > warning: using incubating module(s): jdk.incubator.foreign > 1 warning > Testing wcout > > Could you try and see if that works? I've also uploaded the files here: http://cr.openjdk.java.net/~jvernee/wcout/ > > Thanks, > Jorn > > >> On 14/12/2021 12:47, Ladislav T?r?k wrote: >> Here is copy of my conversation with Maurizio Cimadamore: >> 1. email by me: >> Hi, >> >> use the example panama-tutorial-005 on >> https://github.com/tornaia/panama-tutorial. >> I am checked and result in my console on Windows (CMD) is: >> --- >> D:\repositories\moje\GitHub\tornaia\panama-tutorial\panama-tutorial-005>java >> --enable-preview --add-modules jdk.incubator.foreign >> --enable-native-access=ALL-UNNAMED >> -Djava.library.path=lib/helloworldwinrt/target -classpath >> target/classes;lib/target/jar/* >> com.github.tornaia.panama.tutorial005.Tutorial005 >> WARNING: Using incubator modules: jdk.incubator.foreign >> Start >> N u m b e r o f d e v i c e s : 2 5 9 5 >> End >> >> D:\repositories\moje\GitHub\tornaia\panama-tutorial\panama-tutorial-005> >> --- >> See space after each character of started in place where is used concating >> of multiple wide string in wcout. >> !!! Build the sample is in Microsoft Visual Studio 2019, configuration is >> Release x64 !!! For configuration Debug x64 is all ok. >> Output is: >> --- >> D:\repositories\moje\GitHub\tornaia\panama-tutorial\panama-tutorial-005>java >> --enable-preview --add-modules jdk.incubator.foreign >> --enable-native-access=ALL-UNNAMED >> -Djava.library.path=lib/helloworldwinrt/target -classpath >> target/classes;lib/target/jar/* >> com.github.tornaia.panama.tutorial005.Tutorial005 >> WARNING: Using incubator modules: jdk.incubator.foreign >> Start >> Number of devices: 2595 >> End >> >> D:\repositories\moje\GitHub\tornaia\panama-tutorial\panama-tutorial-005> >> --- >> >> Thanks. >> >> 2. email by Maurizio Cimadamore (his answer on my 1. email by me): >> >> Adding Jorn, who might know more. >> >> One control question first: have you tried calling your C++ code directly >> (e.g. w/o Panama, using a `main`) ? I have a feeling that you might get the >> same behavior there. I note that your CPP library is not really returning a >> string back to Java, but it's doing a `cout` to print things on the >> terminal console. It's unlikely that Panama will have any effect here. >> >> (in general, please use mailing list :-)). >> >> Thanks >> Maurizio >> >> *** Here is my reaction on previous 2. email by Maurizio Cimadamore *** >> I was try of calling my C++ code directly (without Panama, using a 'main') >> in other application - building of this application in Microsoft Visual >> Studio 2019, configuration1 Release x64 and configuration2 Debug x64 and is >> all ok (in both cases): >> --- Debug --- >> Microsoft Windows [Version 10.0.19043.1348] >> (c) Microsoft Corporation. All rights reserved. >> >> D:\MSVS2019\Projects\Project2\x64\Debug>Project2.exe >> Number of devices: 2595 >> Result: 0 >> >> D:\MSVS2019\Projects\Project2\x64\Debug> >> --- Debug --- >> >> --- Release --- >> Microsoft Windows [Version 10.0.19043.1348] >> (c) Microsoft Corporation. All rights reserved. >> >> D:\MSVS2019\Projects\Project2\x64\Release>Project2.exe >> Number of devices: 2595 >> Result: 0 >> >> D:\MSVS2019\Projects\Project2\x64\Release> >> --- Release --- >> >> Code of my client application: >> #include "helloworldwinrt.h" >> #include >> >> int main() >> { >> int result = print_number_of_devices(); >> printf("Result: %d\n", result); >> } >> >> "I note that your CPP library is not really returning a string back to >> Java, but it's doing a `cout` to print things on the terminal console." --- >> Yes. >> >> " It's unlikely that Panama will have any effect here." --- It doesn't look >> like that yet. Could someone practically try it? >> >> Thanks >> Ladislav From mail at smogura.eu Tue Dec 14 16:58:48 2021 From: mail at smogura.eu (=?utf-8?B?UmFkb3PFgmF3IFNtb2d1cmE=?=) Date: Tue, 14 Dec 2021 16:58:48 +0000 Subject: Problem with concating of multiple wide string in wcout - unnecessary space after each charcater In-Reply-To: References: Message-ID: Hi, Sorry for obvious misprint from prev message. And just to emphasize more what Maurizio told. Generally terminal is just serial character stream (8bits, originally it was 7). This how this bits will be processed depends on terminal and locale. One terminal can process it byte by byte, 2nd one can be so smart to process few bytes and print UTF-8, some other UTF-16, some can change colors for specified bytes sequences - this all depends on term and configuration - not so much standard protocols here (although UTF-8 right now use everyone). Plain Win terminal is a basic stuff and may not support all things. You can try with different terminals / consoles. (I?m more NIX guy, but there?s nice terminal from MS store to download). BR, Rado > On Dec 14, 2021, at 5:37 PM, Rados?aw Smogura wrote: > > ?Hi, > > Can it be released to terminal? Maybe your terminal does not accept wide chars and the space is 0x00? I wonder if you could copy paste output form terminal to some file and check hex content, or forward output to text file and check hex? > > BR, > Rado > >> On Dec 14, 2021, at 5:22 PM, Jorn Vernee wrote: >> >> ?(Sending my earlier reply to panama-dev as well) >> >> Hi Ladislav, >> >> I'm also not able to reproduce the issue. Can we try a simpler example first? >> >> I have a lib.cpp file like so: >> >> #include >> >> extern "C" >> __declspec(dllexport) >> void print() { >> std::wcout << "Testing wcout" << std::endl; >> } >> >> A CMakeLists.txt to compile it: >> >> cmake_minimum_required(VERSION 3.14) >> project(TestingWCout) >> >> add_library(Lib SHARED lib.cpp) >> >> install(TARGETS Lib) >> >> And a file Test.java like so: >> >> import jdk.incubator.foreign.*; >> import java.lang.invoke.*; >> >> public class Test { >> public static void main(String[] args) throws Throwable { >> System.loadLibrary("Lib"); >> MemoryAddress sym = SymbolLookup.loaderLookup().lookup("print").get(); >> MethodHandle mh = CLinker.getInstance().downcallHandle(sym, MethodType.methodType(void.class), FunctionDescriptor.ofVoid()); >> mh.invokeExact(); >> } >> } >> >> And, using the panama snapshot: >> >>> java --version >> openjdk 17-panama 2021-09-14 >> OpenJDK Runtime Environment (build 17-panama+3-167) >> OpenJDK 64-Bit Server VM (build 17-panama+3-167, mixed mode, sharing) >> >> Build and run it with (I've used powershell here): >> >> $ cmake -B build -S . '-DCMAKE_INSTALL_PREFIX=install' -T host=x64 -A x64 >> $ cmake --build build --config Release --target install >> $ java --add-modules jdk.incubator.foreign --enable-native-access=ALL-UNNAMED '-Djava.library.path=./install/bin' Test.java >> >> This ends up printing: >> >> WARNING: Using incubator modules: jdk.incubator.foreign >> warning: using incubating module(s): jdk.incubator.foreign >> 1 warning >> Testing wcout >> >> Could you try and see if that works? I've also uploaded the files here: http://cr.openjdk.java.net/~jvernee/wcout/ >> >> Thanks, >> Jorn >> >> >>>> On 14/12/2021 12:47, Ladislav T?r?k wrote: >>> Here is copy of my conversation with Maurizio Cimadamore: >>> 1. email by me: >>> Hi, >>> >>> use the example panama-tutorial-005 on >>> https://github.com/tornaia/panama-tutorial. >>> I am checked and result in my console on Windows (CMD) is: >>> --- >>> D:\repositories\moje\GitHub\tornaia\panama-tutorial\panama-tutorial-005>java >>> --enable-preview --add-modules jdk.incubator.foreign >>> --enable-native-access=ALL-UNNAMED >>> -Djava.library.path=lib/helloworldwinrt/target -classpath >>> target/classes;lib/target/jar/* >>> com.github.tornaia.panama.tutorial005.Tutorial005 >>> WARNING: Using incubator modules: jdk.incubator.foreign >>> Start >>> N u m b e r o f d e v i c e s : 2 5 9 5 >>> End >>> >>> D:\repositories\moje\GitHub\tornaia\panama-tutorial\panama-tutorial-005> >>> --- >>> See space after each character of started in place where is used concating >>> of multiple wide string in wcout. >>> !!! Build the sample is in Microsoft Visual Studio 2019, configuration is >>> Release x64 !!! For configuration Debug x64 is all ok. >>> Output is: >>> --- >>> D:\repositories\moje\GitHub\tornaia\panama-tutorial\panama-tutorial-005>java >>> --enable-preview --add-modules jdk.incubator.foreign >>> --enable-native-access=ALL-UNNAMED >>> -Djava.library.path=lib/helloworldwinrt/target -classpath >>> target/classes;lib/target/jar/* >>> com.github.tornaia.panama.tutorial005.Tutorial005 >>> WARNING: Using incubator modules: jdk.incubator.foreign >>> Start >>> Number of devices: 2595 >>> End >>> >>> D:\repositories\moje\GitHub\tornaia\panama-tutorial\panama-tutorial-005> >>> --- >>> >>> Thanks. >>> >>> 2. email by Maurizio Cimadamore (his answer on my 1. email by me): >>> >>> Adding Jorn, who might know more. >>> >>> One control question first: have you tried calling your C++ code directly >>> (e.g. w/o Panama, using a `main`) ? I have a feeling that you might get the >>> same behavior there. I note that your CPP library is not really returning a >>> string back to Java, but it's doing a `cout` to print things on the >>> terminal console. It's unlikely that Panama will have any effect here. >>> >>> (in general, please use mailing list :-)). >>> >>> Thanks >>> Maurizio >>> >>> *** Here is my reaction on previous 2. email by Maurizio Cimadamore *** >>> I was try of calling my C++ code directly (without Panama, using a 'main') >>> in other application - building of this application in Microsoft Visual >>> Studio 2019, configuration1 Release x64 and configuration2 Debug x64 and is >>> all ok (in both cases): >>> --- Debug --- >>> Microsoft Windows [Version 10.0.19043.1348] >>> (c) Microsoft Corporation. All rights reserved. >>> >>> D:\MSVS2019\Projects\Project2\x64\Debug>Project2.exe >>> Number of devices: 2595 >>> Result: 0 >>> >>> D:\MSVS2019\Projects\Project2\x64\Debug> >>> --- Debug --- >>> >>> --- Release --- >>> Microsoft Windows [Version 10.0.19043.1348] >>> (c) Microsoft Corporation. All rights reserved. >>> >>> D:\MSVS2019\Projects\Project2\x64\Release>Project2.exe >>> Number of devices: 2595 >>> Result: 0 >>> >>> D:\MSVS2019\Projects\Project2\x64\Release> >>> --- Release --- >>> >>> Code of my client application: >>> #include "helloworldwinrt.h" >>> #include >>> >>> int main() >>> { >>> int result = print_number_of_devices(); >>> printf("Result: %d\n", result); >>> } >>> >>> "I note that your CPP library is not really returning a string back to >>> Java, but it's doing a `cout` to print things on the terminal console." --- >>> Yes. >>> >>> " It's unlikely that Panama will have any effect here." --- It doesn't look >>> like that yet. Could someone practically try it? >>> >>> Thanks >>> Ladislav From jorn.vernee at oracle.com Tue Dec 14 17:13:29 2021 From: jorn.vernee at oracle.com (Jorn Vernee) Date: Tue, 14 Dec 2021 18:13:29 +0100 Subject: [External] : Re: Problem with concating of multiple wide string in wcout - unnecessary space after each charcater In-Reply-To: References: Message-ID: <1ffe74b7-cc47-54e4-ad49-fb32bf5f7ae2@oracle.com> Ah, good catch Rado! I was using WindowsTerminal.exe, which is a new-ish Windows terminal [1]. If I switch to vanilla cmd.exe (conhost.exe), I can reproduce the issue with the simplified example I posted earlier: ??? WARNING: Using incubator modules: jdk.incubator.foreign ??? warning: using incubating module(s): jdk.incubator.foreign ??? 1 warning ??? T e s t i n g?? w c o u t So, it seems to be a console issue. Jorn [1]: https://github.com/microsoft/terminal On 14/12/2021 17:58, Rados?aw Smogura wrote: > Hi, > > Sorry for obvious misprint from prev message. > > And just to emphasize more what Maurizio told. > > Generally terminal is just serial character stream (8bits, originally it was 7). > > This how this bits will be processed depends on terminal and locale. One terminal can process it byte by byte, 2nd one can be so smart to process few bytes and print UTF-8, some other UTF-16, some can change colors for specified bytes sequences - this all depends on term and configuration - not so much standard protocols here (although UTF-8 right now use everyone). > > Plain Win terminal is a basic stuff and may not support all things. You can try with different terminals / consoles. (I?m more NIX guy, but there?s nice terminal from MS store to download). > > BR, > Rado > >> On Dec 14, 2021, at 5:37 PM, Rados?aw Smogura wrote: >> >> ?Hi, >> >> Can it be released to terminal? Maybe your terminal does not accept wide chars and the space is 0x00? I wonder if you could copy paste output form terminal to some file and check hex content, or forward output to text file and check hex? >> >> BR, >> Rado >> >>> On Dec 14, 2021, at 5:22 PM, Jorn Vernee wrote: >>> >>> ?(Sending my earlier reply to panama-dev as well) >>> >>> Hi Ladislav, >>> >>> I'm also not able to reproduce the issue. Can we try a simpler example first? >>> >>> I have a lib.cpp file like so: >>> >>> #include >>> >>> extern "C" >>> __declspec(dllexport) >>> void print() { >>> std::wcout << "Testing wcout" << std::endl; >>> } >>> >>> A CMakeLists.txt to compile it: >>> >>> cmake_minimum_required(VERSION 3.14) >>> project(TestingWCout) >>> >>> add_library(Lib SHARED lib.cpp) >>> >>> install(TARGETS Lib) >>> >>> And a file Test.java like so: >>> >>> import jdk.incubator.foreign.*; >>> import java.lang.invoke.*; >>> >>> public class Test { >>> public static void main(String[] args) throws Throwable { >>> System.loadLibrary("Lib"); >>> MemoryAddress sym = SymbolLookup.loaderLookup().lookup("print").get(); >>> MethodHandle mh = CLinker.getInstance().downcallHandle(sym, MethodType.methodType(void.class), FunctionDescriptor.ofVoid()); >>> mh.invokeExact(); >>> } >>> } >>> >>> And, using the panama snapshot: >>> >>>> java --version >>> openjdk 17-panama 2021-09-14 >>> OpenJDK Runtime Environment (build 17-panama+3-167) >>> OpenJDK 64-Bit Server VM (build 17-panama+3-167, mixed mode, sharing) >>> >>> Build and run it with (I've used powershell here): >>> >>> $ cmake -B build -S . '-DCMAKE_INSTALL_PREFIX=install' -T host=x64 -A x64 >>> $ cmake --build build --config Release --target install >>> $ java --add-modules jdk.incubator.foreign --enable-native-access=ALL-UNNAMED '-Djava.library.path=./install/bin' Test.java >>> >>> This ends up printing: >>> >>> WARNING: Using incubator modules: jdk.incubator.foreign >>> warning: using incubating module(s): jdk.incubator.foreign >>> 1 warning >>> Testing wcout >>> >>> Could you try and see if that works? I've also uploaded the files here: http://cr.openjdk.java.net/~jvernee/wcout/ >>> >>> Thanks, >>> Jorn >>> >>> >>>>> On 14/12/2021 12:47, Ladislav T?r?k wrote: >>>> Here is copy of my conversation with Maurizio Cimadamore: >>>> 1. email by me: >>>> Hi, >>>> >>>> use the example panama-tutorial-005 on >>>> https://urldefense.com/v3/__https://github.com/tornaia/panama-tutorial__;!!ACWV5N9M2RV99hQ!eEkLJqAKWjpuD1XsxSiIJVO9XuqJjk1I3F_4VRr-lFqoUiYPRXj03c5P5zUkdh_7$ . >>>> I am checked and result in my console on Windows (CMD) is: >>>> --- >>>> D:\repositories\moje\GitHub\tornaia\panama-tutorial\panama-tutorial-005>java >>>> --enable-preview --add-modules jdk.incubator.foreign >>>> --enable-native-access=ALL-UNNAMED >>>> -Djava.library.path=lib/helloworldwinrt/target -classpath >>>> target/classes;lib/target/jar/* >>>> com.github.tornaia.panama.tutorial005.Tutorial005 >>>> WARNING: Using incubator modules: jdk.incubator.foreign >>>> Start >>>> N u m b e r o f d e v i c e s : 2 5 9 5 >>>> End >>>> >>>> D:\repositories\moje\GitHub\tornaia\panama-tutorial\panama-tutorial-005> >>>> --- >>>> See space after each character of started in place where is used concating >>>> of multiple wide string in wcout. >>>> !!! Build the sample is in Microsoft Visual Studio 2019, configuration is >>>> Release x64 !!! For configuration Debug x64 is all ok. >>>> Output is: >>>> --- >>>> D:\repositories\moje\GitHub\tornaia\panama-tutorial\panama-tutorial-005>java >>>> --enable-preview --add-modules jdk.incubator.foreign >>>> --enable-native-access=ALL-UNNAMED >>>> -Djava.library.path=lib/helloworldwinrt/target -classpath >>>> target/classes;lib/target/jar/* >>>> com.github.tornaia.panama.tutorial005.Tutorial005 >>>> WARNING: Using incubator modules: jdk.incubator.foreign >>>> Start >>>> Number of devices: 2595 >>>> End >>>> >>>> D:\repositories\moje\GitHub\tornaia\panama-tutorial\panama-tutorial-005> >>>> --- >>>> >>>> Thanks. >>>> >>>> 2. email by Maurizio Cimadamore (his answer on my 1. email by me): >>>> >>>> Adding Jorn, who might know more. >>>> >>>> One control question first: have you tried calling your C++ code directly >>>> (e.g. w/o Panama, using a `main`) ? I have a feeling that you might get the >>>> same behavior there. I note that your CPP library is not really returning a >>>> string back to Java, but it's doing a `cout` to print things on the >>>> terminal console. It's unlikely that Panama will have any effect here. >>>> >>>> (in general, please use mailing list :-)). >>>> >>>> Thanks >>>> Maurizio >>>> >>>> *** Here is my reaction on previous 2. email by Maurizio Cimadamore *** >>>> I was try of calling my C++ code directly (without Panama, using a 'main') >>>> in other application - building of this application in Microsoft Visual >>>> Studio 2019, configuration1 Release x64 and configuration2 Debug x64 and is >>>> all ok (in both cases): >>>> --- Debug --- >>>> Microsoft Windows [Version 10.0.19043.1348] >>>> (c) Microsoft Corporation. All rights reserved. >>>> >>>> D:\MSVS2019\Projects\Project2\x64\Debug>Project2.exe >>>> Number of devices: 2595 >>>> Result: 0 >>>> >>>> D:\MSVS2019\Projects\Project2\x64\Debug> >>>> --- Debug --- >>>> >>>> --- Release --- >>>> Microsoft Windows [Version 10.0.19043.1348] >>>> (c) Microsoft Corporation. All rights reserved. >>>> >>>> D:\MSVS2019\Projects\Project2\x64\Release>Project2.exe >>>> Number of devices: 2595 >>>> Result: 0 >>>> >>>> D:\MSVS2019\Projects\Project2\x64\Release> >>>> --- Release --- >>>> >>>> Code of my client application: >>>> #include "helloworldwinrt.h" >>>> #include >>>> >>>> int main() >>>> { >>>> int result = print_number_of_devices(); >>>> printf("Result: %d\n", result); >>>> } >>>> >>>> "I note that your CPP library is not really returning a string back to >>>> Java, but it's doing a `cout` to print things on the terminal console." --- >>>> Yes. >>>> >>>> " It's unlikely that Panama will have any effect here." --- It doesn't look >>>> like that yet. Could someone practically try it? >>>> >>>> Thanks >>>> Ladislav From mail at smogura.eu Tue Dec 14 18:56:55 2021 From: mail at smogura.eu (Rado Smogura) Date: Tue, 14 Dec 2021 19:56:55 +0100 Subject: status of VM long loop optimizations - call for action In-Reply-To: <9f60f6fe-6ab2-b457-380f-1456f4fd0828@oracle.com> References: <4072546c-e646-2ffd-6d01-af55e0cb8381@gmail.com> <7d330c42-1438-852e-f53f-7a74c6e5d3d3@gmail.com> <243775208.1333800.1639175610750.JavaMail.zimbra@u-pem.fr> <9f60f6fe-6ab2-b457-380f-1456f4fd0828@oracle.com> Message-ID: Hi all, The CallLeaf is stuff from garbage collector... BR, Rado On 13.12.2021 23:10, Maurizio Cimadamore wrote: > > On 13/12/2021 19:49, Rado Smogura wrote: >> It's mine part. >> >> >> The PosixInputStream.read is just quite large, so it does not get >> inlined and even if it would it uses Polling Allocator which uses has >> synchronized code (so in any way hard to unroll) >> >> >> However I've found something like this in graph >> >> CallLeaf >> >> jvms: Binding$Context::ofAllocator @ bci:0 (line 273) >> DirectMethodHandle$Holder::invokeStatic @ bci:10 >> 0x00000008010a7400::invoke @ > > That's odd - I mean, the BindingContext is used when setting up > downcall method handles, or upcall stubs. But should not be invoked in > the hot path. > > That said, in jdk/jdk calls that need to spill arguments on the stack > are not intrinsified (but they are on the panama repo). I wonder if > that is playing a role here? Typically, if you see a lot of > ProgrammableInvoker stuff showing up in -XX:+PrintInlining, that's the > culprit. > > Maurizio > >> >> >> I put there @ForceInline, but for me there's no huge impact. >> >> >> Kind regards, >> >> Rado >> >> >> On 13.12.2021 20:27, Maurizio Cimadamore wrote: >>> >>> On 13/12/2021 17:50, Rado Smogura wrote: >>>> Hi, >>>> >>>> >>>> Checked from my side, and actually on my side this code is more >>>> complicated and there's no direct loop unrolling. >>> >>> Which code is more complicated? The one with the new patch which >>> enabled the VM to do its job? >>> >>> If that's the case it would be great if we could boil it down to a >>> simple-ish reproducer. >>> >>> Thanks >>> Maurizio >>> >>>> >>>> >>>> Kind regards, >>>> >>>> Rado >>>> >>>> On 13.12.2021 09:57, Rado Smogura wrote: >>>>> Definitely yes! >>>>> >>>>> >>>>> I'll check later the ASM output and graphs, to see if there's >>>>> something which may look strange. >>>>> >>>>> >>>>> I really would like to see numbers with heap arrays pinning! >>>>> >>>>> >>>>> BR, >>>>> >>>>> Rado >>>>> >>>>> >>>>> P. S. I think I need to finish package it and put it into public >>>>> repo - it's drop-in replacement cooperating with current JDK >>>>> Socket factories. >>>>> >>>>> On 11.12.2021 23:30, Maurizio Cimadamore wrote: >>>>>> Thanks Rado, >>>>>> seems like we're in the same ballpark? (which is great, since >>>>>> we're removing a lot of complexity from the implementation) >>>>>> >>>>>> (P.S. it's impressive how much faster your implementation is >>>>>> compared to JDK sockets, in the 2nd and 3rd bench). >>>>>> >>>>>> Maurizio >>>>>> >>>>>> On 11/12/2021 16:38, Rado Smogura wrote: >>>>>>> Hi all, >>>>>>> >>>>>>> >>>>>>> Just for comparison, run against April commits >>>>>>> >>>>>>> >>>>>>> "Before" >>>>>>> >>>>>>> Benchmark????????????????????????? Mode? Cnt Score Error Units >>>>>>> SocketReadJdk.teatRead4k????????? thrpt??? 5 939997.688 ? >>>>>>> 74877.602? ops/s >>>>>>> SocketReadJdk.testRead16b???????? thrpt??? 5 1881053.005 ? >>>>>>> 72637.626? ops/s >>>>>>> SocketReadJdk.testRead8bOffset??? thrpt??? 5 1924527.582 ? >>>>>>> 38308.317? ops/s >>>>>>> SocketReadPosix.teatRead4k??????? thrpt??? 5 1157621.341 ? >>>>>>> 106649.696? ops/s >>>>>>> SocketReadPosix.testRead16b?????? thrpt??? 5 3059826.951 ? >>>>>>> 232852.053? ops/s >>>>>>> SocketReadPosix.testRead8bOffset? thrpt??? 5 2983402.371 ? >>>>>>> 269646.104? ops/s >>>>>>> >>>>>>> >>>>>>> "Current" - other runs >>>>>>> Benchmark????????????????????????? Mode? Cnt Score Error Units >>>>>>> Benchmark????????????????????????? Mode? Cnt Score Error Units >>>>>>> SocketReadPosix.teatRead4k??????? thrpt??? 5 1163288.078 ? >>>>>>> 263855.161? ops/s >>>>>>> SocketReadPosix.testRead16b?????? thrpt??? 5 3118810.213 ? >>>>>>> 68389.408? ops/s >>>>>>> SocketReadPosix.testRead8bOffset? thrpt??? 5 2696627.066 ? >>>>>>> 297527.130? ops/s >>>>>>> >>>>>>> I have to point out that this benchmark is not perfect, as it >>>>>>> really reads data from the back server, so other noise can apply. >>>>>>> >>>>>>> BR, >>>>>>> >>>>>>> Rado >>>>>>> >>>>>>>> Hi Maurizio, >>>>>>>> >>>>>>>> >>>>>>>> Checked against JExtract branch >>>>>>>> 2617fbfa3050913d34906f87027b8be8f10e53a9 >>>>>>>> >>>>>>>> Project: >>>>>>>> https://urldefense.com/v3/__https://github.com/rsmogura/panama-io__;!!ACWV5N9M2RV99hQ!eHJDUHk-4w7ACAv4d-zx4jrdqx8ZXOjSs2e8nfl6E_dVpYHxULfx83N2zQYlpyZ0FiCfiSk$ >>>>>>>> >>>>>>>> Benchmark????????????????????????? Mode? Cnt Score Error Units >>>>>>>> SocketReadJdk.teatRead4k????????? thrpt??? 5 947424.435 ? >>>>>>>> 74922.610? ops/s >>>>>>>> SocketReadJdk.testRead16b???????? thrpt??? 5 1823338.685 ? >>>>>>>> 33626.860? ops/s >>>>>>>> SocketReadJdk.testRead8bOffset??? thrpt??? 5 1817956.804 ? >>>>>>>> 25456.785? ops/s >>>>>>>> SocketReadPosix.teatRead4k??????? thrpt??? 5 1205470.257 ? >>>>>>>> 548343.499? ops/s >>>>>>>> SocketReadPosix.testRead16b?????? thrpt??? 5 2710119.664 ? >>>>>>>> 227053.749? ops/s >>>>>>>> SocketReadPosix.testRead8bOffset? thrpt??? 5 2968281.197 ? >>>>>>>> 216628.917? ops/s >>>>>>>> >>>>>>>> Numbers look amazing - I have to check if it's still does what >>>>>>>> it's intended to do (so write some integration test). >>>>>>>> >>>>>>>> Kind regards, >>>>>>>> >>>>>>>> Rado >>>>>>>> >>>>>>>> On 10.12.2021 23:33, Remi Forax wrote: >>>>>>>>> Hi Ty, >>>>>>>>> there is a simple trick to be sure to get the best performance. >>>>>>>>> >>>>>>>>> When you create the VarHandle, call withInvokeExactBehavior >>>>>>>>> [1] on it, >>>>>>>>> the returned VarHandle will throw an error at runtime instead >>>>>>>>> of trying to convert arguments. >>>>>>>>> >>>>>>>>> R?mi >>>>>>>>> >>>>>>>>> [1] >>>>>>>>> https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/invoke/VarHandle.html#withInvokeExactBehavior() >>>>>>>>> >>>>>>>>> ----- Original Message ----- >>>>>>>>>> From: "Ty Young" >>>>>>>>>> To: "Maurizio Cimadamore" , >>>>>>>>>> "panama-dev at openjdk.java.net'" >>>>>>>>>> Sent: Friday, December 10, 2021 11:18:45 PM >>>>>>>>>> Subject: Re: status of VM long loop optimizations - call for >>>>>>>>>> action >>>>>>>>>> Yeah, I forgot that. Apologies. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On 12/10/21 4:06 PM, Maurizio Cimadamore wrote: >>>>>>>>>>> Hi, >>>>>>>>>>> I don't think the 1ns difference is real - if you look at >>>>>>>>>>> the error in >>>>>>>>>>> the second run is higher than that, so it's in the noise. >>>>>>>>>>> >>>>>>>>>>> And, since there's no loop, I don't think this specific kind of >>>>>>>>>>> benchmark should be affected in any way by the VM >>>>>>>>>>> improvements. What >>>>>>>>>>> the VM can help with is to remove bound checks when you keep >>>>>>>>>>> accessing >>>>>>>>>>> a segment in a loop, as C2 is now able to correctly apply an >>>>>>>>>>> optimization called "bound check elimination" or BCE. This >>>>>>>>>>> optimization is routinely applied on Java array access, but >>>>>>>>>>> it used to >>>>>>>>>>> fail for memory segments because the bound of a memory >>>>>>>>>>> segment is >>>>>>>>>>> stored in a long variable, not an int. >>>>>>>>>>> >>>>>>>>>>> That said, note that you are passing inexact arguments to >>>>>>>>>>> the var >>>>>>>>>>> handle (e.g. you are passing an int offset instead of a long >>>>>>>>>>> one; try >>>>>>>>>>> to use "0L" instead of "0"). >>>>>>>>>>> >>>>>>>>>>> Maurizio >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On 10/12/2021 21:34, Ty Young wrote: >>>>>>>>>>>> A simple write benchmark I had already made for specialized >>>>>>>>>>>> VarHandles(AKA insertCoordinates) seems to get about 1ns >>>>>>>>>>>> consistently >>>>>>>>>>>> faster, so I guess these changes helped a bit? >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Before: >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Benchmark Mode Cnt Score Error >>>>>>>>>>>> Units >>>>>>>>>>>> VarHandleBenchmark.genericHandleBenchmark avgt 5 21.155 ? >>>>>>>>>>>> 0.145? ns/op >>>>>>>>>>>> VarHandleBenchmark.specFinalHandleBenchmark avgt 5 0.678 ? >>>>>>>>>>>> 0.201? ns/op >>>>>>>>>>>> VarHandleBenchmark.specHandleBenchmark avgt 5 17.323 ? >>>>>>>>>>>> 1.324? ns/op >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> After: >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Benchmark Mode Cnt Score Error >>>>>>>>>>>> Units >>>>>>>>>>>> VarHandleBenchmark.genericHandleBenchmark avgt 5 20.304 ? >>>>>>>>>>>> 1.466? ns/op >>>>>>>>>>>> VarHandleBenchmark.specFinalHandleBenchmark avgt 5 0.652 ? >>>>>>>>>>>> 0.156? ns/op >>>>>>>>>>>> VarHandleBenchmark.specHandleBenchmark avgt 5 17.266 ? >>>>>>>>>>>> 1.712? ns/op >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Benchmark: >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> ???? public static final MemorySegment SEGMENT = >>>>>>>>>>>> MemorySegment.allocateNative(ValueLayout.JAVA_INT, >>>>>>>>>>>> ResourceScope.newSharedScope()); >>>>>>>>>>>> >>>>>>>>>>>> ???? public static final VarHandle GENERIC_HANDLE = >>>>>>>>>>>> MemoryHandles.varHandle(ValueLayout.JAVA_INT); >>>>>>>>>>>> >>>>>>>>>>>> ???? public static VarHandle SPEC_HANDLE = >>>>>>>>>>>> MemoryHandles.insertCoordinates(GENERIC_HANDLE, 0, SEGMENT, >>>>>>>>>>>> 0); >>>>>>>>>>>> >>>>>>>>>>>> ???? public static final VarHandle SPEC_HANDLE_FINAL = >>>>>>>>>>>> MemoryHandles.insertCoordinates(GENERIC_HANDLE, 0, SEGMENT, >>>>>>>>>>>> 0); >>>>>>>>>>>> >>>>>>>>>>>> ???? @Benchmark >>>>>>>>>>>> ???? @BenchmarkMode(Mode.AverageTime) >>>>>>>>>>>> ???? @OutputTimeUnit(TimeUnit.NANOSECONDS) >>>>>>>>>>>> ???? public void genericHandleBenchmark() >>>>>>>>>>>> ???? { >>>>>>>>>>>> ???????? GENERIC_HANDLE.set(SEGMENT, 0, 5); >>>>>>>>>>>> ???? } >>>>>>>>>>>> >>>>>>>>>>>> ???? @Benchmark >>>>>>>>>>>> ???? @BenchmarkMode(Mode.AverageTime) >>>>>>>>>>>> ???? @OutputTimeUnit(TimeUnit.NANOSECONDS) >>>>>>>>>>>> ???? public void specHandleBenchmark() >>>>>>>>>>>> ???? { >>>>>>>>>>>> ???????? SPEC_HANDLE.set(5); >>>>>>>>>>>> ???? } >>>>>>>>>>>> >>>>>>>>>>>> ???? @Benchmark >>>>>>>>>>>> ???? @BenchmarkMode(Mode.AverageTime) >>>>>>>>>>>> ???? @OutputTimeUnit(TimeUnit.NANOSECONDS) >>>>>>>>>>>> ???? public void specFinalHandleBenchmark() >>>>>>>>>>>> ???? { >>>>>>>>>>>> ???????? SPEC_HANDLE_FINAL.set(5); >>>>>>>>>>>> ???? } >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Sort of off-topic but... I don't remember anyone saying >>>>>>>>>>>> previously >>>>>>>>>>>> that insertCoordinates would give that big of a >>>>>>>>>>>> difference(or any at >>>>>>>>>>>> all!) so it's surprising to me. I was expecting a performance >>>>>>>>>>>> decrease due to the handle no longer being static-final. >>>>>>>>>>>> Can javac >>>>>>>>>>>> maybe optimize this so that any case where: >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> GENERIC_HANDLE.set(SEGMENT, 0, 5); >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> is, an optimized VarHandle is created at compile time that is >>>>>>>>>>>> equivalent to SPEC_HANDLE and inserted there instead? >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On 12/10/21 4:55 AM, Maurizio Cimadamore wrote: >>>>>>>>>>>>> (resending since mailing lists were down yesterday - I >>>>>>>>>>>>> apologize if >>>>>>>>>>>>> this results in duplicates). >>>>>>>>>>>>> >>>>>>>>>>>>> Hi, >>>>>>>>>>>>> few days ago some VM enhancements were integrated [1, 2], >>>>>>>>>>>>> so it is >>>>>>>>>>>>> time to take a look again at where we are. >>>>>>>>>>>>> >>>>>>>>>>>>> I put together a branch which removes all workarounds >>>>>>>>>>>>> (both for long >>>>>>>>>>>>> loops and for alignment checks): >>>>>>>>>>>>> >>>>>>>>>>>>> https://urldefense.com/v3/__https://github.com/mcimadamore/jdk/tree/long_loop_workarounds_removal__;!!ACWV5N9M2RV99hQ!eHJDUHk-4w7ACAv4d-zx4jrdqx8ZXOjSs2e8nfl6E_dVpYHxULfx83N2zQYlpyZ0wgQ-IjY$ >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> I also ran memory access benchmarks before/after, to see >>>>>>>>>>>>> what the >>>>>>>>>>>>> difference is like - here's a visual report: >>>>>>>>>>>>> >>>>>>>>>>>>> https://urldefense.com/v3/__https://jmh.morethan.io/?gists=dfa7075db33f7e6a2690ac80a64aa252,7f894f48460a6a0c9891cbe3158b43a7__;!!ACWV5N9M2RV99hQ!eHJDUHk-4w7ACAv4d-zx4jrdqx8ZXOjSs2e8nfl6E_dVpYHxULfx83N2zQYlpyZ0CJV9Oz8$ >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Overall, I think the numbers are solid. The branch w/o >>>>>>>>>>>>> workarounds >>>>>>>>>>>>> keep up with mainline in basically all cases but one >>>>>>>>>>>>> (UnrolledAccess >>>>>>>>>>>>> - this code pattern needs more work in the VM, but Roland >>>>>>>>>>>>> Westrelin >>>>>>>>>>>>> has identified a possible fix for it). In some cases >>>>>>>>>>>>> (parallel >>>>>>>>>>>>> tests) we see quite a big jump forward. >>>>>>>>>>>>> >>>>>>>>>>>>> I think it's hard to say how these results will translate >>>>>>>>>>>>> in real >>>>>>>>>>>>> world - my gut feeling is that the simpler bound checking >>>>>>>>>>>>> logic will >>>>>>>>>>>>> almost invariably result in performance improvements with >>>>>>>>>>>>> more >>>>>>>>>>>>> complex code patterns, despite what synthetic benchmark >>>>>>>>>>>>> might say >>>>>>>>>>>>> (the current logic in mainline is fragile as it has to >>>>>>>>>>>>> guard against >>>>>>>>>>>>> integer overflow, which in turns sometimes kills BCE >>>>>>>>>>>>> optimizations). >>>>>>>>>>>>> >>>>>>>>>>>>> So I'd be inclined to integrate these changes in 18. >>>>>>>>>>>>> >>>>>>>>>>>>> If you gave a project that works agaist the Java 18 API, >>>>>>>>>>>>> it would be >>>>>>>>>>>>> very helpful for us if you could try it on the above >>>>>>>>>>>>> branch and >>>>>>>>>>>>> report back. This will help us make a more informed decision. >>>>>>>>>>>>> >>>>>>>>>>>>> Cheers >>>>>>>>>>>>> Maurizio >>>>>>>>>>>>> >>>>>>>>>>>>> [1] - https://bugs.openjdk.java.net/browse/JDK-8276116 >>>>>>>>>>>>> [2] - https://bugs.openjdk.java.net/browse/JDK-8277850 >>>>>>>>>>>>> >>>>>>>>>>>>> From jvernee at openjdk.java.net Wed Dec 15 14:02:30 2021 From: jvernee at openjdk.java.net (Jorn Vernee) Date: Wed, 15 Dec 2021 14:02:30 GMT Subject: [foreign-memaccess+abi] RFR: 8278151: Heap segments should handle alignment constraints in a deterministic fashion [v6] In-Reply-To: References: Message-ID: On Mon, 13 Dec 2021 12:03:26 GMT, Maurizio Cimadamore wrote: >> This patch fixes the issue with alignment checks on heap segment leading to failures which depend on VM implementation details and layout choices. >> >> This is discussed in more details here: >> https://mail.openjdk.java.net/pipermail/panama-dev/2021-November/015852.html >> >> The fix consists in adding a *max alignment* mask to all segments. Native segments have mask set at 0, whereas heap segment have the mask set at the element size of their backing array (e.g. 1 for `byte[]`, 2 for `short[]`/`char[]` and so forth). >> >> The alignment check is the computed as follows: >> >> >> if (((address | maxAlignMask) & alignmentMask) != 0) { >> throw ... >> } >> >> >> Where `address` is the long address being dereferenced, `maxAlignMask` is the max alignment associated with the segment being dereferenced, and `alignmentMask` is the alignment associated with the layout used during a dereference operation. >> This patch also applies alignment checks to bulk copy operations as well, and it consolidates the way in which alignment checks are carried out (by adding a couple of helper methods, in `Utils` and `AbstractMemorySegment`, respectively). >> >> This patch also changes alignment errors to uniformly throw IllegalArgumentException, in all cases. >> >> Finally, this patch clarifies that during bulk copy and spliterator calls, the element layout alignment cannot be bigger than its size (as the size is used as a stride). >> >> A new test `TestHeapAlignment` has been added to check that alignment of heap segment is correctly enforced. >> >> Performance-wise, this patch doesn't change anything; that's because the value layout constants in `ValueLayout` are all unaligned. For code using aligned layout, some slight regression when using heap segment is possible (whereas native segment should have same performance as before). Eventually, these performance issues should disappear once [1] is fixed. >> >> [1] - https://bugs.openjdk.java.net/browse/JDK-8277850 > > Maurizio Cimadamore 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 eight additional commits since the last revision: > > - Address review comments > - Merge branch 'foreign-memaccess+abi' into heap_align > - Merge branch 'foreign-memaccess+abi' into heap_align > - Check for hyper alignment in indexed getter/setters > Improve javadoc (address review comment) > Add more tests > - Strengthen test > - Improve support for skipAlignmentCheck > - Add benchmarks for aligned access > - Initial push Marked as reviewed by jvernee (Committer). ------------- PR: https://git.openjdk.java.net/panama-foreign/pull/622 From duke at openjdk.java.net Wed Dec 15 14:28:21 2021 From: duke at openjdk.java.net (duke) Date: Wed, 15 Dec 2021 14:28:21 GMT Subject: git: openjdk/panama-foreign: foreign-jextract: 2 new changesets Message-ID: <28a37d67-e8a4-4334-aa8f-edbb75acda9d@openjdk.org> Changeset: 9200854c Author: Maurizio Cimadamore Date: 2021-12-15 14:26:43 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9200854c79a1732fa2d79dd2466651149bc285e2 8278151: Heap segments should handle alignment constraints in a deterministic fashion Reviewed-by: psandoz, jvernee ! src/java.base/share/classes/java/lang/invoke/MemoryAccessVarHandleBase.java ! src/java.base/share/classes/java/lang/invoke/X-VarHandleMemoryAccess.java.template ! src/java.base/share/classes/jdk/internal/access/foreign/MemorySegmentProxy.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemoryAddress.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemorySegment.java ! src/jdk.incubator.foreign/share/classes/jdk/internal/foreign/AbstractMemorySegmentImpl.java ! src/jdk.incubator.foreign/share/classes/jdk/internal/foreign/HeapMemorySegmentImpl.java ! src/jdk.incubator.foreign/share/classes/jdk/internal/foreign/LayoutPath.java ! src/jdk.incubator.foreign/share/classes/jdk/internal/foreign/MemoryAddressImpl.java ! src/jdk.incubator.foreign/share/classes/jdk/internal/foreign/NativeMemorySegmentImpl.java ! src/jdk.incubator.foreign/share/classes/jdk/internal/foreign/Utils.java ! test/jdk/java/foreign/TestArrayCopy.java + test/jdk/java/foreign/TestHeapAlignment.java ! test/jdk/java/foreign/TestMemoryAccessInstance.java ! test/jdk/java/foreign/TestMemoryAlignment.java ! test/jdk/java/foreign/TestSegmentCopy.java ! test/jdk/java/foreign/TestSpliterator.java ! test/jdk/java/foreign/TestVarHandleCombinators.java ! test/micro/org/openjdk/bench/jdk/incubator/foreign/LoopOverNonConstant.java ! test/micro/org/openjdk/bench/jdk/incubator/foreign/LoopOverNonConstantHeap.java Changeset: ab1be6b0 Author: duke Date: 2021-12-15 14:27:52 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ab1be6b092b655c7d7b5cc4be92bce38350a97a9 Automatic merge of foreign-memaccess+abi into foreign-jextract From mcimadamore at openjdk.java.net Wed Dec 15 14:31:30 2021 From: mcimadamore at openjdk.java.net (Maurizio Cimadamore) Date: Wed, 15 Dec 2021 14:31:30 GMT Subject: [foreign-memaccess+abi] Integrated: 8278151: Heap segments should handle alignment constraints in a deterministic fashion In-Reply-To: References: Message-ID: On Thu, 2 Dec 2021 14:12:31 GMT, Maurizio Cimadamore wrote: > This patch fixes the issue with alignment checks on heap segment leading to failures which depend on VM implementation details and layout choices. > > This is discussed in more details here: > https://mail.openjdk.java.net/pipermail/panama-dev/2021-November/015852.html > > The fix consists in adding a *max alignment* mask to all segments. Native segments have mask set at 0, whereas heap segment have the mask set at the element size of their backing array (e.g. 1 for `byte[]`, 2 for `short[]`/`char[]` and so forth). > > The alignment check is the computed as follows: > > > if (((address | maxAlignMask) & alignmentMask) != 0) { > throw ... > } > > > Where `address` is the long address being dereferenced, `maxAlignMask` is the max alignment associated with the segment being dereferenced, and `alignmentMask` is the alignment associated with the layout used during a dereference operation. > This patch also applies alignment checks to bulk copy operations as well, and it consolidates the way in which alignment checks are carried out (by adding a couple of helper methods, in `Utils` and `AbstractMemorySegment`, respectively). > > This patch also changes alignment errors to uniformly throw IllegalArgumentException, in all cases. > > Finally, this patch clarifies that during bulk copy and spliterator calls, the element layout alignment cannot be bigger than its size (as the size is used as a stride). > > A new test `TestHeapAlignment` has been added to check that alignment of heap segment is correctly enforced. > > Performance-wise, this patch doesn't change anything; that's because the value layout constants in `ValueLayout` are all unaligned. For code using aligned layout, some slight regression when using heap segment is possible (whereas native segment should have same performance as before). Eventually, these performance issues should disappear once [1] is fixed. > > [1] - https://bugs.openjdk.java.net/browse/JDK-8277850 This pull request has now been integrated. Changeset: 9200854c Author: Maurizio Cimadamore URL: https://git.openjdk.java.net/panama-foreign/commit/9200854c79a1732fa2d79dd2466651149bc285e2 Stats: 572 lines in 20 files changed: 538 ins; 0 del; 34 mod 8278151: Heap segments should handle alignment constraints in a deterministic fashion Reviewed-by: psandoz, jvernee ------------- PR: https://git.openjdk.java.net/panama-foreign/pull/622 From duke at openjdk.java.net Wed Dec 15 16:43:59 2021 From: duke at openjdk.java.net (duke) Date: Wed, 15 Dec 2021 16:43:59 GMT Subject: git: openjdk/panama-foreign: created branch foreign-preview based on the branch master containing 0 unique commits Message-ID: <01d65e35-f03f-4ec2-8889-873e254ad208@openjdk.java.net> The new branch foreign-preview is currently identical to the master branch. From maurizio.cimadamore at oracle.com Thu Dec 16 11:12:07 2021 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Thu, 16 Dec 2021 11:12:07 +0000 Subject: status of VM long loop optimizations - call for action In-Reply-To: <9f60f6fe-6ab2-b457-380f-1456f4fd0828@oracle.com> References: <4072546c-e646-2ffd-6d01-af55e0cb8381@gmail.com> <7d330c42-1438-852e-f53f-7a74c6e5d3d3@gmail.com> <243775208.1333800.1639175610750.JavaMail.zimbra@u-pem.fr> <9f60f6fe-6ab2-b457-380f-1456f4fd0828@oracle.com> Message-ID: On 13/12/2021 22:10, Maurizio Cimadamore wrote: > That's odd - I mean, the BindingContext is used when setting up > downcall method handles, or upcall stubs. But should not be invoked in > the hot path. Correction: the ofAllocator call you see might in fact even be in a hot path. A downcall method handle sometimes has to allocator memory for the temp buffers it uses. When that happens, the invocation is wrapped with a try-with-resources (well a MH chain equivalent to that is generated) and a new "binding context" with a SegmentAllocator is created. This should happen only when structs that are too big are passed by referenced by the ABI (I think that happens on Windows) - so we have to create a temp segment holding the struct, and pass the segment pointer to the underlying native function. The temp struct is then destroyed after the call. Upcalls also need an allocator, in case they receive structs by values (again, a temp segment might need to be allocated for the duration of the upcall). So, even if your downcall is fully intrinsified, you might still see calls to BindingContext::ofAllocator, depending on the shape of the called function. It is possible that C2 might have issue in scalarizing the Binding.Context allocation - but that's a separate problem from the one we were discussing (the impact of long loop optimizations). On that topic, I see that Roland has submitted a PR for the remaining perf issue we have seen in our micro benchmarks: https://github.com/openjdk/jdk18/pull/35 I expect that, once integrated, we should then have full performance parity with current workarounds. Maurizio From mail at smogura.eu Thu Dec 16 16:24:18 2021 From: mail at smogura.eu (Rado Smogura) Date: Thu, 16 Dec 2021 17:24:18 +0100 Subject: status of VM long loop optimizations - call for action In-Reply-To: References: <4072546c-e646-2ffd-6d01-af55e0cb8381@gmail.com> <7d330c42-1438-852e-f53f-7a74c6e5d3d3@gmail.com> <243775208.1333800.1639175610750.JavaMail.zimbra@u-pem.fr> <9f60f6fe-6ab2-b457-380f-1456f4fd0828@oracle.com> Message-ID: Hi, I don't know details of underlying ABI, however I think there should not be need to allocate additional structs. For POSIX read we pass 3 arguments, which should fit registers, and all are 32/64 bit values (long)mh$.invokeExact(__fd, __buf, __nbytes) This happens in both cases where buf is MemorySegment and MemoryAdderss, rest are primitives. Kind regards, Rado On 16.12.2021 12:12, Maurizio Cimadamore wrote: > > On 13/12/2021 22:10, Maurizio Cimadamore wrote: >> That's odd - I mean, the BindingContext is used when setting up >> downcall method handles, or upcall stubs. But should not be invoked >> in the hot path. > > Correction: the ofAllocator call you see might in fact even be in a > hot path. A downcall method handle sometimes has to allocator memory > for the temp buffers it uses. When that happens, the invocation is > wrapped with a try-with-resources (well a MH chain equivalent to that > is generated) and a new "binding context" with a SegmentAllocator is > created. This should happen only when structs that are too big are > passed by referenced by the ABI (I think that happens on Windows) - so > we have to create a temp segment holding the struct, and pass the > segment pointer to the underlying native function. The temp struct is > then destroyed after the call. > > Upcalls also need an allocator, in case they receive structs by values > (again, a temp segment might need to be allocated for the duration of > the upcall). > > So, even if your downcall is fully intrinsified, you might still see > calls to BindingContext::ofAllocator, depending on the shape of the > called function. It is possible that C2 might have issue in > scalarizing the Binding.Context allocation - but that's a separate > problem from the one we were discussing (the impact of long loop > optimizations). > > On that topic, I see that Roland has submitted a PR for the remaining > perf issue we have seen in our micro benchmarks: > > https://github.com/openjdk/jdk18/pull/35 > > I expect that, once integrated, we should then have full performance > parity with current workarounds. > > Maurizio > From maurizio.cimadamore at oracle.com Thu Dec 16 16:35:33 2021 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Thu, 16 Dec 2021 16:35:33 +0000 Subject: status of VM long loop optimizations - call for action In-Reply-To: References: <4072546c-e646-2ffd-6d01-af55e0cb8381@gmail.com> <7d330c42-1438-852e-f53f-7a74c6e5d3d3@gmail.com> <243775208.1333800.1639175610750.JavaMail.zimbra@u-pem.fr> <9f60f6fe-6ab2-b457-380f-1456f4fd0828@oracle.com> Message-ID: <4eaee0c1-7e0a-a1f9-2b52-792fa486e700@oracle.com> On 16/12/2021 16:24, Rado Smogura wrote: > > Hi, > > I don't know details of underlying ABI, however I think there should > not be need to allocate additional structs. > > For POSIX read we pass 3 arguments, which should fit registers, and > all are 32/64 bit values > > (long)mh$.invokeExact(__fd, __buf, __nbytes) > > This happens in both cases where buf is MemorySegment and > MemoryAdderss, rest are primitives. > What is the signature of the native function? Is the argument corresponding to __buf a struct or a pointer? Maurizio > Kind regards, > > Rado > > On 16.12.2021 12:12, Maurizio Cimadamore wrote: >> >> On 13/12/2021 22:10, Maurizio Cimadamore wrote: >>> That's odd - I mean, the BindingContext is used when setting up >>> downcall method handles, or upcall stubs. But should not be invoked >>> in the hot path. >> >> Correction: the ofAllocator call you see might in fact even be in a >> hot path. A downcall method handle sometimes has to allocator memory >> for the temp buffers it uses. When that happens, the invocation is >> wrapped with a try-with-resources (well a MH chain equivalent to that >> is generated) and a new "binding context" with a SegmentAllocator is >> created. This should happen only when structs that are too big are >> passed by referenced by the ABI (I think that happens on Windows) - >> so we have to create a temp segment holding the struct, and pass the >> segment pointer to the underlying native function. The temp struct is >> then destroyed after the call. >> >> Upcalls also need an allocator, in case they receive structs by >> values (again, a temp segment might need to be allocated for the >> duration of the upcall). >> >> So, even if your downcall is fully intrinsified, you might still see >> calls to BindingContext::ofAllocator, depending on the shape of the >> called function. It is possible that C2 might have issue in >> scalarizing the Binding.Context allocation - but that's a separate >> problem from the one we were discussing (the impact of long loop >> optimizations). >> >> On that topic, I see that Roland has submitted a PR for the remaining >> perf issue we have seen in our micro benchmarks: >> >> https://github.com/openjdk/jdk18/pull/35 >> >> I expect that, once integrated, we should then have full performance >> parity with current workarounds. >> >> Maurizio >> From mail at smogura.eu Thu Dec 16 16:45:07 2021 From: mail at smogura.eu (Rado Smogura) Date: Thu, 16 Dec 2021 17:45:07 +0100 Subject: status of VM long loop optimizations - call for action In-Reply-To: <4eaee0c1-7e0a-a1f9-2b52-792fa486e700@oracle.com> References: <7d330c42-1438-852e-f53f-7a74c6e5d3d3@gmail.com> <243775208.1333800.1639175610750.JavaMail.zimbra@u-pem.fr> <9f60f6fe-6ab2-b457-380f-1456f4fd0828@oracle.com> <4eaee0c1-7e0a-a1f9-2b52-792fa486e700@oracle.com> Message-ID: Hi, Here's signature from man pages ssize_t read(int fd, void *buf, size_t count); And one generated by jextract public static long read ( int __fd, Addressable __buf, long __nbytes) The buf is from Polled allocator, so it's previously allocated memory segment. I tired with buf passed as MemorySegment and MemoryAddress. Kind regards, Rado On 16.12.2021 17:35, Maurizio Cimadamore wrote: > > > On 16/12/2021 16:24, Rado Smogura wrote: >> >> Hi, >> >> I don't know details of underlying ABI, however I think there should >> not be need to allocate additional structs. >> >> For POSIX read we pass 3 arguments, which should fit registers, and >> all are 32/64 bit values >> >> (long)mh$.invokeExact(__fd, __buf, __nbytes) >> >> This happens in both cases where buf is MemorySegment and >> MemoryAdderss, rest are primitives. >> > What is the signature of the native function? Is the argument > corresponding to __buf a struct or a pointer? > > Maurizio > >> Kind regards, >> >> Rado >> >> On 16.12.2021 12:12, Maurizio Cimadamore wrote: >>> >>> On 13/12/2021 22:10, Maurizio Cimadamore wrote: >>>> That's odd - I mean, the BindingContext is used when setting up >>>> downcall method handles, or upcall stubs. But should not be invoked >>>> in the hot path. >>> >>> Correction: the ofAllocator call you see might in fact even be in a >>> hot path. A downcall method handle sometimes has to allocator memory >>> for the temp buffers it uses. When that happens, the invocation is >>> wrapped with a try-with-resources (well a MH chain equivalent to >>> that is generated) and a new "binding context" with a >>> SegmentAllocator is created. This should happen only when structs >>> that are too big are passed by referenced by the ABI (I think that >>> happens on Windows) - so we have to create a temp segment holding >>> the struct, and pass the segment pointer to the underlying native >>> function. The temp struct is then destroyed after the call. >>> >>> Upcalls also need an allocator, in case they receive structs by >>> values (again, a temp segment might need to be allocated for the >>> duration of the upcall). >>> >>> So, even if your downcall is fully intrinsified, you might still see >>> calls to BindingContext::ofAllocator, depending on the shape of the >>> called function. It is possible that C2 might have issue in >>> scalarizing the Binding.Context allocation - but that's a separate >>> problem from the one we were discussing (the impact of long loop >>> optimizations). >>> >>> On that topic, I see that Roland has submitted a PR for the >>> remaining perf issue we have seen in our micro benchmarks: >>> >>> https://github.com/openjdk/jdk18/pull/35 >>> >>> I expect that, once integrated, we should then have full performance >>> parity with current workarounds. >>> >>> Maurizio >>> From maurizio.cimadamore at oracle.com Thu Dec 16 16:57:39 2021 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Thu, 16 Dec 2021 16:57:39 +0000 Subject: status of VM long loop optimizations - call for action In-Reply-To: References: <7d330c42-1438-852e-f53f-7a74c6e5d3d3@gmail.com> <243775208.1333800.1639175610750.JavaMail.zimbra@u-pem.fr> <9f60f6fe-6ab2-b457-380f-1456f4fd0828@oracle.com> <4eaee0c1-7e0a-a1f9-2b52-792fa486e700@oracle.com> Message-ID: On 16/12/2021 16:45, Rado Smogura wrote: > Hi, > > > Here's signature from man pages ssize_t read(int fd, void *buf, size_t > count); > > And one generated by jextract public static long read ( int __fd, > Addressable __buf, long __nbytes) > > > The buf is from Polled allocator, so it's previously allocated memory > segment. I tired with buf passed as MemorySegment and MemoryAddress. Such a signature should never cause an allocator to be called - it's all primitives. On which OS/platform are you on? Maurizio > > > Kind regards, > > Rado > > On 16.12.2021 17:35, Maurizio Cimadamore wrote: >> >> >> On 16/12/2021 16:24, Rado Smogura wrote: >>> >>> Hi, >>> >>> I don't know details of underlying ABI, however I think there should >>> not be need to allocate additional structs. >>> >>> For POSIX read we pass 3 arguments, which should fit registers, and >>> all are 32/64 bit values >>> >>> (long)mh$.invokeExact(__fd, __buf, __nbytes) >>> >>> This happens in both cases where buf is MemorySegment and >>> MemoryAdderss, rest are primitives. >>> >> What is the signature of the native function? Is the argument >> corresponding to __buf a struct or a pointer? >> >> Maurizio >> >>> Kind regards, >>> >>> Rado >>> >>> On 16.12.2021 12:12, Maurizio Cimadamore wrote: >>>> >>>> On 13/12/2021 22:10, Maurizio Cimadamore wrote: >>>>> That's odd - I mean, the BindingContext is used when setting up >>>>> downcall method handles, or upcall stubs. But should not be >>>>> invoked in the hot path. >>>> >>>> Correction: the ofAllocator call you see might in fact even be in a >>>> hot path. A downcall method handle sometimes has to allocator >>>> memory for the temp buffers it uses. When that happens, the >>>> invocation is wrapped with a try-with-resources (well a MH chain >>>> equivalent to that is generated) and a new "binding context" with a >>>> SegmentAllocator is created. This should happen only when structs >>>> that are too big are passed by referenced by the ABI (I think that >>>> happens on Windows) - so we have to create a temp segment holding >>>> the struct, and pass the segment pointer to the underlying native >>>> function. The temp struct is then destroyed after the call. >>>> >>>> Upcalls also need an allocator, in case they receive structs by >>>> values (again, a temp segment might need to be allocated for the >>>> duration of the upcall). >>>> >>>> So, even if your downcall is fully intrinsified, you might still >>>> see calls to BindingContext::ofAllocator, depending on the shape of >>>> the called function. It is possible that C2 might have issue in >>>> scalarizing the Binding.Context allocation - but that's a separate >>>> problem from the one we were discussing (the impact of long loop >>>> optimizations). >>>> >>>> On that topic, I see that Roland has submitted a PR for the >>>> remaining perf issue we have seen in our micro benchmarks: >>>> >>>> https://urldefense.com/v3/__https://github.com/openjdk/jdk18/pull/35__;!!ACWV5N9M2RV99hQ!e9H5DbwL8T6FSBr9PJNuCT0yqzLh-MTz_AIKhaLak6meLU8VNeW0M-MHypUh0xGdjv4nKXs$ >>>> >>>> I expect that, once integrated, we should then have full >>>> performance parity with current workarounds. >>>> >>>> Maurizio >>>> From maurizio.cimadamore at oracle.com Thu Dec 16 17:10:53 2021 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Thu, 16 Dec 2021 17:10:53 +0000 Subject: status of VM long loop optimizations - call for action In-Reply-To: References: <243775208.1333800.1639175610750.JavaMail.zimbra@u-pem.fr> <9f60f6fe-6ab2-b457-380f-1456f4fd0828@oracle.com> <4eaee0c1-7e0a-a1f9-2b52-792fa486e700@oracle.com> Message-ID: <135d68fc-9244-0cb3-0375-ac691a316ab7@oracle.com> On 16/12/2021 16:57, Maurizio Cimadamore wrote: > Such a signature should never cause an allocator to be called - it's > all primitives. Actually, looking closer, it seems like we're always wrapping with a context if the return is non-void: https://github.com/openjdk/panama-foreign/blob/foreign-jextract/src/jdk.incubator.foreign/share/classes/jdk/internal/foreign/abi/ProgrammableInvoker.java#L258 (jdk/jdk has some similar code) This seems suboptimal. If return type is not a MemorySegment, we just pass is a dumb allocator: https://github.com/openjdk/panama-foreign/blob/foreign-jextract/src/jdk.incubator.foreign/share/classes/jdk/internal/foreign/abi/SharedUtils.java#L543 I think something is off there - we should probably leave the Bindind.Context as is - and late bind it when creating the downcall handle, either using Context::ofAllocator, or Context::DUMMY. That would then only allocate a context when truly needed. But again - this is a different topic, we should probably move this discussion on a different thread. Maurizio From mail at smogura.eu Thu Dec 16 17:08:25 2021 From: mail at smogura.eu (Rado Smogura) Date: Thu, 16 Dec 2021 18:08:25 +0100 Subject: status of VM long loop optimizations - call for action In-Reply-To: References: <243775208.1333800.1639175610750.JavaMail.zimbra@u-pem.fr> <9f60f6fe-6ab2-b457-380f-1456f4fd0828@oracle.com> <4eaee0c1-7e0a-a1f9-2b52-792fa486e700@oracle.com> Message-ID: Hi, It's (newest) Ubuntu. Full sources are here: https://github.com/rsmogura/panama-io For testing I created very simple main public static void main(String[] args)throws Exception { byte[]sendBuff =new byte[8192*4]; final var port = (short) (new Random().nextInt(1000) +20000); var server =ServerSocketFactory.getDefault().createServerSocket(port); Arrays.fill(sendBuff, (byte)1); var executorService =Executors.newSingleThreadExecutor(); var serverThread =executorService.submit(() -> { final var conn =server.accept(); final var out =conn.getOutputStream(); while (true) { out.write(sendBuff); } }); var sock =new PosixSocketFactory().createSocket("127.0.0.1",port); var in =sock.getInputStream(); while (true) in.read(new byte[12]); } Kind regards, Rado On 16.12.2021 17:57, Maurizio Cimadamore wrote: > > On 16/12/2021 16:45, Rado Smogura wrote: >> Hi, >> >> >> Here's signature from man pages ssize_t read(int fd, void *buf, >> size_t count); >> >> And one generated by jextract public static long read ( int __fd, >> Addressable __buf, long __nbytes) >> >> >> The buf is from Polled allocator, so it's previously allocated memory >> segment. I tired with buf passed as MemorySegment and MemoryAddress. > > Such a signature should never cause an allocator to be called - it's > all primitives. > > On which OS/platform are you on? > > Maurizio > > >> >> >> Kind regards, >> >> Rado >> >> On 16.12.2021 17:35, Maurizio Cimadamore wrote: >>> >>> >>> On 16/12/2021 16:24, Rado Smogura wrote: >>>> >>>> Hi, >>>> >>>> I don't know details of underlying ABI, however I think there >>>> should not be need to allocate additional structs. >>>> >>>> For POSIX read we pass 3 arguments, which should fit registers, and >>>> all are 32/64 bit values >>>> >>>> (long)mh$.invokeExact(__fd, __buf, __nbytes) >>>> >>>> This happens in both cases where buf is MemorySegment and >>>> MemoryAdderss, rest are primitives. >>>> >>> What is the signature of the native function? Is the argument >>> corresponding to __buf a struct or a pointer? >>> >>> Maurizio >>> >>>> Kind regards, >>>> >>>> Rado >>>> >>>> On 16.12.2021 12:12, Maurizio Cimadamore wrote: >>>>> >>>>> On 13/12/2021 22:10, Maurizio Cimadamore wrote: >>>>>> That's odd - I mean, the BindingContext is used when setting up >>>>>> downcall method handles, or upcall stubs. But should not be >>>>>> invoked in the hot path. >>>>> >>>>> Correction: the ofAllocator call you see might in fact even be in >>>>> a hot path. A downcall method handle sometimes has to allocator >>>>> memory for the temp buffers it uses. When that happens, the >>>>> invocation is wrapped with a try-with-resources (well a MH chain >>>>> equivalent to that is generated) and a new "binding context" with >>>>> a SegmentAllocator is created. This should happen only when >>>>> structs that are too big are passed by referenced by the ABI (I >>>>> think that happens on Windows) - so we have to create a temp >>>>> segment holding the struct, and pass the segment pointer to the >>>>> underlying native function. The temp struct is then destroyed >>>>> after the call. >>>>> >>>>> Upcalls also need an allocator, in case they receive structs by >>>>> values (again, a temp segment might need to be allocated for the >>>>> duration of the upcall). >>>>> >>>>> So, even if your downcall is fully intrinsified, you might still >>>>> see calls to BindingContext::ofAllocator, depending on the shape >>>>> of the called function. It is possible that C2 might have issue in >>>>> scalarizing the Binding.Context allocation - but that's a separate >>>>> problem from the one we were discussing (the impact of long loop >>>>> optimizations). >>>>> >>>>> On that topic, I see that Roland has submitted a PR for the >>>>> remaining perf issue we have seen in our micro benchmarks: >>>>> >>>>> https://urldefense.com/v3/__https://github.com/openjdk/jdk18/pull/35__;!!ACWV5N9M2RV99hQ!e9H5DbwL8T6FSBr9PJNuCT0yqzLh-MTz_AIKhaLak6meLU8VNeW0M-MHypUh0xGdjv4nKXs$ >>>>> >>>>> I expect that, once integrated, we should then have full >>>>> performance parity with current workarounds. >>>>> >>>>> Maurizio >>>>> From maurizio.cimadamore at oracle.com Thu Dec 16 17:36:52 2021 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Thu, 16 Dec 2021 17:36:52 +0000 Subject: unexpected allocation of Binding.Context in downcall method handle Message-ID: <720e20af-63d7-bf76-352d-38585be66c43@oracle.com> Hi, following the discussion on [1], here is a quick patch which attempts to remove the additional allocation: https://github.com/mcimadamore/jdk/pull/new/avoid_context_alloc I'm not able to see any gain using synthetic benchmarks, but perhaps worth a try to confirm that this is really the issue we're seeing? Thanks Maurizio [1] - https://mail.openjdk.java.net/pipermail/panama-dev/2021-December/015938.html From duke at openjdk.java.net Fri Dec 17 11:06:17 2021 From: duke at openjdk.java.net (duke) Date: Fri, 17 Dec 2021 11:06:17 GMT Subject: git: openjdk/panama-foreign: foreign-jextract: 80 new changesets Message-ID: <899be61f-56f1-47d6-b86c-dd7f7df16700@openjdk.org> Changeset: 3e0b083f Author: Hamlin Li Date: 2021-12-10 14:51:27 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3e0b083f2013f07b090af92a78c9a5f46f9fe427 8278533: Remove some unused methods in c1_Instruction and c1_ValueMap Reviewed-by: chagedorn ! src/hotspot/share/c1/c1_Instruction.cpp ! src/hotspot/share/c1/c1_Instruction.hpp ! src/hotspot/share/c1/c1_ValueMap.hpp Changeset: 8eb453ba Author: Roman Kennke Date: 2021-12-10 16:24:16 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8eb453baebe377697286f7eb32280ca9f1fd7775 8277072: ObjectStreamClass caches keep ClassLoaders alive Reviewed-by: rriggs, plevart + src/java.base/share/classes/java/io/ClassCache.java ! src/java.base/share/classes/java/io/ObjectStreamClass.java + test/jdk/java/io/ObjectStreamClass/ObjectStreamClassCaching.java + test/jdk/java/io/ObjectStreamClass/TestOSCClassLoaderLeak.java Changeset: 4f594e6a Author: Dan Lutker Committer: Paul Hohensee Date: 2021-12-10 17:52:54 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/4f594e6a28ad85d46d3252fb960f1c116f414899 8278381: [GCC 11] Address::make_raw() does not initialize rspec Reviewed-by: phh, xliu ! src/hotspot/cpu/arm/assembler_arm_32.cpp ! src/hotspot/cpu/x86/assembler_x86.cpp Changeset: afd065b3 Author: Evgeny Astigeevich Committer: Paul Hohensee Date: 2021-12-10 18:27:36 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/afd065b3684f7b87563961c2b7a6ee6a354dbdf9 8278415: [TESTBUG] vmTestbase/nsk/stress/stack/stack018.java fails with "java.lang.Error: TEST_RFE" Reviewed-by: phh ! test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack018.java Changeset: ed5d53ae Author: Jonathan Gibbons Date: 2021-12-10 02:50:37 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ed5d53ae0eb0b12de11fb3d79ae0371c093ce434 8273179: Update nroff pages in JDK 18 before RC Reviewed-by: dholmes ! src/java.base/share/man/java.1 ! src/java.base/share/man/keytool.1 ! src/java.rmi/share/man/rmiregistry.1 ! src/java.scripting/share/man/jrunscript.1 ! src/jdk.compiler/share/man/javac.1 ! src/jdk.compiler/share/man/serialver.1 ! src/jdk.hotspot.agent/share/man/jhsdb.1 ! src/jdk.httpserver/share/man/jwebserver.1 ! src/jdk.jartool/share/man/jar.1 ! src/jdk.jartool/share/man/jarsigner.1 ! src/jdk.javadoc/share/man/javadoc.1 ! src/jdk.jcmd/share/man/jcmd.1 ! src/jdk.jcmd/share/man/jinfo.1 ! src/jdk.jcmd/share/man/jmap.1 ! src/jdk.jcmd/share/man/jps.1 ! src/jdk.jcmd/share/man/jstack.1 ! src/jdk.jcmd/share/man/jstat.1 ! src/jdk.jconsole/share/man/jconsole.1 ! src/jdk.jdeps/share/man/javap.1 ! src/jdk.jdeps/share/man/jdeprscan.1 ! src/jdk.jdeps/share/man/jdeps.1 ! src/jdk.jdi/share/man/jdb.1 ! src/jdk.jfr/share/man/jfr.1 ! src/jdk.jlink/share/man/jlink.1 ! src/jdk.jlink/share/man/jmod.1 ! src/jdk.jpackage/share/man/jpackage.1 ! src/jdk.jshell/share/man/jshell.1 ! src/jdk.jstatd/share/man/jstatd.1 Changeset: 3df8dc49 Author: Jonathan Gibbons Date: 2021-12-10 05:02:28 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3df8dc494d2d0e6d1003094c9e129be2cca10a3c 8278538: Test langtools/jdk/javadoc/tool/CheckManPageOptions.java fails after the manpage was updated Reviewed-by: dholmes ! test/langtools/jdk/javadoc/tool/CheckManPageOptions.java Changeset: 0602f4c4 Author: Hao Sun Committer: Aleksey Shipilev Date: 2021-12-10 15:53:27 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/0602f4c48b0ffe53a6081551988b417d7536efa0 8277621: ARM32: multiple fastdebug failures with "bad AD file" after JDK-8276162 Reviewed-by: njian, dlong, shade ! src/hotspot/cpu/arm/arm.ad Changeset: 61736f81 Author: Jesper Wilhelmsson Date: 2021-12-10 18:42:51 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/61736f81fb4a20375c83d59e2b37a00aafb11107 Merge Changeset: 81c56c70 Author: Phil Race Date: 2021-12-10 21:02:28 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/81c56c700a47c7f1b7855052de17eb88fac84674 8278456: Define jtreg jdk_desktop test group time-based sub-tasks for use by headful testing. Reviewed-by: serb, aivanov, psadhukhan ! test/jdk/TEST.groups Changeset: 6eb6ec05 Author: Dan Lutker Committer: Paul Hohensee Date: 2021-12-10 23:49:41 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/6eb6ec05fd4f80e11d0b052b58190bc8b53f4b11 8278525: Additional -Wnonnull errors happen with GCC 11 Reviewed-by: phh, dlong ! src/hotspot/cpu/x86/assembler_x86.cpp Changeset: db68a0ce Author: Andrew Leonard Date: 2021-12-11 15:27:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/db68a0ce1ce152345320e70acb7e9842d2f1ece4 8276766: Enable jar and jmod to produce deterministic timestamped content Reviewed-by: ihse, lancea, alanb, jgneff ! src/jdk.jartool/share/classes/sun/tools/jar/GNUStyleOptions.java ! src/jdk.jartool/share/classes/sun/tools/jar/Main.java ! src/jdk.jartool/share/classes/sun/tools/jar/resources/jar.properties ! src/jdk.jlink/share/classes/jdk/tools/jmod/JmodOutputStream.java ! src/jdk.jlink/share/classes/jdk/tools/jmod/JmodTask.java ! src/jdk.jlink/share/classes/jdk/tools/jmod/resources/jmod.properties + test/jdk/tools/jar/ReproducibleJar.java ! test/jdk/tools/jmod/JmodTest.java Changeset: 7c2c5858 Author: Sergey Bylokhov Date: 2021-12-12 21:47:03 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7c2c58587d4eda5523331eae45e7d897252dc097 8276819: javax/print/PrintServiceLookup/FlushCustomClassLoader.java fails to free Reviewed-by: psadhukhan, aivanov ! test/jdk/javax/print/PrintServiceLookup/FlushCustomClassLoader.java Changeset: 8b5ff4bd Author: Matthias Baesken Date: 2021-12-13 07:48:20 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8b5ff4bdffc8f32317d67b00c085071d6c772b30 8278344: sun/security/pkcs12/KeytoolOpensslInteropTest.java test fails because of different openssl output Reviewed-by: mdoerr, goetz, stuefe ! test/jdk/sun/security/pkcs12/KeytoolOpensslInteropTest.java Changeset: ccdb9f1b Author: Albert Mingkun Yang Date: 2021-12-13 09:50:30 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ccdb9f1b160a0f49ee86c7a2714d2381d68419cc 8278482: G1: Improve HeapRegion::block_is_obj Reviewed-by: sjohanss, tschatzl, mli ! src/hotspot/share/gc/g1/heapRegion.cpp ! src/hotspot/share/gc/g1/heapRegion.inline.hpp Changeset: 23fd9f15 Author: Christian Stein Committer: Lance Andersen Date: 2021-12-13 12:00:47 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/23fd9f15da40cef00231380766158bc0fa537c38 8271079: JavaFileObject#toUri and multi-release jars Reviewed-by: jjg, lancea, alanb ! src/jdk.compiler/share/classes/com/sun/tools/javac/file/PathFileObject.java ! src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipFileSystem.java ! src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipPath.java ! test/jdk/jdk/nio/zipfs/ZipFSTester.java ! test/jdk/jdk/nio/zipfs/jarfs/JFSTester.java + test/langtools/tools/javac/T8271079.java Changeset: 14f7385a Author: Harold Seigel Date: 2021-12-13 13:35:37 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/14f7385a72972e1f15b3103cc75a60c5733f6d98 8277481: Obsolete seldom used CDS flags Reviewed-by: iklam, ccheung, dholmes ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/utilities/globalDefinitions.cpp ! src/hotspot/share/utilities/globalDefinitions.hpp ! src/java.base/share/classes/jdk/internal/misc/CDS.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/VM.java ! src/jdk.hotspot.agent/share/native/libsaproc/ps_core_common.c ! test/hotspot/jtreg/runtime/cds/SharedArchiveFile.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/DynamicArchiveTestBase.java - test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/DynamicFlag.java ! test/hotspot/jtreg/runtime/cds/appcds/jcmd/JCmdTestDumpBase.java ! test/hotspot/jtreg/runtime/cds/appcds/jcmd/JCmdTestDynamicDump.java ! test/hotspot/jtreg/runtime/cds/appcds/jcmd/JCmdTestStaticDump.java Changeset: 15996e40 Author: Harold Seigel Date: 2021-12-13 13:40:54 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/15996e407563eda844266f1cbcdc20be74b4b4e4 8276241: JVM does not flag constant class entries ending in '/' Reviewed-by: dholmes, lfoltan ! src/hotspot/share/classfile/classFileParser.cpp + test/hotspot/jtreg/runtime/classFileParserBug/TrailingSlashTest.java Changeset: ca8c58c7 Author: merykitty Committer: Paul Sandoz Date: 2021-12-13 16:34:37 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ca8c58c731959e3a1b8fe02255ed44fc1d14d565 8259610: VectorReshapeTests are not effective due to failing to intrinsify "VectorSupport.convert" Reviewed-by: psandoz, chagedorn ! test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java + test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorCastAVX1.java + test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorCastAVX2.java + test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorCastAVX512.java + test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorCastAVX512DQ.java + test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorCastNeon.java + test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorCastSVE.java + test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorReinterpret.java + test/hotspot/jtreg/compiler/vectorapi/reshape/tests/TestVectorCast.java + test/hotspot/jtreg/compiler/vectorapi/reshape/tests/TestVectorDoubleExpandShrink.java + test/hotspot/jtreg/compiler/vectorapi/reshape/tests/TestVectorExpandShrink.java + test/hotspot/jtreg/compiler/vectorapi/reshape/tests/TestVectorRebracket.java + test/hotspot/jtreg/compiler/vectorapi/reshape/utils/TestCastMethods.java + test/hotspot/jtreg/compiler/vectorapi/reshape/utils/UnsafeUtils.java + test/hotspot/jtreg/compiler/vectorapi/reshape/utils/VectorReshapeHelper.java + test/hotspot/jtreg/compiler/vectorapi/reshape/utils/VectorSpeciesPair.java Changeset: db502d30 Author: Chris Plummer Date: 2021-12-13 19:02:12 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/db502d30a42847f69273f48378f230d9d55eb8d6 8269556: sun/tools/jhsdb/JShellHeapDumpTest.java fails with RuntimeException 'JShellToolProvider' missing from stdout/stderr Reviewed-by: kevinw, sspitsyn, amenkov ! test/jdk/sun/tools/jhsdb/JShellHeapDumpTest.java Changeset: bdc784c0 Author: Daniel D. Daugherty Date: 2021-12-13 20:36:40 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/bdc784c0cb02d76c6d3a1608a89f4b64f86253eb 8278630: ProblemList compiler/vectorapi/reshape/TestVectorCastAVX512.java on X64 Reviewed-by: psandoz ! test/hotspot/jtreg/ProblemList.txt Changeset: 624f3094 Author: David Holmes Date: 2021-12-13 21:36:24 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/624f3094b89976a0be0a1d1d4ce304f4be38fb9e 8278275: Initial nroff manpage generation for JDK 19 Reviewed-by: erikj, jjg, iris ! src/java.base/share/man/java.1 ! src/java.base/share/man/keytool.1 ! src/java.rmi/share/man/rmiregistry.1 ! src/java.scripting/share/man/jrunscript.1 ! src/jdk.compiler/share/man/javac.1 ! src/jdk.compiler/share/man/serialver.1 ! src/jdk.hotspot.agent/share/man/jhsdb.1 ! src/jdk.httpserver/share/man/jwebserver.1 ! src/jdk.jartool/share/man/jar.1 ! src/jdk.jartool/share/man/jarsigner.1 ! src/jdk.javadoc/share/man/javadoc.1 ! src/jdk.jcmd/share/man/jcmd.1 ! src/jdk.jcmd/share/man/jinfo.1 ! src/jdk.jcmd/share/man/jmap.1 ! src/jdk.jcmd/share/man/jps.1 ! src/jdk.jcmd/share/man/jstack.1 ! src/jdk.jcmd/share/man/jstat.1 ! src/jdk.jconsole/share/man/jconsole.1 ! src/jdk.jdeps/share/man/javap.1 ! src/jdk.jdeps/share/man/jdeprscan.1 ! src/jdk.jdeps/share/man/jdeps.1 ! src/jdk.jdi/share/man/jdb.1 ! src/jdk.jfr/share/man/jfr.1 ! src/jdk.jlink/share/man/jlink.1 ! src/jdk.jlink/share/man/jmod.1 ! src/jdk.jpackage/share/man/jpackage.1 ! src/jdk.jshell/share/man/jshell.1 ! src/jdk.jstatd/share/man/jstatd.1 Changeset: 94127f43 Author: Alexander Zuev Date: 2021-12-10 20:27:07 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/94127f43a4a28a89094fa93cd1da49763134f9db 8277299: STACK_OVERFLOW in Java_sun_awt_shell_Win32ShellFolder2_getIconBits Reviewed-by: aivanov ! src/java.desktop/windows/native/libawt/windows/ShellFolder2.cpp + test/jdk/javax/swing/JFileChooser/FileSystemView/ShellFolderStackOverflow.java Changeset: 9b99cbe7 Author: Daniel D. Daugherty Date: 2021-12-11 15:53:31 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9b99cbe7abf56d3ad5231a68b6506e35b89133c9 8278580: ProblemList javax/swing/JTree/4908142/bug4908142.java on macosx-x64 Reviewed-by: alanb ! test/jdk/ProblemList.txt Changeset: 9a1bbaf8 Author: Scott Gibbons Committer: Vladimir Kozlov Date: 2021-12-12 16:08:35 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9a1bbaf8db0e869ab76be8ab1bd0ddeb23693e7e 8273108: RunThese24H crashes with SEGV in markWord::displaced_mark_helper() after JDK-8268276 8272809: JFR thread sampler SI_KERNEL SEGV in metaspace::VirtualSpaceList::contains Reviewed-by: sviswanathan, kvn ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp ! test/hotspot/jtreg/compiler/intrinsics/base64/TestBase64.java Changeset: c93b24d8 Author: David Holmes Date: 2021-12-13 21:37:51 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/c93b24d85289167639e9ec4b79bd85403687161b 8132785: java/lang/management/ThreadMXBean/ThreadLists.java fails intermittently Reviewed-by: alanb, kevinw, dcubed, sspitsyn ! test/jdk/ProblemList.txt ! test/jdk/java/lang/management/ThreadMXBean/ThreadLists.java Changeset: 8401a059 Author: Jesper Wilhelmsson Date: 2021-12-14 02:15:15 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8401a059bd01b32e3532f806d3d8b60e851c468a Merge Changeset: 3f9638d1 Author: Thomas Stuefe Date: 2021-12-14 05:45:56 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3f9638d124076019f49eb77bc3ff8b466e4beb53 8278585: Drop unused code from OSThread Reviewed-by: dholmes, tschatzl ! src/hotspot/os/aix/osThread_aix.hpp ! src/hotspot/os/aix/os_aix.cpp ! src/hotspot/os/bsd/osThread_bsd.hpp ! src/hotspot/os/bsd/os_bsd.cpp ! src/hotspot/os/linux/osThread_linux.hpp ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/os/windows/osThread_windows.hpp ! src/hotspot/os/windows/os_windows.cpp ! src/hotspot/share/jfr/writers/jfrJavaEventWriter.cpp ! src/hotspot/share/runtime/osThread.cpp ! src/hotspot/share/runtime/osThread.hpp ! src/hotspot/share/runtime/thread.cpp Changeset: 7761a3e8 Author: Albert Mingkun Yang Date: 2021-12-14 17:11:11 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7761a3e883bcd18b0b235248c37f9228fd37b927 8278761: Parallel: Remove unused PSOldPromotionLAB constructor Reviewed-by: tschatzl ! src/hotspot/share/gc/parallel/psPromotionLAB.hpp Changeset: 3f91948c Author: Coleen Phillimore Date: 2021-12-14 17:45:35 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3f91948c592d6968d2de6c59a5d93866f439c0e8 8278791: Rename ClassLoaderData::holder_phantom Reviewed-by: stefank ! src/hotspot/share/cds/metaspaceShared.cpp ! src/hotspot/share/classfile/classLoaderData.cpp ! src/hotspot/share/classfile/classLoaderData.hpp ! src/hotspot/share/classfile/classLoaderDataGraph.cpp ! src/hotspot/share/oops/klass.inline.hpp Changeset: a9c1acbb Author: Sergey Bylokhov Date: 2021-12-14 18:03:00 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/a9c1acbb8aec46e4a488b7c77bb6318af87747f6 8275843: Random crashes while the UI code is executed Reviewed-by: azvegint ! src/java.desktop/unix/classes/sun/java2d/xr/XRCompositeManager.java ! src/java.desktop/unix/classes/sun/java2d/xr/XRGraphicsConfig.java ! src/java.desktop/unix/classes/sun/java2d/xr/XRSurfaceData.java ! test/jdk/java/awt/ColorClass/AlphaColorTest.java ! test/jdk/java/awt/ColorClass/XRenderTranslucentColorDrawTest.java + test/jdk/java/awt/image/ColorModel/DrawCustomColorModel.java Changeset: de65230d Author: Zhengyu Gu Date: 2021-12-14 18:39:28 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/de65230d7183eb2d534afae5891eaa27074b8a7d 8278767: Shenandoah: Remove unused ShenandoahRootScanner Reviewed-by: rkennke ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp Changeset: a1dfe572 Author: Vladimir Kozlov Date: 2021-12-14 19:24:13 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/a1dfe57249db15c0c05d33a0014ac914a7093089 8276455: C2: iterative EA Reviewed-by: iveresov, neliasso, roland ! src/hotspot/share/opto/c2compiler.cpp ! src/hotspot/share/opto/c2compiler.hpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/compile.hpp ! src/hotspot/share/opto/escape.cpp ! src/hotspot/share/opto/escape.hpp + test/hotspot/jtreg/compiler/c2/irTests/TestIterativeEA.java + test/hotspot/jtreg/compiler/escapeAnalysis/TestIterativeEA.java + test/micro/org/openjdk/bench/vm/compiler/IterativeEA.java + test/micro/org/openjdk/bench/vm/compiler/PointerBenchmarkFlat.java Changeset: 03f647f4 Author: Roger Riggs Date: 2021-12-14 19:54:54 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/03f647f4bb640bf5df1c461eec9860c7ac3eb076 8278028: [test-library] Warnings cleanup of the test library Reviewed-by: dfuchs, mchung, naoto, lancea, lmesnik ! test/lib-test/jdk/test/lib/AssertsTest.java ! test/lib-test/jdk/test/lib/TestPlatformIsTieredSupported.java ! test/lib-test/jdk/test/lib/format/ArrayDiffTest.java ! test/lib-test/jdk/test/whitebox/OldWhiteBox.java ! test/lib-test/jdk/test/whitebox/vm_flags/VmFlagTest.java ! test/lib/RedefineClassHelper.java ! test/lib/jdk/test/lib/NetworkConfiguration.java ! test/lib/jdk/test/lib/compiler/InMemoryJavaCompiler.java ! test/lib/jdk/test/lib/format/ArrayCodec.java ! test/lib/jdk/test/lib/format/ArrayDiff.java ! test/lib/jdk/test/lib/hexdump/ASN1Formatter.java ! test/lib/jdk/test/lib/hexdump/StreamDump.java ! test/lib/jdk/test/lib/process/Proc.java ! test/lib/jdk/test/lib/process/ProcessTools.java Changeset: 98a8d446 Author: Harold Seigel Date: 2021-12-14 20:35:49 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/98a8d446b69fd84355731a8a3192cbd42671abb8 8278638: Remove FLAG_IS_CMDLINE(UseSharedSpaces) Reviewed-by: dcubed, coleenp ! src/hotspot/share/runtime/arguments.cpp Changeset: 2def7e91 Author: Jie Fu Date: 2021-12-14 22:49:04 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/2def7e913207af788e582ed5bde21b28883183de 8278584: compiler/vectorapi/VectorMaskLoadStoreTest.java failed with "Error: ShouldNotReachHere()" Reviewed-by: kvn, psandoz ! src/hotspot/cpu/x86/x86.ad ! test/hotspot/jtreg/compiler/vectorapi/VectorMaskLoadStoreTest.java Changeset: 068a4509 Author: Liam Miller-Cushon Date: 2021-12-15 00:26:17 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/068a450954530d9a469db05d7cf2e7dcf1eddc8a 8278825: Unused variable for diagnostic in Resolve Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java Changeset: 54c9a996 Author: Chris Plummer Date: 2021-12-15 01:25:53 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/54c9a99663c47b0477392a606637986bc5c87464 8278643: CoreUtils.getCoreFileLocation() should print out the size of the core file found Reviewed-by: amenkov, lmesnik, sspitsyn ! test/lib/jdk/test/lib/util/CoreUtils.java Changeset: 46f99aca Author: Chris Plummer Date: 2021-12-15 01:29:50 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/46f99aca94ed878a94878eacb113fe2813050ad7 8244765: Undo exclusiveAccess.dirs changes for JDK-8220295 and see if there are still any testing issues Reviewed-by: amenkov, sspitsyn ! test/jdk/TEST.ROOT Changeset: c442587f Author: Fei Gao Committer: Pengfei Li Date: 2021-12-15 02:26:40 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/c442587f1e72a614302cd76c20e13f1cb1703641 8277619: AArch64: Incorrect parameter type in Advanced SIMD Copy assembler functions Reviewed-by: aph, pli ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/aarch64_neon.ad ! src/hotspot/cpu/aarch64/aarch64_neon_ad.m4 ! src/hotspot/cpu/aarch64/assembler_aarch64.hpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! test/hotspot/gtest/aarch64/aarch64-asmtest.py ! test/hotspot/gtest/aarch64/asmtest.out.h Changeset: 758fe9be Author: Chris Plummer Date: 2021-12-15 03:11:27 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/758fe9bed3daf9a31d15291ef9787dc5a914451f 8273904: debug agent ArrayTypeImp::newInstance() fails to send reply packet if there is an error Reviewed-by: sspitsyn, amenkov ! src/jdk.jdwp.agent/share/native/libjdwp/ArrayTypeImpl.c Changeset: 7adf7f33 Author: Per Liden Date: 2021-12-15 10:09:02 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7adf7f3353ab81c5af3f2fc4c0fc9e4cf8905e32 8278351: Add function to retrieve worker_id from any context Reviewed-by: eosterlund, kbarrett, ayang ! src/hotspot/share/gc/shared/referenceProcessor.cpp ! src/hotspot/share/gc/shared/workerThread.cpp ! src/hotspot/share/gc/shared/workerThread.hpp ! src/hotspot/share/gc/shenandoah/shenandoahWorkGroup.cpp ! src/hotspot/share/gc/shenandoah/shenandoahWorkGroup.hpp Changeset: 1e3ae3be Author: Coleen Phillimore Date: 2021-12-15 13:41:59 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/1e3ae3be02e1fa76c632ef289dd1887c7fa369ec 8202579: Revisit VM_Version and VM_Version_ext for overlap and consolidation Reviewed-by: dholmes, hseigel ! src/hotspot/cpu/aarch64/vm_version_aarch64.cpp ! src/hotspot/cpu/aarch64/vm_version_aarch64.hpp - src/hotspot/cpu/aarch64/vm_version_ext_aarch64.cpp - src/hotspot/cpu/aarch64/vm_version_ext_aarch64.hpp ! src/hotspot/cpu/arm/vm_version_arm.hpp ! src/hotspot/cpu/arm/vm_version_arm_32.cpp - src/hotspot/cpu/arm/vm_version_ext_arm.cpp - src/hotspot/cpu/arm/vm_version_ext_arm.hpp - src/hotspot/cpu/ppc/vm_version_ext_ppc.cpp - src/hotspot/cpu/ppc/vm_version_ext_ppc.hpp ! src/hotspot/cpu/ppc/vm_version_ppc.cpp ! src/hotspot/cpu/ppc/vm_version_ppc.hpp - src/hotspot/cpu/s390/vm_version_ext_s390.cpp - src/hotspot/cpu/s390/vm_version_ext_s390.hpp ! src/hotspot/cpu/s390/vm_version_s390.cpp ! src/hotspot/cpu/s390/vm_version_s390.hpp ! src/hotspot/cpu/x86/rdtsc_x86.cpp - src/hotspot/cpu/x86/vm_version_ext_x86.cpp - src/hotspot/cpu/x86/vm_version_ext_x86.hpp ! src/hotspot/cpu/x86/vm_version_x86.cpp ! src/hotspot/cpu/x86/vm_version_x86.hpp - src/hotspot/cpu/zero/vm_version_ext_zero.cpp - src/hotspot/cpu/zero/vm_version_ext_zero.hpp ! src/hotspot/cpu/zero/vm_version_zero.cpp ! src/hotspot/cpu/zero/vm_version_zero.hpp ! src/hotspot/os/aix/os_perf_aix.cpp ! src/hotspot/os/bsd/os_perf_bsd.cpp ! src/hotspot/os/linux/os_perf_linux.cpp ! src/hotspot/os/windows/os_perf_windows.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/prims/jvmtiExport.cpp ! src/hotspot/share/runtime/abstract_vm_version.cpp ! src/hotspot/share/runtime/abstract_vm_version.hpp Changeset: 4851ad84 Author: Albert Mingkun Yang Date: 2021-12-15 15:02:57 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/4851ad840a8c3b93f978b829f50a27a2f629fa82 8278548: G1: Remove unnecessary check in forward_to_block_containing_addr Reviewed-by: tschatzl, mli, sjohanss ! src/hotspot/share/gc/g1/g1BlockOffsetTable.inline.hpp Changeset: fcebe65c Author: Albert Mingkun Yang Date: 2021-12-15 15:04:11 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/fcebe65ce9dc177d9fa16db606e3c8c33b2f771a 8278842: Parallel: Remove unused VerifyObjectStartArrayClosure::_old_gen Reviewed-by: tschatzl ! src/hotspot/share/gc/parallel/psOldGen.cpp Changeset: bcb79fd0 Author: Evgeny Astigeevich Committer: Paul Hohensee Date: 2021-12-15 16:57:30 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/bcb79fd012c9c298e58c20c59e564e9d2c16b970 8278241: Implement JVM SpinPause on linux-aarch64 Reviewed-by: aph, phh ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/aarch64/stubRoutines_aarch64.cpp ! src/hotspot/cpu/aarch64/stubRoutines_aarch64.hpp ! src/hotspot/os_cpu/linux_aarch64/os_linux_aarch64.cpp + test/hotspot/jtreg/runtime/Thread/TestSpinPause.java Changeset: 1f1db838 Author: Weijun Wang Date: 2021-12-15 17:00:55 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/1f1db838ab7d427170d59a8b55fdb45c4d80c359 8278186: org.jcp.xml.dsig.internal.dom.Utils.parseIdFromSameDocumentURI throws StringIndexOutOfBoundsException when calling substring method Reviewed-by: mullan ! src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMURIDereferencer.java ! src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/Utils.java + test/jdk/javax/xml/crypto/dsig/BadXPointer.java ! test/lib/jdk/test/lib/security/XMLUtils.java Changeset: 7517c85d Author: Chris Plummer Date: 2021-12-15 17:08:44 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7517c85da3236e5274580645d4c3cdecb1db25c5 8269838: BasicTypeDataBase.findDynamicTypeForAddress(addr, basetype) can be simplified Reviewed-by: kevinw, sspitsyn ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/types/basic/BasicTypeDataBase.java Changeset: 04dbdd36 Author: Andrey Turbanov Committer: Serguei Spitsyn Date: 2021-12-15 19:28:58 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/04dbdd36dd04bf40737cb8c2f13d5b75303d2b1a 8274898: Cleanup usages of StringBuffer in jdk tools modules Reviewed-by: sspitsyn, lmesnik ! src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Main.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/Log.java ! src/jdk.jshell/share/classes/jdk/internal/jshell/tool/Feedback.java Changeset: 4ba980ba Author: Ioi Lam Date: 2021-12-15 20:06:56 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/4ba980ba439f94a6b5015e64382a6c308476d63f 8278020: ~13% variation in Renaissance-Scrabble Reviewed-by: dholmes, stuefe, kvn ! src/hotspot/share/oops/klass.hpp Changeset: 32139c1a Author: Dean Long Date: 2021-12-14 03:16:17 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/32139c1a8aae51c0869f41be57580ff4463913d2 8262134: compiler/uncommontrap/TestDeoptOOM.java failed with "guarantee(false) failed: wrong number of expression stack elements during deopt" Reviewed-by: kvn, iveresov ! src/hotspot/share/c1/c1_IR.cpp ! src/hotspot/share/c1/c1_IR.hpp ! src/hotspot/share/c1/c1_LIRAssembler.cpp ! src/hotspot/share/runtime/deoptimization.cpp ! test/hotspot/jtreg/runtime/BootstrapMethod/BSMCalledTwice.java Changeset: 475ec8e6 Author: Markus Gr?nlund Date: 2021-12-14 13:00:39 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/475ec8e6c5abc3431344d69bd46395e8c4b46e4c 8277919: OldObjectSample event causing bloat in the class constant pool in JFR recording Reviewed-by: jbachorik ! src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleCheckpoint.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSet.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSetUtils.hpp Changeset: 0cc989b7 Author: Weijun Wang Date: 2021-12-14 18:39:22 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/0cc989b7d2fa3b903d71b7baab53b853455005ba 8278744: KeyStore:getAttributes() not returning unmodifiable Set Reviewed-by: mullan ! src/java.base/share/classes/sun/security/pkcs12/PKCS12KeyStore.java + test/jdk/java/security/KeyStore/PKCS12/UnmodifiableAttributes.java Changeset: f48a3e86 Author: Jie Fu Date: 2021-12-14 22:50:21 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f48a3e86d0274912160f3c415f92741eefa1cb1d 8278758: runtime/BootstrapMethod/BSMCalledTwice.java fails with release VMs after JDK-8262134 Reviewed-by: dcubed ! test/hotspot/jtreg/runtime/BootstrapMethod/BSMCalledTwice.java Changeset: 918e3397 Author: Alexander Matveev Date: 2021-12-14 23:59:11 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/918e3397858c425e9c3b82c9a918b7626603a59c 8278233: [macos] tools/jpackage tests timeout due to /usr/bin/osascript Reviewed-by: herrick, asemenyuk ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/IOUtils.java ! test/jdk/ProblemList.txt Changeset: d6b5544e Author: Maurizio Cimadamore Date: 2021-12-15 12:25:25 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/d6b5544e74d46c1ca464a1994e73ddd323ef5c2b 8278607: Misc issues in foreign API javadoc Reviewed-by: sundar ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/CLinker.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemoryAddress.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemorySegment.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/SegmentAllocator.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/VaList.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/ValueLayout.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/package-info.java Changeset: 69b5d49e Author: Erik Gahlin Date: 2021-12-15 13:24:04 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/69b5d49e4f3a6b1ea616c39815dd16530eb32887 8272064: test/jdk/jdk/jfr/api/consumer/TestHiddenMethod.java needs update for JEP 416 Reviewed-by: jbachorik ! test/jdk/jdk/jfr/api/consumer/TestHiddenMethod.java Changeset: d3408a46 Author: Vladimir Kozlov Date: 2021-12-15 21:45:45 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/d3408a46b7c8c2f8b5e41f3e286a497064a2c104 8277964: ClassCastException with no stack trace is thrown with -Xcomp in method handle invocation Reviewed-by: dlong, mchung, dholmes ! src/hotspot/share/ci/ciMethod.cpp ! src/hotspot/share/ci/ciMethod.hpp ! src/hotspot/share/classfile/vmSymbols.hpp ! src/hotspot/share/oops/method.cpp ! src/hotspot/share/oops/method.hpp ! src/hotspot/share/opto/graphKit.cpp + test/jdk/java/lang/reflect/IllegalArgumentsTest.java Changeset: e6b28e05 Author: Jesper Wilhelmsson Date: 2021-12-16 00:26:36 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e6b28e05c6f7698f230b04199932d4fc81f41a89 Merge Changeset: 0dbe4c5d Author: Calvin Cheung Date: 2021-12-16 02:32:44 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/0dbe4c5d516a5e43934cb18f3becaf2a7f90999f 8278131: runtime/cds/appcds/dynamicArchive/* tests failing in loom repo Reviewed-by: iklam, dholmes, minqi ! test/hotspot/jtreg/runtime/HiddenClasses/InstantiateHiddenClass.java ! test/hotspot/jtreg/runtime/cds/appcds/customLoader/test-classes/HelloUnload.java ! test/hotspot/jtreg/runtime/cds/appcds/customLoader/test-classes/OldClassApp.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/HelloDynamicCustom.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/LambdaCustomLoader.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/OldClassAndInf.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/PrintSharedArchiveAndExit.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/RegularHiddenClass.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/test-classes/CustomLoaderApp.java Changeset: f6fbb5a8 Author: Zhiqiang Zang Committer: Jie Fu Date: 2021-12-16 03:57:29 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f6fbb5a80cfe630e76917397d21649709485d31d 8278471: Remove unreached rules in AddNode::IdealIL Reviewed-by: jiefu, kvn ! src/hotspot/share/opto/addnode.cpp ! src/hotspot/share/opto/subnode.cpp + test/hotspot/jtreg/compiler/c2/irTests/TestSpecialCasesOf_AMinusB_Plus_CMinusD_InAddIdeal.java ! test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java Changeset: 0bddd8af Author: Dmitry Batrak Date: 2021-12-16 07:14:35 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/0bddd8af61b6c731f16b857c09de57ceefd72d06 8278050: Armenian text isn't rendered on macOS if text layout is performed Reviewed-by: prr, serb ! src/java.desktop/macosx/classes/sun/font/CFont.java ! src/java.desktop/macosx/classes/sun/font/CFontManager.java Changeset: 7edcd348 Author: Hamlin Li Date: 2021-12-16 11:35:42 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7edcd348699b47050e4c5e3181c66fd0ee72830f 8278534: Remove some unnecessary code in MethodLiveness::init_basic_blocks Reviewed-by: chagedorn ! src/hotspot/share/compiler/methodLiveness.cpp Changeset: aae56398 Author: Claes Redestad Date: 2021-12-16 11:46:02 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/aae563981c89d922c51005626b39c31e377cadc5 8278642: Refactor java.util.Formatter Reviewed-by: rriggs, naoto ! src/java.base/share/classes/java/util/Formatter.java Changeset: e0700bf1 Author: Albert Mingkun Yang Date: 2021-12-16 13:39:24 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e0700bf1d464762d0ee52c08e7e8668e9c8cfc3f 8278763: Parallel: Remove grows_up/grows_down in PSVirtualSpace Reviewed-by: tschatzl, mli ! src/hotspot/share/gc/parallel/psVirtualspace.cpp ! src/hotspot/share/gc/parallel/psVirtualspace.hpp Changeset: 271d26f1 Author: Albert Mingkun Yang Date: 2021-12-16 13:40:22 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/271d26f14149014d264e3a33cc0206f61856f7cd 8278601: Parallel: Remove redundant code in ObjectStartArray::initialize Reviewed-by: sjohanss, mli ! src/hotspot/share/gc/parallel/objectStartArray.cpp Changeset: f15a59ce Author: Albert Mingkun Yang Date: 2021-12-16 13:41:19 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f15a59ce72e7637620c2d3b5becf751809d13aed 8278756: Parallel: Drop PSOldGen::_reserved Reviewed-by: tschatzl, mli ! src/hotspot/share/gc/parallel/objectStartArray.hpp ! src/hotspot/share/gc/parallel/parallelScavengeHeap.cpp ! src/hotspot/share/gc/parallel/psOldGen.cpp ! src/hotspot/share/gc/parallel/psOldGen.hpp ! src/hotspot/share/gc/parallel/psParallelCompact.cpp ! src/hotspot/share/gc/parallel/psVirtualspace.cpp ! src/hotspot/share/gc/parallel/psVirtualspace.hpp ! src/hotspot/share/gc/parallel/psYoungGen.hpp ! src/hotspot/share/gc/parallel/vmStructs_parallelgc.hpp Changeset: 937126b1 Author: Zhengyu Gu Date: 2021-12-16 15:23:02 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/937126b1406ff0f6ac0828310e5e09003692dcd3 8278551: Shenandoah: Adopt WorkerThread::worker_id() to replace Shenandoah specific implementation Reviewed-by: rkennke ! src/hotspot/share/gc/shenandoah/shenandoahReferenceProcessor.cpp ! src/hotspot/share/gc/shenandoah/shenandoahThreadLocalData.hpp ! src/hotspot/share/gc/shenandoah/shenandoahUtils.cpp ! src/hotspot/share/gc/shenandoah/shenandoahUtils.hpp Changeset: 20db7800 Author: Sergey Tsypanov Committer: Roger Riggs Date: 2021-12-16 21:39:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/20db7800a657b311eeac504a2bbae4adbc209dbf 8277868: Use Comparable.compare() instead of surrogate code Reviewed-by: rriggs, aivanov ! src/java.base/share/classes/java/math/BigDecimal.java ! src/java.base/share/classes/java/net/CookieManager.java ! src/java.base/share/classes/java/util/Calendar.java ! src/java.base/share/classes/java/util/Date.java ! src/java.base/share/classes/java/util/UUID.java ! src/java.desktop/share/classes/java/awt/font/NumericShaper.java ! src/java.desktop/share/classes/java/awt/geom/Line2D.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicTableUI.java ! src/java.desktop/share/classes/javax/swing/text/GapContent.java ! src/java.desktop/share/classes/sun/awt/geom/Curve.java ! src/java.desktop/share/classes/sun/java2d/Spans.java ! src/java.desktop/share/classes/sun/java2d/loops/GraphicsPrimitiveMgr.java Changeset: 8f5fdd86 Author: Naoto Sato Date: 2021-12-16 21:41:38 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8f5fdd864b6f1cf4a2d9d961d8d4118960f0751e 8278587: StringTokenizer(String, String, boolean) documentation bug Reviewed-by: iris, joehw, lancea, rriggs, darcy ! src/java.base/share/classes/java/util/StringTokenizer.java Changeset: 197c9f5a Author: David Holmes Date: 2021-12-16 22:17:53 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/197c9f5ac8cc0ebfcd9f33415b0dcd382cd8d15e 8268573: Remove expired flags in JDK 19 Reviewed-by: dcubed, pchilanomate, eosterlund ! src/hotspot/share/runtime/arguments.cpp ! src/java.base/share/man/java.1 Changeset: 7ce4aa89 Author: Chris Plummer Date: 2021-12-16 23:25:07 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7ce4aa894279b76b6033bb4a1d0caa00d4213406 8276982: VM.class_hierarchy jcmd help output and man page text needs clarifications/improvements Reviewed-by: stuefe, dholmes, sspitsyn ! src/hotspot/share/services/diagnosticCommand.cpp ! src/jdk.jcmd/share/man/jcmd.1 Changeset: e82310f3 Author: Stuart Marks Date: 2021-12-16 01:27:07 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e82310f3605b37519129ea34b2a6f99ee3ccc63a 8278575: update jcmd GC.finalizer_info to list finalization status Co-authored-by: David Holmes Reviewed-by: dholmes, kbarrett ! src/hotspot/share/services/diagnosticCommand.cpp Changeset: aec1b039 Author: Thomas Schatzl Date: 2021-12-16 12:29:57 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/aec1b039b35b73db17c943cdd86949a92e64fcb6 8278389: SuspendibleThreadSet::_suspend_all should be volatile/atomic Reviewed-by: ayang, mli ! src/hotspot/share/gc/shared/suspendibleThreadSet.cpp ! src/hotspot/share/gc/shared/suspendibleThreadSet.hpp Changeset: be6b90d9 Author: Stuart Marks Date: 2021-12-16 17:35:32 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/be6b90d90b54883ff17f9f5ac0f271de37df7e2a 8278574: update --help-extra message to include default value of --finalization option Reviewed-by: sundar, alanb, lancea, mchung ! src/java.base/share/classes/sun/launcher/resources/launcher.properties Changeset: 634afe8c Author: Jesper Wilhelmsson Date: 2021-12-17 01:08:22 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/634afe8c5c0855eafb1639f54ecc8e9c9e568814 Merge ! src/hotspot/share/services/diagnosticCommand.cpp ! src/hotspot/share/services/diagnosticCommand.cpp Changeset: 8c73ec15 Author: Hamlin Li Date: 2021-12-17 03:29:28 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8c73ec155dd9324367d2a8e5f2e49da11683f8c8 8278891: G1: Call reset in G1RegionMarkStatsCache constructor Reviewed-by: tschatzl, ayang ! src/hotspot/share/gc/g1/g1FullGCMarker.cpp ! src/hotspot/share/gc/g1/g1RegionMarkStatsCache.cpp Changeset: 247ea71d Author: Dmitry Chuyko Date: 2021-12-17 09:19:00 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/247ea71d24a251d29d9a5179e5b773df850e7261 8278826: Print error if Shenandoah flags are empty (instead of crashing) Reviewed-by: rkennke, mli ! src/hotspot/share/gc/shenandoah/mode/shenandoahIUMode.cpp ! src/hotspot/share/gc/shenandoah/mode/shenandoahPassiveMode.cpp ! src/hotspot/share/gc/shenandoah/mode/shenandoahSATBMode.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Changeset: 9ff93240 Author: duke Date: 2021-12-17 11:00:39 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9ff932402b4284022bd38e5e723a79722e60e428 Automatic merge of jdk:master into master Changeset: 23a049ae Author: duke Date: 2021-12-17 11:00:55 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/23a049aebd614ba701fc5945f184758120ea2172 Automatic merge of master into foreign-memaccess+abi ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/compile.hpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/runtime/globals.hpp ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemoryAddress.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemorySegment.java ! test/jdk/ProblemList.txt ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/compile.hpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/runtime/globals.hpp ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemoryAddress.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemorySegment.java ! test/jdk/ProblemList.txt Changeset: aca04af4 Author: duke Date: 2021-12-17 11:01:10 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/aca04af4447e2846320baf5a49dd72c1c87773db Automatic merge of foreign-memaccess+abi into foreign-jextract ! test/jdk/TEST.groups ! test/jdk/TEST.groups From duke at openjdk.java.net Fri Dec 17 11:11:04 2021 From: duke at openjdk.java.net (duke) Date: Fri, 17 Dec 2021 11:11:04 GMT Subject: git: openjdk/panama-foreign: foreign-memaccess+abi: 79 new changesets Message-ID: Changeset: 3e0b083f Author: Hamlin Li Date: 2021-12-10 14:51:27 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3e0b083f2013f07b090af92a78c9a5f46f9fe427 8278533: Remove some unused methods in c1_Instruction and c1_ValueMap Reviewed-by: chagedorn ! src/hotspot/share/c1/c1_Instruction.cpp ! src/hotspot/share/c1/c1_Instruction.hpp ! src/hotspot/share/c1/c1_ValueMap.hpp Changeset: 8eb453ba Author: Roman Kennke Date: 2021-12-10 16:24:16 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8eb453baebe377697286f7eb32280ca9f1fd7775 8277072: ObjectStreamClass caches keep ClassLoaders alive Reviewed-by: rriggs, plevart + src/java.base/share/classes/java/io/ClassCache.java ! src/java.base/share/classes/java/io/ObjectStreamClass.java + test/jdk/java/io/ObjectStreamClass/ObjectStreamClassCaching.java + test/jdk/java/io/ObjectStreamClass/TestOSCClassLoaderLeak.java Changeset: 4f594e6a Author: Dan Lutker Committer: Paul Hohensee Date: 2021-12-10 17:52:54 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/4f594e6a28ad85d46d3252fb960f1c116f414899 8278381: [GCC 11] Address::make_raw() does not initialize rspec Reviewed-by: phh, xliu ! src/hotspot/cpu/arm/assembler_arm_32.cpp ! src/hotspot/cpu/x86/assembler_x86.cpp Changeset: afd065b3 Author: Evgeny Astigeevich Committer: Paul Hohensee Date: 2021-12-10 18:27:36 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/afd065b3684f7b87563961c2b7a6ee6a354dbdf9 8278415: [TESTBUG] vmTestbase/nsk/stress/stack/stack018.java fails with "java.lang.Error: TEST_RFE" Reviewed-by: phh ! test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack018.java Changeset: ed5d53ae Author: Jonathan Gibbons Date: 2021-12-10 02:50:37 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ed5d53ae0eb0b12de11fb3d79ae0371c093ce434 8273179: Update nroff pages in JDK 18 before RC Reviewed-by: dholmes ! src/java.base/share/man/java.1 ! src/java.base/share/man/keytool.1 ! src/java.rmi/share/man/rmiregistry.1 ! src/java.scripting/share/man/jrunscript.1 ! src/jdk.compiler/share/man/javac.1 ! src/jdk.compiler/share/man/serialver.1 ! src/jdk.hotspot.agent/share/man/jhsdb.1 ! src/jdk.httpserver/share/man/jwebserver.1 ! src/jdk.jartool/share/man/jar.1 ! src/jdk.jartool/share/man/jarsigner.1 ! src/jdk.javadoc/share/man/javadoc.1 ! src/jdk.jcmd/share/man/jcmd.1 ! src/jdk.jcmd/share/man/jinfo.1 ! src/jdk.jcmd/share/man/jmap.1 ! src/jdk.jcmd/share/man/jps.1 ! src/jdk.jcmd/share/man/jstack.1 ! src/jdk.jcmd/share/man/jstat.1 ! src/jdk.jconsole/share/man/jconsole.1 ! src/jdk.jdeps/share/man/javap.1 ! src/jdk.jdeps/share/man/jdeprscan.1 ! src/jdk.jdeps/share/man/jdeps.1 ! src/jdk.jdi/share/man/jdb.1 ! src/jdk.jfr/share/man/jfr.1 ! src/jdk.jlink/share/man/jlink.1 ! src/jdk.jlink/share/man/jmod.1 ! src/jdk.jpackage/share/man/jpackage.1 ! src/jdk.jshell/share/man/jshell.1 ! src/jdk.jstatd/share/man/jstatd.1 Changeset: 3df8dc49 Author: Jonathan Gibbons Date: 2021-12-10 05:02:28 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3df8dc494d2d0e6d1003094c9e129be2cca10a3c 8278538: Test langtools/jdk/javadoc/tool/CheckManPageOptions.java fails after the manpage was updated Reviewed-by: dholmes ! test/langtools/jdk/javadoc/tool/CheckManPageOptions.java Changeset: 0602f4c4 Author: Hao Sun Committer: Aleksey Shipilev Date: 2021-12-10 15:53:27 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/0602f4c48b0ffe53a6081551988b417d7536efa0 8277621: ARM32: multiple fastdebug failures with "bad AD file" after JDK-8276162 Reviewed-by: njian, dlong, shade ! src/hotspot/cpu/arm/arm.ad Changeset: 61736f81 Author: Jesper Wilhelmsson Date: 2021-12-10 18:42:51 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/61736f81fb4a20375c83d59e2b37a00aafb11107 Merge Changeset: 81c56c70 Author: Phil Race Date: 2021-12-10 21:02:28 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/81c56c700a47c7f1b7855052de17eb88fac84674 8278456: Define jtreg jdk_desktop test group time-based sub-tasks for use by headful testing. Reviewed-by: serb, aivanov, psadhukhan ! test/jdk/TEST.groups Changeset: 6eb6ec05 Author: Dan Lutker Committer: Paul Hohensee Date: 2021-12-10 23:49:41 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/6eb6ec05fd4f80e11d0b052b58190bc8b53f4b11 8278525: Additional -Wnonnull errors happen with GCC 11 Reviewed-by: phh, dlong ! src/hotspot/cpu/x86/assembler_x86.cpp Changeset: db68a0ce Author: Andrew Leonard Date: 2021-12-11 15:27:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/db68a0ce1ce152345320e70acb7e9842d2f1ece4 8276766: Enable jar and jmod to produce deterministic timestamped content Reviewed-by: ihse, lancea, alanb, jgneff ! src/jdk.jartool/share/classes/sun/tools/jar/GNUStyleOptions.java ! src/jdk.jartool/share/classes/sun/tools/jar/Main.java ! src/jdk.jartool/share/classes/sun/tools/jar/resources/jar.properties ! src/jdk.jlink/share/classes/jdk/tools/jmod/JmodOutputStream.java ! src/jdk.jlink/share/classes/jdk/tools/jmod/JmodTask.java ! src/jdk.jlink/share/classes/jdk/tools/jmod/resources/jmod.properties + test/jdk/tools/jar/ReproducibleJar.java ! test/jdk/tools/jmod/JmodTest.java Changeset: 7c2c5858 Author: Sergey Bylokhov Date: 2021-12-12 21:47:03 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7c2c58587d4eda5523331eae45e7d897252dc097 8276819: javax/print/PrintServiceLookup/FlushCustomClassLoader.java fails to free Reviewed-by: psadhukhan, aivanov ! test/jdk/javax/print/PrintServiceLookup/FlushCustomClassLoader.java Changeset: 8b5ff4bd Author: Matthias Baesken Date: 2021-12-13 07:48:20 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8b5ff4bdffc8f32317d67b00c085071d6c772b30 8278344: sun/security/pkcs12/KeytoolOpensslInteropTest.java test fails because of different openssl output Reviewed-by: mdoerr, goetz, stuefe ! test/jdk/sun/security/pkcs12/KeytoolOpensslInteropTest.java Changeset: ccdb9f1b Author: Albert Mingkun Yang Date: 2021-12-13 09:50:30 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ccdb9f1b160a0f49ee86c7a2714d2381d68419cc 8278482: G1: Improve HeapRegion::block_is_obj Reviewed-by: sjohanss, tschatzl, mli ! src/hotspot/share/gc/g1/heapRegion.cpp ! src/hotspot/share/gc/g1/heapRegion.inline.hpp Changeset: 23fd9f15 Author: Christian Stein Committer: Lance Andersen Date: 2021-12-13 12:00:47 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/23fd9f15da40cef00231380766158bc0fa537c38 8271079: JavaFileObject#toUri and multi-release jars Reviewed-by: jjg, lancea, alanb ! src/jdk.compiler/share/classes/com/sun/tools/javac/file/PathFileObject.java ! src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipFileSystem.java ! src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipPath.java ! test/jdk/jdk/nio/zipfs/ZipFSTester.java ! test/jdk/jdk/nio/zipfs/jarfs/JFSTester.java + test/langtools/tools/javac/T8271079.java Changeset: 14f7385a Author: Harold Seigel Date: 2021-12-13 13:35:37 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/14f7385a72972e1f15b3103cc75a60c5733f6d98 8277481: Obsolete seldom used CDS flags Reviewed-by: iklam, ccheung, dholmes ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/utilities/globalDefinitions.cpp ! src/hotspot/share/utilities/globalDefinitions.hpp ! src/java.base/share/classes/jdk/internal/misc/CDS.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/VM.java ! src/jdk.hotspot.agent/share/native/libsaproc/ps_core_common.c ! test/hotspot/jtreg/runtime/cds/SharedArchiveFile.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/DynamicArchiveTestBase.java - test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/DynamicFlag.java ! test/hotspot/jtreg/runtime/cds/appcds/jcmd/JCmdTestDumpBase.java ! test/hotspot/jtreg/runtime/cds/appcds/jcmd/JCmdTestDynamicDump.java ! test/hotspot/jtreg/runtime/cds/appcds/jcmd/JCmdTestStaticDump.java Changeset: 15996e40 Author: Harold Seigel Date: 2021-12-13 13:40:54 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/15996e407563eda844266f1cbcdc20be74b4b4e4 8276241: JVM does not flag constant class entries ending in '/' Reviewed-by: dholmes, lfoltan ! src/hotspot/share/classfile/classFileParser.cpp + test/hotspot/jtreg/runtime/classFileParserBug/TrailingSlashTest.java Changeset: ca8c58c7 Author: merykitty Committer: Paul Sandoz Date: 2021-12-13 16:34:37 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ca8c58c731959e3a1b8fe02255ed44fc1d14d565 8259610: VectorReshapeTests are not effective due to failing to intrinsify "VectorSupport.convert" Reviewed-by: psandoz, chagedorn ! test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java + test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorCastAVX1.java + test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorCastAVX2.java + test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorCastAVX512.java + test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorCastAVX512DQ.java + test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorCastNeon.java + test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorCastSVE.java + test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorReinterpret.java + test/hotspot/jtreg/compiler/vectorapi/reshape/tests/TestVectorCast.java + test/hotspot/jtreg/compiler/vectorapi/reshape/tests/TestVectorDoubleExpandShrink.java + test/hotspot/jtreg/compiler/vectorapi/reshape/tests/TestVectorExpandShrink.java + test/hotspot/jtreg/compiler/vectorapi/reshape/tests/TestVectorRebracket.java + test/hotspot/jtreg/compiler/vectorapi/reshape/utils/TestCastMethods.java + test/hotspot/jtreg/compiler/vectorapi/reshape/utils/UnsafeUtils.java + test/hotspot/jtreg/compiler/vectorapi/reshape/utils/VectorReshapeHelper.java + test/hotspot/jtreg/compiler/vectorapi/reshape/utils/VectorSpeciesPair.java Changeset: db502d30 Author: Chris Plummer Date: 2021-12-13 19:02:12 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/db502d30a42847f69273f48378f230d9d55eb8d6 8269556: sun/tools/jhsdb/JShellHeapDumpTest.java fails with RuntimeException 'JShellToolProvider' missing from stdout/stderr Reviewed-by: kevinw, sspitsyn, amenkov ! test/jdk/sun/tools/jhsdb/JShellHeapDumpTest.java Changeset: bdc784c0 Author: Daniel D. Daugherty Date: 2021-12-13 20:36:40 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/bdc784c0cb02d76c6d3a1608a89f4b64f86253eb 8278630: ProblemList compiler/vectorapi/reshape/TestVectorCastAVX512.java on X64 Reviewed-by: psandoz ! test/hotspot/jtreg/ProblemList.txt Changeset: 624f3094 Author: David Holmes Date: 2021-12-13 21:36:24 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/624f3094b89976a0be0a1d1d4ce304f4be38fb9e 8278275: Initial nroff manpage generation for JDK 19 Reviewed-by: erikj, jjg, iris ! src/java.base/share/man/java.1 ! src/java.base/share/man/keytool.1 ! src/java.rmi/share/man/rmiregistry.1 ! src/java.scripting/share/man/jrunscript.1 ! src/jdk.compiler/share/man/javac.1 ! src/jdk.compiler/share/man/serialver.1 ! src/jdk.hotspot.agent/share/man/jhsdb.1 ! src/jdk.httpserver/share/man/jwebserver.1 ! src/jdk.jartool/share/man/jar.1 ! src/jdk.jartool/share/man/jarsigner.1 ! src/jdk.javadoc/share/man/javadoc.1 ! src/jdk.jcmd/share/man/jcmd.1 ! src/jdk.jcmd/share/man/jinfo.1 ! src/jdk.jcmd/share/man/jmap.1 ! src/jdk.jcmd/share/man/jps.1 ! src/jdk.jcmd/share/man/jstack.1 ! src/jdk.jcmd/share/man/jstat.1 ! src/jdk.jconsole/share/man/jconsole.1 ! src/jdk.jdeps/share/man/javap.1 ! src/jdk.jdeps/share/man/jdeprscan.1 ! src/jdk.jdeps/share/man/jdeps.1 ! src/jdk.jdi/share/man/jdb.1 ! src/jdk.jfr/share/man/jfr.1 ! src/jdk.jlink/share/man/jlink.1 ! src/jdk.jlink/share/man/jmod.1 ! src/jdk.jpackage/share/man/jpackage.1 ! src/jdk.jshell/share/man/jshell.1 ! src/jdk.jstatd/share/man/jstatd.1 Changeset: 94127f43 Author: Alexander Zuev Date: 2021-12-10 20:27:07 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/94127f43a4a28a89094fa93cd1da49763134f9db 8277299: STACK_OVERFLOW in Java_sun_awt_shell_Win32ShellFolder2_getIconBits Reviewed-by: aivanov ! src/java.desktop/windows/native/libawt/windows/ShellFolder2.cpp + test/jdk/javax/swing/JFileChooser/FileSystemView/ShellFolderStackOverflow.java Changeset: 9b99cbe7 Author: Daniel D. Daugherty Date: 2021-12-11 15:53:31 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9b99cbe7abf56d3ad5231a68b6506e35b89133c9 8278580: ProblemList javax/swing/JTree/4908142/bug4908142.java on macosx-x64 Reviewed-by: alanb ! test/jdk/ProblemList.txt Changeset: 9a1bbaf8 Author: Scott Gibbons Committer: Vladimir Kozlov Date: 2021-12-12 16:08:35 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9a1bbaf8db0e869ab76be8ab1bd0ddeb23693e7e 8273108: RunThese24H crashes with SEGV in markWord::displaced_mark_helper() after JDK-8268276 8272809: JFR thread sampler SI_KERNEL SEGV in metaspace::VirtualSpaceList::contains Reviewed-by: sviswanathan, kvn ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp ! test/hotspot/jtreg/compiler/intrinsics/base64/TestBase64.java Changeset: c93b24d8 Author: David Holmes Date: 2021-12-13 21:37:51 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/c93b24d85289167639e9ec4b79bd85403687161b 8132785: java/lang/management/ThreadMXBean/ThreadLists.java fails intermittently Reviewed-by: alanb, kevinw, dcubed, sspitsyn ! test/jdk/ProblemList.txt ! test/jdk/java/lang/management/ThreadMXBean/ThreadLists.java Changeset: 8401a059 Author: Jesper Wilhelmsson Date: 2021-12-14 02:15:15 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8401a059bd01b32e3532f806d3d8b60e851c468a Merge Changeset: 3f9638d1 Author: Thomas Stuefe Date: 2021-12-14 05:45:56 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3f9638d124076019f49eb77bc3ff8b466e4beb53 8278585: Drop unused code from OSThread Reviewed-by: dholmes, tschatzl ! src/hotspot/os/aix/osThread_aix.hpp ! src/hotspot/os/aix/os_aix.cpp ! src/hotspot/os/bsd/osThread_bsd.hpp ! src/hotspot/os/bsd/os_bsd.cpp ! src/hotspot/os/linux/osThread_linux.hpp ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/os/windows/osThread_windows.hpp ! src/hotspot/os/windows/os_windows.cpp ! src/hotspot/share/jfr/writers/jfrJavaEventWriter.cpp ! src/hotspot/share/runtime/osThread.cpp ! src/hotspot/share/runtime/osThread.hpp ! src/hotspot/share/runtime/thread.cpp Changeset: 7761a3e8 Author: Albert Mingkun Yang Date: 2021-12-14 17:11:11 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7761a3e883bcd18b0b235248c37f9228fd37b927 8278761: Parallel: Remove unused PSOldPromotionLAB constructor Reviewed-by: tschatzl ! src/hotspot/share/gc/parallel/psPromotionLAB.hpp Changeset: 3f91948c Author: Coleen Phillimore Date: 2021-12-14 17:45:35 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3f91948c592d6968d2de6c59a5d93866f439c0e8 8278791: Rename ClassLoaderData::holder_phantom Reviewed-by: stefank ! src/hotspot/share/cds/metaspaceShared.cpp ! src/hotspot/share/classfile/classLoaderData.cpp ! src/hotspot/share/classfile/classLoaderData.hpp ! src/hotspot/share/classfile/classLoaderDataGraph.cpp ! src/hotspot/share/oops/klass.inline.hpp Changeset: a9c1acbb Author: Sergey Bylokhov Date: 2021-12-14 18:03:00 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/a9c1acbb8aec46e4a488b7c77bb6318af87747f6 8275843: Random crashes while the UI code is executed Reviewed-by: azvegint ! src/java.desktop/unix/classes/sun/java2d/xr/XRCompositeManager.java ! src/java.desktop/unix/classes/sun/java2d/xr/XRGraphicsConfig.java ! src/java.desktop/unix/classes/sun/java2d/xr/XRSurfaceData.java ! test/jdk/java/awt/ColorClass/AlphaColorTest.java ! test/jdk/java/awt/ColorClass/XRenderTranslucentColorDrawTest.java + test/jdk/java/awt/image/ColorModel/DrawCustomColorModel.java Changeset: de65230d Author: Zhengyu Gu Date: 2021-12-14 18:39:28 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/de65230d7183eb2d534afae5891eaa27074b8a7d 8278767: Shenandoah: Remove unused ShenandoahRootScanner Reviewed-by: rkennke ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp Changeset: a1dfe572 Author: Vladimir Kozlov Date: 2021-12-14 19:24:13 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/a1dfe57249db15c0c05d33a0014ac914a7093089 8276455: C2: iterative EA Reviewed-by: iveresov, neliasso, roland ! src/hotspot/share/opto/c2compiler.cpp ! src/hotspot/share/opto/c2compiler.hpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/compile.hpp ! src/hotspot/share/opto/escape.cpp ! src/hotspot/share/opto/escape.hpp + test/hotspot/jtreg/compiler/c2/irTests/TestIterativeEA.java + test/hotspot/jtreg/compiler/escapeAnalysis/TestIterativeEA.java + test/micro/org/openjdk/bench/vm/compiler/IterativeEA.java + test/micro/org/openjdk/bench/vm/compiler/PointerBenchmarkFlat.java Changeset: 03f647f4 Author: Roger Riggs Date: 2021-12-14 19:54:54 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/03f647f4bb640bf5df1c461eec9860c7ac3eb076 8278028: [test-library] Warnings cleanup of the test library Reviewed-by: dfuchs, mchung, naoto, lancea, lmesnik ! test/lib-test/jdk/test/lib/AssertsTest.java ! test/lib-test/jdk/test/lib/TestPlatformIsTieredSupported.java ! test/lib-test/jdk/test/lib/format/ArrayDiffTest.java ! test/lib-test/jdk/test/whitebox/OldWhiteBox.java ! test/lib-test/jdk/test/whitebox/vm_flags/VmFlagTest.java ! test/lib/RedefineClassHelper.java ! test/lib/jdk/test/lib/NetworkConfiguration.java ! test/lib/jdk/test/lib/compiler/InMemoryJavaCompiler.java ! test/lib/jdk/test/lib/format/ArrayCodec.java ! test/lib/jdk/test/lib/format/ArrayDiff.java ! test/lib/jdk/test/lib/hexdump/ASN1Formatter.java ! test/lib/jdk/test/lib/hexdump/StreamDump.java ! test/lib/jdk/test/lib/process/Proc.java ! test/lib/jdk/test/lib/process/ProcessTools.java Changeset: 98a8d446 Author: Harold Seigel Date: 2021-12-14 20:35:49 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/98a8d446b69fd84355731a8a3192cbd42671abb8 8278638: Remove FLAG_IS_CMDLINE(UseSharedSpaces) Reviewed-by: dcubed, coleenp ! src/hotspot/share/runtime/arguments.cpp Changeset: 2def7e91 Author: Jie Fu Date: 2021-12-14 22:49:04 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/2def7e913207af788e582ed5bde21b28883183de 8278584: compiler/vectorapi/VectorMaskLoadStoreTest.java failed with "Error: ShouldNotReachHere()" Reviewed-by: kvn, psandoz ! src/hotspot/cpu/x86/x86.ad ! test/hotspot/jtreg/compiler/vectorapi/VectorMaskLoadStoreTest.java Changeset: 068a4509 Author: Liam Miller-Cushon Date: 2021-12-15 00:26:17 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/068a450954530d9a469db05d7cf2e7dcf1eddc8a 8278825: Unused variable for diagnostic in Resolve Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java Changeset: 54c9a996 Author: Chris Plummer Date: 2021-12-15 01:25:53 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/54c9a99663c47b0477392a606637986bc5c87464 8278643: CoreUtils.getCoreFileLocation() should print out the size of the core file found Reviewed-by: amenkov, lmesnik, sspitsyn ! test/lib/jdk/test/lib/util/CoreUtils.java Changeset: 46f99aca Author: Chris Plummer Date: 2021-12-15 01:29:50 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/46f99aca94ed878a94878eacb113fe2813050ad7 8244765: Undo exclusiveAccess.dirs changes for JDK-8220295 and see if there are still any testing issues Reviewed-by: amenkov, sspitsyn ! test/jdk/TEST.ROOT Changeset: c442587f Author: Fei Gao Committer: Pengfei Li Date: 2021-12-15 02:26:40 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/c442587f1e72a614302cd76c20e13f1cb1703641 8277619: AArch64: Incorrect parameter type in Advanced SIMD Copy assembler functions Reviewed-by: aph, pli ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/aarch64_neon.ad ! src/hotspot/cpu/aarch64/aarch64_neon_ad.m4 ! src/hotspot/cpu/aarch64/assembler_aarch64.hpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! test/hotspot/gtest/aarch64/aarch64-asmtest.py ! test/hotspot/gtest/aarch64/asmtest.out.h Changeset: 758fe9be Author: Chris Plummer Date: 2021-12-15 03:11:27 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/758fe9bed3daf9a31d15291ef9787dc5a914451f 8273904: debug agent ArrayTypeImp::newInstance() fails to send reply packet if there is an error Reviewed-by: sspitsyn, amenkov ! src/jdk.jdwp.agent/share/native/libjdwp/ArrayTypeImpl.c Changeset: 7adf7f33 Author: Per Liden Date: 2021-12-15 10:09:02 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7adf7f3353ab81c5af3f2fc4c0fc9e4cf8905e32 8278351: Add function to retrieve worker_id from any context Reviewed-by: eosterlund, kbarrett, ayang ! src/hotspot/share/gc/shared/referenceProcessor.cpp ! src/hotspot/share/gc/shared/workerThread.cpp ! src/hotspot/share/gc/shared/workerThread.hpp ! src/hotspot/share/gc/shenandoah/shenandoahWorkGroup.cpp ! src/hotspot/share/gc/shenandoah/shenandoahWorkGroup.hpp Changeset: 1e3ae3be Author: Coleen Phillimore Date: 2021-12-15 13:41:59 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/1e3ae3be02e1fa76c632ef289dd1887c7fa369ec 8202579: Revisit VM_Version and VM_Version_ext for overlap and consolidation Reviewed-by: dholmes, hseigel ! src/hotspot/cpu/aarch64/vm_version_aarch64.cpp ! src/hotspot/cpu/aarch64/vm_version_aarch64.hpp - src/hotspot/cpu/aarch64/vm_version_ext_aarch64.cpp - src/hotspot/cpu/aarch64/vm_version_ext_aarch64.hpp ! src/hotspot/cpu/arm/vm_version_arm.hpp ! src/hotspot/cpu/arm/vm_version_arm_32.cpp - src/hotspot/cpu/arm/vm_version_ext_arm.cpp - src/hotspot/cpu/arm/vm_version_ext_arm.hpp - src/hotspot/cpu/ppc/vm_version_ext_ppc.cpp - src/hotspot/cpu/ppc/vm_version_ext_ppc.hpp ! src/hotspot/cpu/ppc/vm_version_ppc.cpp ! src/hotspot/cpu/ppc/vm_version_ppc.hpp - src/hotspot/cpu/s390/vm_version_ext_s390.cpp - src/hotspot/cpu/s390/vm_version_ext_s390.hpp ! src/hotspot/cpu/s390/vm_version_s390.cpp ! src/hotspot/cpu/s390/vm_version_s390.hpp ! src/hotspot/cpu/x86/rdtsc_x86.cpp - src/hotspot/cpu/x86/vm_version_ext_x86.cpp - src/hotspot/cpu/x86/vm_version_ext_x86.hpp ! src/hotspot/cpu/x86/vm_version_x86.cpp ! src/hotspot/cpu/x86/vm_version_x86.hpp - src/hotspot/cpu/zero/vm_version_ext_zero.cpp - src/hotspot/cpu/zero/vm_version_ext_zero.hpp ! src/hotspot/cpu/zero/vm_version_zero.cpp ! src/hotspot/cpu/zero/vm_version_zero.hpp ! src/hotspot/os/aix/os_perf_aix.cpp ! src/hotspot/os/bsd/os_perf_bsd.cpp ! src/hotspot/os/linux/os_perf_linux.cpp ! src/hotspot/os/windows/os_perf_windows.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/prims/jvmtiExport.cpp ! src/hotspot/share/runtime/abstract_vm_version.cpp ! src/hotspot/share/runtime/abstract_vm_version.hpp Changeset: 4851ad84 Author: Albert Mingkun Yang Date: 2021-12-15 15:02:57 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/4851ad840a8c3b93f978b829f50a27a2f629fa82 8278548: G1: Remove unnecessary check in forward_to_block_containing_addr Reviewed-by: tschatzl, mli, sjohanss ! src/hotspot/share/gc/g1/g1BlockOffsetTable.inline.hpp Changeset: fcebe65c Author: Albert Mingkun Yang Date: 2021-12-15 15:04:11 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/fcebe65ce9dc177d9fa16db606e3c8c33b2f771a 8278842: Parallel: Remove unused VerifyObjectStartArrayClosure::_old_gen Reviewed-by: tschatzl ! src/hotspot/share/gc/parallel/psOldGen.cpp Changeset: bcb79fd0 Author: Evgeny Astigeevich Committer: Paul Hohensee Date: 2021-12-15 16:57:30 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/bcb79fd012c9c298e58c20c59e564e9d2c16b970 8278241: Implement JVM SpinPause on linux-aarch64 Reviewed-by: aph, phh ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/aarch64/stubRoutines_aarch64.cpp ! src/hotspot/cpu/aarch64/stubRoutines_aarch64.hpp ! src/hotspot/os_cpu/linux_aarch64/os_linux_aarch64.cpp + test/hotspot/jtreg/runtime/Thread/TestSpinPause.java Changeset: 1f1db838 Author: Weijun Wang Date: 2021-12-15 17:00:55 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/1f1db838ab7d427170d59a8b55fdb45c4d80c359 8278186: org.jcp.xml.dsig.internal.dom.Utils.parseIdFromSameDocumentURI throws StringIndexOutOfBoundsException when calling substring method Reviewed-by: mullan ! src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMURIDereferencer.java ! src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/Utils.java + test/jdk/javax/xml/crypto/dsig/BadXPointer.java ! test/lib/jdk/test/lib/security/XMLUtils.java Changeset: 7517c85d Author: Chris Plummer Date: 2021-12-15 17:08:44 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7517c85da3236e5274580645d4c3cdecb1db25c5 8269838: BasicTypeDataBase.findDynamicTypeForAddress(addr, basetype) can be simplified Reviewed-by: kevinw, sspitsyn ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/types/basic/BasicTypeDataBase.java Changeset: 04dbdd36 Author: Andrey Turbanov Committer: Serguei Spitsyn Date: 2021-12-15 19:28:58 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/04dbdd36dd04bf40737cb8c2f13d5b75303d2b1a 8274898: Cleanup usages of StringBuffer in jdk tools modules Reviewed-by: sspitsyn, lmesnik ! src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Main.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/Log.java ! src/jdk.jshell/share/classes/jdk/internal/jshell/tool/Feedback.java Changeset: 4ba980ba Author: Ioi Lam Date: 2021-12-15 20:06:56 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/4ba980ba439f94a6b5015e64382a6c308476d63f 8278020: ~13% variation in Renaissance-Scrabble Reviewed-by: dholmes, stuefe, kvn ! src/hotspot/share/oops/klass.hpp Changeset: 32139c1a Author: Dean Long Date: 2021-12-14 03:16:17 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/32139c1a8aae51c0869f41be57580ff4463913d2 8262134: compiler/uncommontrap/TestDeoptOOM.java failed with "guarantee(false) failed: wrong number of expression stack elements during deopt" Reviewed-by: kvn, iveresov ! src/hotspot/share/c1/c1_IR.cpp ! src/hotspot/share/c1/c1_IR.hpp ! src/hotspot/share/c1/c1_LIRAssembler.cpp ! src/hotspot/share/runtime/deoptimization.cpp ! test/hotspot/jtreg/runtime/BootstrapMethod/BSMCalledTwice.java Changeset: 475ec8e6 Author: Markus Gr?nlund Date: 2021-12-14 13:00:39 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/475ec8e6c5abc3431344d69bd46395e8c4b46e4c 8277919: OldObjectSample event causing bloat in the class constant pool in JFR recording Reviewed-by: jbachorik ! src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleCheckpoint.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSet.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSetUtils.hpp Changeset: 0cc989b7 Author: Weijun Wang Date: 2021-12-14 18:39:22 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/0cc989b7d2fa3b903d71b7baab53b853455005ba 8278744: KeyStore:getAttributes() not returning unmodifiable Set Reviewed-by: mullan ! src/java.base/share/classes/sun/security/pkcs12/PKCS12KeyStore.java + test/jdk/java/security/KeyStore/PKCS12/UnmodifiableAttributes.java Changeset: f48a3e86 Author: Jie Fu Date: 2021-12-14 22:50:21 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f48a3e86d0274912160f3c415f92741eefa1cb1d 8278758: runtime/BootstrapMethod/BSMCalledTwice.java fails with release VMs after JDK-8262134 Reviewed-by: dcubed ! test/hotspot/jtreg/runtime/BootstrapMethod/BSMCalledTwice.java Changeset: 918e3397 Author: Alexander Matveev Date: 2021-12-14 23:59:11 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/918e3397858c425e9c3b82c9a918b7626603a59c 8278233: [macos] tools/jpackage tests timeout due to /usr/bin/osascript Reviewed-by: herrick, asemenyuk ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/IOUtils.java ! test/jdk/ProblemList.txt Changeset: d6b5544e Author: Maurizio Cimadamore Date: 2021-12-15 12:25:25 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/d6b5544e74d46c1ca464a1994e73ddd323ef5c2b 8278607: Misc issues in foreign API javadoc Reviewed-by: sundar ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/CLinker.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemoryAddress.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemorySegment.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/SegmentAllocator.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/VaList.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/ValueLayout.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/package-info.java Changeset: 69b5d49e Author: Erik Gahlin Date: 2021-12-15 13:24:04 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/69b5d49e4f3a6b1ea616c39815dd16530eb32887 8272064: test/jdk/jdk/jfr/api/consumer/TestHiddenMethod.java needs update for JEP 416 Reviewed-by: jbachorik ! test/jdk/jdk/jfr/api/consumer/TestHiddenMethod.java Changeset: d3408a46 Author: Vladimir Kozlov Date: 2021-12-15 21:45:45 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/d3408a46b7c8c2f8b5e41f3e286a497064a2c104 8277964: ClassCastException with no stack trace is thrown with -Xcomp in method handle invocation Reviewed-by: dlong, mchung, dholmes ! src/hotspot/share/ci/ciMethod.cpp ! src/hotspot/share/ci/ciMethod.hpp ! src/hotspot/share/classfile/vmSymbols.hpp ! src/hotspot/share/oops/method.cpp ! src/hotspot/share/oops/method.hpp ! src/hotspot/share/opto/graphKit.cpp + test/jdk/java/lang/reflect/IllegalArgumentsTest.java Changeset: e6b28e05 Author: Jesper Wilhelmsson Date: 2021-12-16 00:26:36 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e6b28e05c6f7698f230b04199932d4fc81f41a89 Merge Changeset: 0dbe4c5d Author: Calvin Cheung Date: 2021-12-16 02:32:44 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/0dbe4c5d516a5e43934cb18f3becaf2a7f90999f 8278131: runtime/cds/appcds/dynamicArchive/* tests failing in loom repo Reviewed-by: iklam, dholmes, minqi ! test/hotspot/jtreg/runtime/HiddenClasses/InstantiateHiddenClass.java ! test/hotspot/jtreg/runtime/cds/appcds/customLoader/test-classes/HelloUnload.java ! test/hotspot/jtreg/runtime/cds/appcds/customLoader/test-classes/OldClassApp.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/HelloDynamicCustom.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/LambdaCustomLoader.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/OldClassAndInf.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/PrintSharedArchiveAndExit.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/RegularHiddenClass.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/test-classes/CustomLoaderApp.java Changeset: f6fbb5a8 Author: Zhiqiang Zang Committer: Jie Fu Date: 2021-12-16 03:57:29 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f6fbb5a80cfe630e76917397d21649709485d31d 8278471: Remove unreached rules in AddNode::IdealIL Reviewed-by: jiefu, kvn ! src/hotspot/share/opto/addnode.cpp ! src/hotspot/share/opto/subnode.cpp + test/hotspot/jtreg/compiler/c2/irTests/TestSpecialCasesOf_AMinusB_Plus_CMinusD_InAddIdeal.java ! test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java Changeset: 0bddd8af Author: Dmitry Batrak Date: 2021-12-16 07:14:35 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/0bddd8af61b6c731f16b857c09de57ceefd72d06 8278050: Armenian text isn't rendered on macOS if text layout is performed Reviewed-by: prr, serb ! src/java.desktop/macosx/classes/sun/font/CFont.java ! src/java.desktop/macosx/classes/sun/font/CFontManager.java Changeset: 7edcd348 Author: Hamlin Li Date: 2021-12-16 11:35:42 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7edcd348699b47050e4c5e3181c66fd0ee72830f 8278534: Remove some unnecessary code in MethodLiveness::init_basic_blocks Reviewed-by: chagedorn ! src/hotspot/share/compiler/methodLiveness.cpp Changeset: aae56398 Author: Claes Redestad Date: 2021-12-16 11:46:02 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/aae563981c89d922c51005626b39c31e377cadc5 8278642: Refactor java.util.Formatter Reviewed-by: rriggs, naoto ! src/java.base/share/classes/java/util/Formatter.java Changeset: e0700bf1 Author: Albert Mingkun Yang Date: 2021-12-16 13:39:24 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e0700bf1d464762d0ee52c08e7e8668e9c8cfc3f 8278763: Parallel: Remove grows_up/grows_down in PSVirtualSpace Reviewed-by: tschatzl, mli ! src/hotspot/share/gc/parallel/psVirtualspace.cpp ! src/hotspot/share/gc/parallel/psVirtualspace.hpp Changeset: 271d26f1 Author: Albert Mingkun Yang Date: 2021-12-16 13:40:22 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/271d26f14149014d264e3a33cc0206f61856f7cd 8278601: Parallel: Remove redundant code in ObjectStartArray::initialize Reviewed-by: sjohanss, mli ! src/hotspot/share/gc/parallel/objectStartArray.cpp Changeset: f15a59ce Author: Albert Mingkun Yang Date: 2021-12-16 13:41:19 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f15a59ce72e7637620c2d3b5becf751809d13aed 8278756: Parallel: Drop PSOldGen::_reserved Reviewed-by: tschatzl, mli ! src/hotspot/share/gc/parallel/objectStartArray.hpp ! src/hotspot/share/gc/parallel/parallelScavengeHeap.cpp ! src/hotspot/share/gc/parallel/psOldGen.cpp ! src/hotspot/share/gc/parallel/psOldGen.hpp ! src/hotspot/share/gc/parallel/psParallelCompact.cpp ! src/hotspot/share/gc/parallel/psVirtualspace.cpp ! src/hotspot/share/gc/parallel/psVirtualspace.hpp ! src/hotspot/share/gc/parallel/psYoungGen.hpp ! src/hotspot/share/gc/parallel/vmStructs_parallelgc.hpp Changeset: 937126b1 Author: Zhengyu Gu Date: 2021-12-16 15:23:02 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/937126b1406ff0f6ac0828310e5e09003692dcd3 8278551: Shenandoah: Adopt WorkerThread::worker_id() to replace Shenandoah specific implementation Reviewed-by: rkennke ! src/hotspot/share/gc/shenandoah/shenandoahReferenceProcessor.cpp ! src/hotspot/share/gc/shenandoah/shenandoahThreadLocalData.hpp ! src/hotspot/share/gc/shenandoah/shenandoahUtils.cpp ! src/hotspot/share/gc/shenandoah/shenandoahUtils.hpp Changeset: 20db7800 Author: Sergey Tsypanov Committer: Roger Riggs Date: 2021-12-16 21:39:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/20db7800a657b311eeac504a2bbae4adbc209dbf 8277868: Use Comparable.compare() instead of surrogate code Reviewed-by: rriggs, aivanov ! src/java.base/share/classes/java/math/BigDecimal.java ! src/java.base/share/classes/java/net/CookieManager.java ! src/java.base/share/classes/java/util/Calendar.java ! src/java.base/share/classes/java/util/Date.java ! src/java.base/share/classes/java/util/UUID.java ! src/java.desktop/share/classes/java/awt/font/NumericShaper.java ! src/java.desktop/share/classes/java/awt/geom/Line2D.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicTableUI.java ! src/java.desktop/share/classes/javax/swing/text/GapContent.java ! src/java.desktop/share/classes/sun/awt/geom/Curve.java ! src/java.desktop/share/classes/sun/java2d/Spans.java ! src/java.desktop/share/classes/sun/java2d/loops/GraphicsPrimitiveMgr.java Changeset: 8f5fdd86 Author: Naoto Sato Date: 2021-12-16 21:41:38 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8f5fdd864b6f1cf4a2d9d961d8d4118960f0751e 8278587: StringTokenizer(String, String, boolean) documentation bug Reviewed-by: iris, joehw, lancea, rriggs, darcy ! src/java.base/share/classes/java/util/StringTokenizer.java Changeset: 197c9f5a Author: David Holmes Date: 2021-12-16 22:17:53 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/197c9f5ac8cc0ebfcd9f33415b0dcd382cd8d15e 8268573: Remove expired flags in JDK 19 Reviewed-by: dcubed, pchilanomate, eosterlund ! src/hotspot/share/runtime/arguments.cpp ! src/java.base/share/man/java.1 Changeset: 7ce4aa89 Author: Chris Plummer Date: 2021-12-16 23:25:07 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7ce4aa894279b76b6033bb4a1d0caa00d4213406 8276982: VM.class_hierarchy jcmd help output and man page text needs clarifications/improvements Reviewed-by: stuefe, dholmes, sspitsyn ! src/hotspot/share/services/diagnosticCommand.cpp ! src/jdk.jcmd/share/man/jcmd.1 Changeset: e82310f3 Author: Stuart Marks Date: 2021-12-16 01:27:07 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e82310f3605b37519129ea34b2a6f99ee3ccc63a 8278575: update jcmd GC.finalizer_info to list finalization status Co-authored-by: David Holmes Reviewed-by: dholmes, kbarrett ! src/hotspot/share/services/diagnosticCommand.cpp Changeset: aec1b039 Author: Thomas Schatzl Date: 2021-12-16 12:29:57 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/aec1b039b35b73db17c943cdd86949a92e64fcb6 8278389: SuspendibleThreadSet::_suspend_all should be volatile/atomic Reviewed-by: ayang, mli ! src/hotspot/share/gc/shared/suspendibleThreadSet.cpp ! src/hotspot/share/gc/shared/suspendibleThreadSet.hpp Changeset: be6b90d9 Author: Stuart Marks Date: 2021-12-16 17:35:32 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/be6b90d90b54883ff17f9f5ac0f271de37df7e2a 8278574: update --help-extra message to include default value of --finalization option Reviewed-by: sundar, alanb, lancea, mchung ! src/java.base/share/classes/sun/launcher/resources/launcher.properties Changeset: 634afe8c Author: Jesper Wilhelmsson Date: 2021-12-17 01:08:22 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/634afe8c5c0855eafb1639f54ecc8e9c9e568814 Merge ! src/hotspot/share/services/diagnosticCommand.cpp ! src/hotspot/share/services/diagnosticCommand.cpp Changeset: 8c73ec15 Author: Hamlin Li Date: 2021-12-17 03:29:28 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8c73ec155dd9324367d2a8e5f2e49da11683f8c8 8278891: G1: Call reset in G1RegionMarkStatsCache constructor Reviewed-by: tschatzl, ayang ! src/hotspot/share/gc/g1/g1FullGCMarker.cpp ! src/hotspot/share/gc/g1/g1RegionMarkStatsCache.cpp Changeset: 247ea71d Author: Dmitry Chuyko Date: 2021-12-17 09:19:00 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/247ea71d24a251d29d9a5179e5b773df850e7261 8278826: Print error if Shenandoah flags are empty (instead of crashing) Reviewed-by: rkennke, mli ! src/hotspot/share/gc/shenandoah/mode/shenandoahIUMode.cpp ! src/hotspot/share/gc/shenandoah/mode/shenandoahPassiveMode.cpp ! src/hotspot/share/gc/shenandoah/mode/shenandoahSATBMode.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Changeset: 9ff93240 Author: duke Date: 2021-12-17 11:00:39 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9ff932402b4284022bd38e5e723a79722e60e428 Automatic merge of jdk:master into master Changeset: 23a049ae Author: duke Date: 2021-12-17 11:00:55 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/23a049aebd614ba701fc5945f184758120ea2172 Automatic merge of master into foreign-memaccess+abi ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/compile.hpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/runtime/globals.hpp ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemoryAddress.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemorySegment.java ! test/jdk/ProblemList.txt ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/compile.hpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/runtime/globals.hpp ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemoryAddress.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemorySegment.java ! test/jdk/ProblemList.txt From duke at openjdk.java.net Fri Dec 17 11:15:43 2021 From: duke at openjdk.java.net (duke) Date: Fri, 17 Dec 2021 11:15:43 GMT Subject: git: openjdk/panama-foreign: master: 78 new changesets Message-ID: Changeset: 3e0b083f Author: Hamlin Li Date: 2021-12-10 14:51:27 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3e0b083f2013f07b090af92a78c9a5f46f9fe427 8278533: Remove some unused methods in c1_Instruction and c1_ValueMap Reviewed-by: chagedorn ! src/hotspot/share/c1/c1_Instruction.cpp ! src/hotspot/share/c1/c1_Instruction.hpp ! src/hotspot/share/c1/c1_ValueMap.hpp Changeset: 8eb453ba Author: Roman Kennke Date: 2021-12-10 16:24:16 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8eb453baebe377697286f7eb32280ca9f1fd7775 8277072: ObjectStreamClass caches keep ClassLoaders alive Reviewed-by: rriggs, plevart + src/java.base/share/classes/java/io/ClassCache.java ! src/java.base/share/classes/java/io/ObjectStreamClass.java + test/jdk/java/io/ObjectStreamClass/ObjectStreamClassCaching.java + test/jdk/java/io/ObjectStreamClass/TestOSCClassLoaderLeak.java Changeset: 4f594e6a Author: Dan Lutker Committer: Paul Hohensee Date: 2021-12-10 17:52:54 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/4f594e6a28ad85d46d3252fb960f1c116f414899 8278381: [GCC 11] Address::make_raw() does not initialize rspec Reviewed-by: phh, xliu ! src/hotspot/cpu/arm/assembler_arm_32.cpp ! src/hotspot/cpu/x86/assembler_x86.cpp Changeset: afd065b3 Author: Evgeny Astigeevich Committer: Paul Hohensee Date: 2021-12-10 18:27:36 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/afd065b3684f7b87563961c2b7a6ee6a354dbdf9 8278415: [TESTBUG] vmTestbase/nsk/stress/stack/stack018.java fails with "java.lang.Error: TEST_RFE" Reviewed-by: phh ! test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack018.java Changeset: ed5d53ae Author: Jonathan Gibbons Date: 2021-12-10 02:50:37 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ed5d53ae0eb0b12de11fb3d79ae0371c093ce434 8273179: Update nroff pages in JDK 18 before RC Reviewed-by: dholmes ! src/java.base/share/man/java.1 ! src/java.base/share/man/keytool.1 ! src/java.rmi/share/man/rmiregistry.1 ! src/java.scripting/share/man/jrunscript.1 ! src/jdk.compiler/share/man/javac.1 ! src/jdk.compiler/share/man/serialver.1 ! src/jdk.hotspot.agent/share/man/jhsdb.1 ! src/jdk.httpserver/share/man/jwebserver.1 ! src/jdk.jartool/share/man/jar.1 ! src/jdk.jartool/share/man/jarsigner.1 ! src/jdk.javadoc/share/man/javadoc.1 ! src/jdk.jcmd/share/man/jcmd.1 ! src/jdk.jcmd/share/man/jinfo.1 ! src/jdk.jcmd/share/man/jmap.1 ! src/jdk.jcmd/share/man/jps.1 ! src/jdk.jcmd/share/man/jstack.1 ! src/jdk.jcmd/share/man/jstat.1 ! src/jdk.jconsole/share/man/jconsole.1 ! src/jdk.jdeps/share/man/javap.1 ! src/jdk.jdeps/share/man/jdeprscan.1 ! src/jdk.jdeps/share/man/jdeps.1 ! src/jdk.jdi/share/man/jdb.1 ! src/jdk.jfr/share/man/jfr.1 ! src/jdk.jlink/share/man/jlink.1 ! src/jdk.jlink/share/man/jmod.1 ! src/jdk.jpackage/share/man/jpackage.1 ! src/jdk.jshell/share/man/jshell.1 ! src/jdk.jstatd/share/man/jstatd.1 Changeset: 3df8dc49 Author: Jonathan Gibbons Date: 2021-12-10 05:02:28 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3df8dc494d2d0e6d1003094c9e129be2cca10a3c 8278538: Test langtools/jdk/javadoc/tool/CheckManPageOptions.java fails after the manpage was updated Reviewed-by: dholmes ! test/langtools/jdk/javadoc/tool/CheckManPageOptions.java Changeset: 0602f4c4 Author: Hao Sun Committer: Aleksey Shipilev Date: 2021-12-10 15:53:27 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/0602f4c48b0ffe53a6081551988b417d7536efa0 8277621: ARM32: multiple fastdebug failures with "bad AD file" after JDK-8276162 Reviewed-by: njian, dlong, shade ! src/hotspot/cpu/arm/arm.ad Changeset: 61736f81 Author: Jesper Wilhelmsson Date: 2021-12-10 18:42:51 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/61736f81fb4a20375c83d59e2b37a00aafb11107 Merge Changeset: 81c56c70 Author: Phil Race Date: 2021-12-10 21:02:28 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/81c56c700a47c7f1b7855052de17eb88fac84674 8278456: Define jtreg jdk_desktop test group time-based sub-tasks for use by headful testing. Reviewed-by: serb, aivanov, psadhukhan ! test/jdk/TEST.groups Changeset: 6eb6ec05 Author: Dan Lutker Committer: Paul Hohensee Date: 2021-12-10 23:49:41 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/6eb6ec05fd4f80e11d0b052b58190bc8b53f4b11 8278525: Additional -Wnonnull errors happen with GCC 11 Reviewed-by: phh, dlong ! src/hotspot/cpu/x86/assembler_x86.cpp Changeset: db68a0ce Author: Andrew Leonard Date: 2021-12-11 15:27:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/db68a0ce1ce152345320e70acb7e9842d2f1ece4 8276766: Enable jar and jmod to produce deterministic timestamped content Reviewed-by: ihse, lancea, alanb, jgneff ! src/jdk.jartool/share/classes/sun/tools/jar/GNUStyleOptions.java ! src/jdk.jartool/share/classes/sun/tools/jar/Main.java ! src/jdk.jartool/share/classes/sun/tools/jar/resources/jar.properties ! src/jdk.jlink/share/classes/jdk/tools/jmod/JmodOutputStream.java ! src/jdk.jlink/share/classes/jdk/tools/jmod/JmodTask.java ! src/jdk.jlink/share/classes/jdk/tools/jmod/resources/jmod.properties + test/jdk/tools/jar/ReproducibleJar.java ! test/jdk/tools/jmod/JmodTest.java Changeset: 7c2c5858 Author: Sergey Bylokhov Date: 2021-12-12 21:47:03 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7c2c58587d4eda5523331eae45e7d897252dc097 8276819: javax/print/PrintServiceLookup/FlushCustomClassLoader.java fails to free Reviewed-by: psadhukhan, aivanov ! test/jdk/javax/print/PrintServiceLookup/FlushCustomClassLoader.java Changeset: 8b5ff4bd Author: Matthias Baesken Date: 2021-12-13 07:48:20 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8b5ff4bdffc8f32317d67b00c085071d6c772b30 8278344: sun/security/pkcs12/KeytoolOpensslInteropTest.java test fails because of different openssl output Reviewed-by: mdoerr, goetz, stuefe ! test/jdk/sun/security/pkcs12/KeytoolOpensslInteropTest.java Changeset: ccdb9f1b Author: Albert Mingkun Yang Date: 2021-12-13 09:50:30 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ccdb9f1b160a0f49ee86c7a2714d2381d68419cc 8278482: G1: Improve HeapRegion::block_is_obj Reviewed-by: sjohanss, tschatzl, mli ! src/hotspot/share/gc/g1/heapRegion.cpp ! src/hotspot/share/gc/g1/heapRegion.inline.hpp Changeset: 23fd9f15 Author: Christian Stein Committer: Lance Andersen Date: 2021-12-13 12:00:47 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/23fd9f15da40cef00231380766158bc0fa537c38 8271079: JavaFileObject#toUri and multi-release jars Reviewed-by: jjg, lancea, alanb ! src/jdk.compiler/share/classes/com/sun/tools/javac/file/PathFileObject.java ! src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipFileSystem.java ! src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipPath.java ! test/jdk/jdk/nio/zipfs/ZipFSTester.java ! test/jdk/jdk/nio/zipfs/jarfs/JFSTester.java + test/langtools/tools/javac/T8271079.java Changeset: 14f7385a Author: Harold Seigel Date: 2021-12-13 13:35:37 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/14f7385a72972e1f15b3103cc75a60c5733f6d98 8277481: Obsolete seldom used CDS flags Reviewed-by: iklam, ccheung, dholmes ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/utilities/globalDefinitions.cpp ! src/hotspot/share/utilities/globalDefinitions.hpp ! src/java.base/share/classes/jdk/internal/misc/CDS.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/VM.java ! src/jdk.hotspot.agent/share/native/libsaproc/ps_core_common.c ! test/hotspot/jtreg/runtime/cds/SharedArchiveFile.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/DynamicArchiveTestBase.java - test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/DynamicFlag.java ! test/hotspot/jtreg/runtime/cds/appcds/jcmd/JCmdTestDumpBase.java ! test/hotspot/jtreg/runtime/cds/appcds/jcmd/JCmdTestDynamicDump.java ! test/hotspot/jtreg/runtime/cds/appcds/jcmd/JCmdTestStaticDump.java Changeset: 15996e40 Author: Harold Seigel Date: 2021-12-13 13:40:54 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/15996e407563eda844266f1cbcdc20be74b4b4e4 8276241: JVM does not flag constant class entries ending in '/' Reviewed-by: dholmes, lfoltan ! src/hotspot/share/classfile/classFileParser.cpp + test/hotspot/jtreg/runtime/classFileParserBug/TrailingSlashTest.java Changeset: ca8c58c7 Author: merykitty Committer: Paul Sandoz Date: 2021-12-13 16:34:37 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ca8c58c731959e3a1b8fe02255ed44fc1d14d565 8259610: VectorReshapeTests are not effective due to failing to intrinsify "VectorSupport.convert" Reviewed-by: psandoz, chagedorn ! test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java + test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorCastAVX1.java + test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorCastAVX2.java + test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorCastAVX512.java + test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorCastAVX512DQ.java + test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorCastNeon.java + test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorCastSVE.java + test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorReinterpret.java + test/hotspot/jtreg/compiler/vectorapi/reshape/tests/TestVectorCast.java + test/hotspot/jtreg/compiler/vectorapi/reshape/tests/TestVectorDoubleExpandShrink.java + test/hotspot/jtreg/compiler/vectorapi/reshape/tests/TestVectorExpandShrink.java + test/hotspot/jtreg/compiler/vectorapi/reshape/tests/TestVectorRebracket.java + test/hotspot/jtreg/compiler/vectorapi/reshape/utils/TestCastMethods.java + test/hotspot/jtreg/compiler/vectorapi/reshape/utils/UnsafeUtils.java + test/hotspot/jtreg/compiler/vectorapi/reshape/utils/VectorReshapeHelper.java + test/hotspot/jtreg/compiler/vectorapi/reshape/utils/VectorSpeciesPair.java Changeset: db502d30 Author: Chris Plummer Date: 2021-12-13 19:02:12 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/db502d30a42847f69273f48378f230d9d55eb8d6 8269556: sun/tools/jhsdb/JShellHeapDumpTest.java fails with RuntimeException 'JShellToolProvider' missing from stdout/stderr Reviewed-by: kevinw, sspitsyn, amenkov ! test/jdk/sun/tools/jhsdb/JShellHeapDumpTest.java Changeset: bdc784c0 Author: Daniel D. Daugherty Date: 2021-12-13 20:36:40 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/bdc784c0cb02d76c6d3a1608a89f4b64f86253eb 8278630: ProblemList compiler/vectorapi/reshape/TestVectorCastAVX512.java on X64 Reviewed-by: psandoz ! test/hotspot/jtreg/ProblemList.txt Changeset: 624f3094 Author: David Holmes Date: 2021-12-13 21:36:24 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/624f3094b89976a0be0a1d1d4ce304f4be38fb9e 8278275: Initial nroff manpage generation for JDK 19 Reviewed-by: erikj, jjg, iris ! src/java.base/share/man/java.1 ! src/java.base/share/man/keytool.1 ! src/java.rmi/share/man/rmiregistry.1 ! src/java.scripting/share/man/jrunscript.1 ! src/jdk.compiler/share/man/javac.1 ! src/jdk.compiler/share/man/serialver.1 ! src/jdk.hotspot.agent/share/man/jhsdb.1 ! src/jdk.httpserver/share/man/jwebserver.1 ! src/jdk.jartool/share/man/jar.1 ! src/jdk.jartool/share/man/jarsigner.1 ! src/jdk.javadoc/share/man/javadoc.1 ! src/jdk.jcmd/share/man/jcmd.1 ! src/jdk.jcmd/share/man/jinfo.1 ! src/jdk.jcmd/share/man/jmap.1 ! src/jdk.jcmd/share/man/jps.1 ! src/jdk.jcmd/share/man/jstack.1 ! src/jdk.jcmd/share/man/jstat.1 ! src/jdk.jconsole/share/man/jconsole.1 ! src/jdk.jdeps/share/man/javap.1 ! src/jdk.jdeps/share/man/jdeprscan.1 ! src/jdk.jdeps/share/man/jdeps.1 ! src/jdk.jdi/share/man/jdb.1 ! src/jdk.jfr/share/man/jfr.1 ! src/jdk.jlink/share/man/jlink.1 ! src/jdk.jlink/share/man/jmod.1 ! src/jdk.jpackage/share/man/jpackage.1 ! src/jdk.jshell/share/man/jshell.1 ! src/jdk.jstatd/share/man/jstatd.1 Changeset: 94127f43 Author: Alexander Zuev Date: 2021-12-10 20:27:07 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/94127f43a4a28a89094fa93cd1da49763134f9db 8277299: STACK_OVERFLOW in Java_sun_awt_shell_Win32ShellFolder2_getIconBits Reviewed-by: aivanov ! src/java.desktop/windows/native/libawt/windows/ShellFolder2.cpp + test/jdk/javax/swing/JFileChooser/FileSystemView/ShellFolderStackOverflow.java Changeset: 9b99cbe7 Author: Daniel D. Daugherty Date: 2021-12-11 15:53:31 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9b99cbe7abf56d3ad5231a68b6506e35b89133c9 8278580: ProblemList javax/swing/JTree/4908142/bug4908142.java on macosx-x64 Reviewed-by: alanb ! test/jdk/ProblemList.txt Changeset: 9a1bbaf8 Author: Scott Gibbons Committer: Vladimir Kozlov Date: 2021-12-12 16:08:35 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9a1bbaf8db0e869ab76be8ab1bd0ddeb23693e7e 8273108: RunThese24H crashes with SEGV in markWord::displaced_mark_helper() after JDK-8268276 8272809: JFR thread sampler SI_KERNEL SEGV in metaspace::VirtualSpaceList::contains Reviewed-by: sviswanathan, kvn ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp ! test/hotspot/jtreg/compiler/intrinsics/base64/TestBase64.java Changeset: c93b24d8 Author: David Holmes Date: 2021-12-13 21:37:51 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/c93b24d85289167639e9ec4b79bd85403687161b 8132785: java/lang/management/ThreadMXBean/ThreadLists.java fails intermittently Reviewed-by: alanb, kevinw, dcubed, sspitsyn ! test/jdk/ProblemList.txt ! test/jdk/java/lang/management/ThreadMXBean/ThreadLists.java Changeset: 8401a059 Author: Jesper Wilhelmsson Date: 2021-12-14 02:15:15 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8401a059bd01b32e3532f806d3d8b60e851c468a Merge Changeset: 3f9638d1 Author: Thomas Stuefe Date: 2021-12-14 05:45:56 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3f9638d124076019f49eb77bc3ff8b466e4beb53 8278585: Drop unused code from OSThread Reviewed-by: dholmes, tschatzl ! src/hotspot/os/aix/osThread_aix.hpp ! src/hotspot/os/aix/os_aix.cpp ! src/hotspot/os/bsd/osThread_bsd.hpp ! src/hotspot/os/bsd/os_bsd.cpp ! src/hotspot/os/linux/osThread_linux.hpp ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/os/windows/osThread_windows.hpp ! src/hotspot/os/windows/os_windows.cpp ! src/hotspot/share/jfr/writers/jfrJavaEventWriter.cpp ! src/hotspot/share/runtime/osThread.cpp ! src/hotspot/share/runtime/osThread.hpp ! src/hotspot/share/runtime/thread.cpp Changeset: 7761a3e8 Author: Albert Mingkun Yang Date: 2021-12-14 17:11:11 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7761a3e883bcd18b0b235248c37f9228fd37b927 8278761: Parallel: Remove unused PSOldPromotionLAB constructor Reviewed-by: tschatzl ! src/hotspot/share/gc/parallel/psPromotionLAB.hpp Changeset: 3f91948c Author: Coleen Phillimore Date: 2021-12-14 17:45:35 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3f91948c592d6968d2de6c59a5d93866f439c0e8 8278791: Rename ClassLoaderData::holder_phantom Reviewed-by: stefank ! src/hotspot/share/cds/metaspaceShared.cpp ! src/hotspot/share/classfile/classLoaderData.cpp ! src/hotspot/share/classfile/classLoaderData.hpp ! src/hotspot/share/classfile/classLoaderDataGraph.cpp ! src/hotspot/share/oops/klass.inline.hpp Changeset: a9c1acbb Author: Sergey Bylokhov Date: 2021-12-14 18:03:00 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/a9c1acbb8aec46e4a488b7c77bb6318af87747f6 8275843: Random crashes while the UI code is executed Reviewed-by: azvegint ! src/java.desktop/unix/classes/sun/java2d/xr/XRCompositeManager.java ! src/java.desktop/unix/classes/sun/java2d/xr/XRGraphicsConfig.java ! src/java.desktop/unix/classes/sun/java2d/xr/XRSurfaceData.java ! test/jdk/java/awt/ColorClass/AlphaColorTest.java ! test/jdk/java/awt/ColorClass/XRenderTranslucentColorDrawTest.java + test/jdk/java/awt/image/ColorModel/DrawCustomColorModel.java Changeset: de65230d Author: Zhengyu Gu Date: 2021-12-14 18:39:28 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/de65230d7183eb2d534afae5891eaa27074b8a7d 8278767: Shenandoah: Remove unused ShenandoahRootScanner Reviewed-by: rkennke ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp Changeset: a1dfe572 Author: Vladimir Kozlov Date: 2021-12-14 19:24:13 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/a1dfe57249db15c0c05d33a0014ac914a7093089 8276455: C2: iterative EA Reviewed-by: iveresov, neliasso, roland ! src/hotspot/share/opto/c2compiler.cpp ! src/hotspot/share/opto/c2compiler.hpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/compile.hpp ! src/hotspot/share/opto/escape.cpp ! src/hotspot/share/opto/escape.hpp + test/hotspot/jtreg/compiler/c2/irTests/TestIterativeEA.java + test/hotspot/jtreg/compiler/escapeAnalysis/TestIterativeEA.java + test/micro/org/openjdk/bench/vm/compiler/IterativeEA.java + test/micro/org/openjdk/bench/vm/compiler/PointerBenchmarkFlat.java Changeset: 03f647f4 Author: Roger Riggs Date: 2021-12-14 19:54:54 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/03f647f4bb640bf5df1c461eec9860c7ac3eb076 8278028: [test-library] Warnings cleanup of the test library Reviewed-by: dfuchs, mchung, naoto, lancea, lmesnik ! test/lib-test/jdk/test/lib/AssertsTest.java ! test/lib-test/jdk/test/lib/TestPlatformIsTieredSupported.java ! test/lib-test/jdk/test/lib/format/ArrayDiffTest.java ! test/lib-test/jdk/test/whitebox/OldWhiteBox.java ! test/lib-test/jdk/test/whitebox/vm_flags/VmFlagTest.java ! test/lib/RedefineClassHelper.java ! test/lib/jdk/test/lib/NetworkConfiguration.java ! test/lib/jdk/test/lib/compiler/InMemoryJavaCompiler.java ! test/lib/jdk/test/lib/format/ArrayCodec.java ! test/lib/jdk/test/lib/format/ArrayDiff.java ! test/lib/jdk/test/lib/hexdump/ASN1Formatter.java ! test/lib/jdk/test/lib/hexdump/StreamDump.java ! test/lib/jdk/test/lib/process/Proc.java ! test/lib/jdk/test/lib/process/ProcessTools.java Changeset: 98a8d446 Author: Harold Seigel Date: 2021-12-14 20:35:49 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/98a8d446b69fd84355731a8a3192cbd42671abb8 8278638: Remove FLAG_IS_CMDLINE(UseSharedSpaces) Reviewed-by: dcubed, coleenp ! src/hotspot/share/runtime/arguments.cpp Changeset: 2def7e91 Author: Jie Fu Date: 2021-12-14 22:49:04 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/2def7e913207af788e582ed5bde21b28883183de 8278584: compiler/vectorapi/VectorMaskLoadStoreTest.java failed with "Error: ShouldNotReachHere()" Reviewed-by: kvn, psandoz ! src/hotspot/cpu/x86/x86.ad ! test/hotspot/jtreg/compiler/vectorapi/VectorMaskLoadStoreTest.java Changeset: 068a4509 Author: Liam Miller-Cushon Date: 2021-12-15 00:26:17 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/068a450954530d9a469db05d7cf2e7dcf1eddc8a 8278825: Unused variable for diagnostic in Resolve Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java Changeset: 54c9a996 Author: Chris Plummer Date: 2021-12-15 01:25:53 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/54c9a99663c47b0477392a606637986bc5c87464 8278643: CoreUtils.getCoreFileLocation() should print out the size of the core file found Reviewed-by: amenkov, lmesnik, sspitsyn ! test/lib/jdk/test/lib/util/CoreUtils.java Changeset: 46f99aca Author: Chris Plummer Date: 2021-12-15 01:29:50 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/46f99aca94ed878a94878eacb113fe2813050ad7 8244765: Undo exclusiveAccess.dirs changes for JDK-8220295 and see if there are still any testing issues Reviewed-by: amenkov, sspitsyn ! test/jdk/TEST.ROOT Changeset: c442587f Author: Fei Gao Committer: Pengfei Li Date: 2021-12-15 02:26:40 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/c442587f1e72a614302cd76c20e13f1cb1703641 8277619: AArch64: Incorrect parameter type in Advanced SIMD Copy assembler functions Reviewed-by: aph, pli ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/aarch64_neon.ad ! src/hotspot/cpu/aarch64/aarch64_neon_ad.m4 ! src/hotspot/cpu/aarch64/assembler_aarch64.hpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! test/hotspot/gtest/aarch64/aarch64-asmtest.py ! test/hotspot/gtest/aarch64/asmtest.out.h Changeset: 758fe9be Author: Chris Plummer Date: 2021-12-15 03:11:27 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/758fe9bed3daf9a31d15291ef9787dc5a914451f 8273904: debug agent ArrayTypeImp::newInstance() fails to send reply packet if there is an error Reviewed-by: sspitsyn, amenkov ! src/jdk.jdwp.agent/share/native/libjdwp/ArrayTypeImpl.c Changeset: 7adf7f33 Author: Per Liden Date: 2021-12-15 10:09:02 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7adf7f3353ab81c5af3f2fc4c0fc9e4cf8905e32 8278351: Add function to retrieve worker_id from any context Reviewed-by: eosterlund, kbarrett, ayang ! src/hotspot/share/gc/shared/referenceProcessor.cpp ! src/hotspot/share/gc/shared/workerThread.cpp ! src/hotspot/share/gc/shared/workerThread.hpp ! src/hotspot/share/gc/shenandoah/shenandoahWorkGroup.cpp ! src/hotspot/share/gc/shenandoah/shenandoahWorkGroup.hpp Changeset: 1e3ae3be Author: Coleen Phillimore Date: 2021-12-15 13:41:59 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/1e3ae3be02e1fa76c632ef289dd1887c7fa369ec 8202579: Revisit VM_Version and VM_Version_ext for overlap and consolidation Reviewed-by: dholmes, hseigel ! src/hotspot/cpu/aarch64/vm_version_aarch64.cpp ! src/hotspot/cpu/aarch64/vm_version_aarch64.hpp - src/hotspot/cpu/aarch64/vm_version_ext_aarch64.cpp - src/hotspot/cpu/aarch64/vm_version_ext_aarch64.hpp ! src/hotspot/cpu/arm/vm_version_arm.hpp ! src/hotspot/cpu/arm/vm_version_arm_32.cpp - src/hotspot/cpu/arm/vm_version_ext_arm.cpp - src/hotspot/cpu/arm/vm_version_ext_arm.hpp - src/hotspot/cpu/ppc/vm_version_ext_ppc.cpp - src/hotspot/cpu/ppc/vm_version_ext_ppc.hpp ! src/hotspot/cpu/ppc/vm_version_ppc.cpp ! src/hotspot/cpu/ppc/vm_version_ppc.hpp - src/hotspot/cpu/s390/vm_version_ext_s390.cpp - src/hotspot/cpu/s390/vm_version_ext_s390.hpp ! src/hotspot/cpu/s390/vm_version_s390.cpp ! src/hotspot/cpu/s390/vm_version_s390.hpp ! src/hotspot/cpu/x86/rdtsc_x86.cpp - src/hotspot/cpu/x86/vm_version_ext_x86.cpp - src/hotspot/cpu/x86/vm_version_ext_x86.hpp ! src/hotspot/cpu/x86/vm_version_x86.cpp ! src/hotspot/cpu/x86/vm_version_x86.hpp - src/hotspot/cpu/zero/vm_version_ext_zero.cpp - src/hotspot/cpu/zero/vm_version_ext_zero.hpp ! src/hotspot/cpu/zero/vm_version_zero.cpp ! src/hotspot/cpu/zero/vm_version_zero.hpp ! src/hotspot/os/aix/os_perf_aix.cpp ! src/hotspot/os/bsd/os_perf_bsd.cpp ! src/hotspot/os/linux/os_perf_linux.cpp ! src/hotspot/os/windows/os_perf_windows.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/prims/jvmtiExport.cpp ! src/hotspot/share/runtime/abstract_vm_version.cpp ! src/hotspot/share/runtime/abstract_vm_version.hpp Changeset: 4851ad84 Author: Albert Mingkun Yang Date: 2021-12-15 15:02:57 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/4851ad840a8c3b93f978b829f50a27a2f629fa82 8278548: G1: Remove unnecessary check in forward_to_block_containing_addr Reviewed-by: tschatzl, mli, sjohanss ! src/hotspot/share/gc/g1/g1BlockOffsetTable.inline.hpp Changeset: fcebe65c Author: Albert Mingkun Yang Date: 2021-12-15 15:04:11 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/fcebe65ce9dc177d9fa16db606e3c8c33b2f771a 8278842: Parallel: Remove unused VerifyObjectStartArrayClosure::_old_gen Reviewed-by: tschatzl ! src/hotspot/share/gc/parallel/psOldGen.cpp Changeset: bcb79fd0 Author: Evgeny Astigeevich Committer: Paul Hohensee Date: 2021-12-15 16:57:30 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/bcb79fd012c9c298e58c20c59e564e9d2c16b970 8278241: Implement JVM SpinPause on linux-aarch64 Reviewed-by: aph, phh ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/aarch64/stubRoutines_aarch64.cpp ! src/hotspot/cpu/aarch64/stubRoutines_aarch64.hpp ! src/hotspot/os_cpu/linux_aarch64/os_linux_aarch64.cpp + test/hotspot/jtreg/runtime/Thread/TestSpinPause.java Changeset: 1f1db838 Author: Weijun Wang Date: 2021-12-15 17:00:55 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/1f1db838ab7d427170d59a8b55fdb45c4d80c359 8278186: org.jcp.xml.dsig.internal.dom.Utils.parseIdFromSameDocumentURI throws StringIndexOutOfBoundsException when calling substring method Reviewed-by: mullan ! src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMURIDereferencer.java ! src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/Utils.java + test/jdk/javax/xml/crypto/dsig/BadXPointer.java ! test/lib/jdk/test/lib/security/XMLUtils.java Changeset: 7517c85d Author: Chris Plummer Date: 2021-12-15 17:08:44 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7517c85da3236e5274580645d4c3cdecb1db25c5 8269838: BasicTypeDataBase.findDynamicTypeForAddress(addr, basetype) can be simplified Reviewed-by: kevinw, sspitsyn ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/types/basic/BasicTypeDataBase.java Changeset: 04dbdd36 Author: Andrey Turbanov Committer: Serguei Spitsyn Date: 2021-12-15 19:28:58 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/04dbdd36dd04bf40737cb8c2f13d5b75303d2b1a 8274898: Cleanup usages of StringBuffer in jdk tools modules Reviewed-by: sspitsyn, lmesnik ! src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Main.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/Log.java ! src/jdk.jshell/share/classes/jdk/internal/jshell/tool/Feedback.java Changeset: 4ba980ba Author: Ioi Lam Date: 2021-12-15 20:06:56 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/4ba980ba439f94a6b5015e64382a6c308476d63f 8278020: ~13% variation in Renaissance-Scrabble Reviewed-by: dholmes, stuefe, kvn ! src/hotspot/share/oops/klass.hpp Changeset: 32139c1a Author: Dean Long Date: 2021-12-14 03:16:17 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/32139c1a8aae51c0869f41be57580ff4463913d2 8262134: compiler/uncommontrap/TestDeoptOOM.java failed with "guarantee(false) failed: wrong number of expression stack elements during deopt" Reviewed-by: kvn, iveresov ! src/hotspot/share/c1/c1_IR.cpp ! src/hotspot/share/c1/c1_IR.hpp ! src/hotspot/share/c1/c1_LIRAssembler.cpp ! src/hotspot/share/runtime/deoptimization.cpp ! test/hotspot/jtreg/runtime/BootstrapMethod/BSMCalledTwice.java Changeset: 475ec8e6 Author: Markus Gr?nlund Date: 2021-12-14 13:00:39 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/475ec8e6c5abc3431344d69bd46395e8c4b46e4c 8277919: OldObjectSample event causing bloat in the class constant pool in JFR recording Reviewed-by: jbachorik ! src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleCheckpoint.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSet.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSetUtils.hpp Changeset: 0cc989b7 Author: Weijun Wang Date: 2021-12-14 18:39:22 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/0cc989b7d2fa3b903d71b7baab53b853455005ba 8278744: KeyStore:getAttributes() not returning unmodifiable Set Reviewed-by: mullan ! src/java.base/share/classes/sun/security/pkcs12/PKCS12KeyStore.java + test/jdk/java/security/KeyStore/PKCS12/UnmodifiableAttributes.java Changeset: f48a3e86 Author: Jie Fu Date: 2021-12-14 22:50:21 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f48a3e86d0274912160f3c415f92741eefa1cb1d 8278758: runtime/BootstrapMethod/BSMCalledTwice.java fails with release VMs after JDK-8262134 Reviewed-by: dcubed ! test/hotspot/jtreg/runtime/BootstrapMethod/BSMCalledTwice.java Changeset: 918e3397 Author: Alexander Matveev Date: 2021-12-14 23:59:11 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/918e3397858c425e9c3b82c9a918b7626603a59c 8278233: [macos] tools/jpackage tests timeout due to /usr/bin/osascript Reviewed-by: herrick, asemenyuk ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/IOUtils.java ! test/jdk/ProblemList.txt Changeset: d6b5544e Author: Maurizio Cimadamore Date: 2021-12-15 12:25:25 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/d6b5544e74d46c1ca464a1994e73ddd323ef5c2b 8278607: Misc issues in foreign API javadoc Reviewed-by: sundar ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/CLinker.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemoryAddress.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemorySegment.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/SegmentAllocator.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/VaList.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/ValueLayout.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/package-info.java Changeset: 69b5d49e Author: Erik Gahlin Date: 2021-12-15 13:24:04 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/69b5d49e4f3a6b1ea616c39815dd16530eb32887 8272064: test/jdk/jdk/jfr/api/consumer/TestHiddenMethod.java needs update for JEP 416 Reviewed-by: jbachorik ! test/jdk/jdk/jfr/api/consumer/TestHiddenMethod.java Changeset: d3408a46 Author: Vladimir Kozlov Date: 2021-12-15 21:45:45 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/d3408a46b7c8c2f8b5e41f3e286a497064a2c104 8277964: ClassCastException with no stack trace is thrown with -Xcomp in method handle invocation Reviewed-by: dlong, mchung, dholmes ! src/hotspot/share/ci/ciMethod.cpp ! src/hotspot/share/ci/ciMethod.hpp ! src/hotspot/share/classfile/vmSymbols.hpp ! src/hotspot/share/oops/method.cpp ! src/hotspot/share/oops/method.hpp ! src/hotspot/share/opto/graphKit.cpp + test/jdk/java/lang/reflect/IllegalArgumentsTest.java Changeset: e6b28e05 Author: Jesper Wilhelmsson Date: 2021-12-16 00:26:36 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e6b28e05c6f7698f230b04199932d4fc81f41a89 Merge Changeset: 0dbe4c5d Author: Calvin Cheung Date: 2021-12-16 02:32:44 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/0dbe4c5d516a5e43934cb18f3becaf2a7f90999f 8278131: runtime/cds/appcds/dynamicArchive/* tests failing in loom repo Reviewed-by: iklam, dholmes, minqi ! test/hotspot/jtreg/runtime/HiddenClasses/InstantiateHiddenClass.java ! test/hotspot/jtreg/runtime/cds/appcds/customLoader/test-classes/HelloUnload.java ! test/hotspot/jtreg/runtime/cds/appcds/customLoader/test-classes/OldClassApp.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/HelloDynamicCustom.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/LambdaCustomLoader.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/OldClassAndInf.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/PrintSharedArchiveAndExit.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/RegularHiddenClass.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/test-classes/CustomLoaderApp.java Changeset: f6fbb5a8 Author: Zhiqiang Zang Committer: Jie Fu Date: 2021-12-16 03:57:29 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f6fbb5a80cfe630e76917397d21649709485d31d 8278471: Remove unreached rules in AddNode::IdealIL Reviewed-by: jiefu, kvn ! src/hotspot/share/opto/addnode.cpp ! src/hotspot/share/opto/subnode.cpp + test/hotspot/jtreg/compiler/c2/irTests/TestSpecialCasesOf_AMinusB_Plus_CMinusD_InAddIdeal.java ! test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java Changeset: 0bddd8af Author: Dmitry Batrak Date: 2021-12-16 07:14:35 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/0bddd8af61b6c731f16b857c09de57ceefd72d06 8278050: Armenian text isn't rendered on macOS if text layout is performed Reviewed-by: prr, serb ! src/java.desktop/macosx/classes/sun/font/CFont.java ! src/java.desktop/macosx/classes/sun/font/CFontManager.java Changeset: 7edcd348 Author: Hamlin Li Date: 2021-12-16 11:35:42 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7edcd348699b47050e4c5e3181c66fd0ee72830f 8278534: Remove some unnecessary code in MethodLiveness::init_basic_blocks Reviewed-by: chagedorn ! src/hotspot/share/compiler/methodLiveness.cpp Changeset: aae56398 Author: Claes Redestad Date: 2021-12-16 11:46:02 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/aae563981c89d922c51005626b39c31e377cadc5 8278642: Refactor java.util.Formatter Reviewed-by: rriggs, naoto ! src/java.base/share/classes/java/util/Formatter.java Changeset: e0700bf1 Author: Albert Mingkun Yang Date: 2021-12-16 13:39:24 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e0700bf1d464762d0ee52c08e7e8668e9c8cfc3f 8278763: Parallel: Remove grows_up/grows_down in PSVirtualSpace Reviewed-by: tschatzl, mli ! src/hotspot/share/gc/parallel/psVirtualspace.cpp ! src/hotspot/share/gc/parallel/psVirtualspace.hpp Changeset: 271d26f1 Author: Albert Mingkun Yang Date: 2021-12-16 13:40:22 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/271d26f14149014d264e3a33cc0206f61856f7cd 8278601: Parallel: Remove redundant code in ObjectStartArray::initialize Reviewed-by: sjohanss, mli ! src/hotspot/share/gc/parallel/objectStartArray.cpp Changeset: f15a59ce Author: Albert Mingkun Yang Date: 2021-12-16 13:41:19 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f15a59ce72e7637620c2d3b5becf751809d13aed 8278756: Parallel: Drop PSOldGen::_reserved Reviewed-by: tschatzl, mli ! src/hotspot/share/gc/parallel/objectStartArray.hpp ! src/hotspot/share/gc/parallel/parallelScavengeHeap.cpp ! src/hotspot/share/gc/parallel/psOldGen.cpp ! src/hotspot/share/gc/parallel/psOldGen.hpp ! src/hotspot/share/gc/parallel/psParallelCompact.cpp ! src/hotspot/share/gc/parallel/psVirtualspace.cpp ! src/hotspot/share/gc/parallel/psVirtualspace.hpp ! src/hotspot/share/gc/parallel/psYoungGen.hpp ! src/hotspot/share/gc/parallel/vmStructs_parallelgc.hpp Changeset: 937126b1 Author: Zhengyu Gu Date: 2021-12-16 15:23:02 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/937126b1406ff0f6ac0828310e5e09003692dcd3 8278551: Shenandoah: Adopt WorkerThread::worker_id() to replace Shenandoah specific implementation Reviewed-by: rkennke ! src/hotspot/share/gc/shenandoah/shenandoahReferenceProcessor.cpp ! src/hotspot/share/gc/shenandoah/shenandoahThreadLocalData.hpp ! src/hotspot/share/gc/shenandoah/shenandoahUtils.cpp ! src/hotspot/share/gc/shenandoah/shenandoahUtils.hpp Changeset: 20db7800 Author: Sergey Tsypanov Committer: Roger Riggs Date: 2021-12-16 21:39:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/20db7800a657b311eeac504a2bbae4adbc209dbf 8277868: Use Comparable.compare() instead of surrogate code Reviewed-by: rriggs, aivanov ! src/java.base/share/classes/java/math/BigDecimal.java ! src/java.base/share/classes/java/net/CookieManager.java ! src/java.base/share/classes/java/util/Calendar.java ! src/java.base/share/classes/java/util/Date.java ! src/java.base/share/classes/java/util/UUID.java ! src/java.desktop/share/classes/java/awt/font/NumericShaper.java ! src/java.desktop/share/classes/java/awt/geom/Line2D.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicTableUI.java ! src/java.desktop/share/classes/javax/swing/text/GapContent.java ! src/java.desktop/share/classes/sun/awt/geom/Curve.java ! src/java.desktop/share/classes/sun/java2d/Spans.java ! src/java.desktop/share/classes/sun/java2d/loops/GraphicsPrimitiveMgr.java Changeset: 8f5fdd86 Author: Naoto Sato Date: 2021-12-16 21:41:38 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8f5fdd864b6f1cf4a2d9d961d8d4118960f0751e 8278587: StringTokenizer(String, String, boolean) documentation bug Reviewed-by: iris, joehw, lancea, rriggs, darcy ! src/java.base/share/classes/java/util/StringTokenizer.java Changeset: 197c9f5a Author: David Holmes Date: 2021-12-16 22:17:53 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/197c9f5ac8cc0ebfcd9f33415b0dcd382cd8d15e 8268573: Remove expired flags in JDK 19 Reviewed-by: dcubed, pchilanomate, eosterlund ! src/hotspot/share/runtime/arguments.cpp ! src/java.base/share/man/java.1 Changeset: 7ce4aa89 Author: Chris Plummer Date: 2021-12-16 23:25:07 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7ce4aa894279b76b6033bb4a1d0caa00d4213406 8276982: VM.class_hierarchy jcmd help output and man page text needs clarifications/improvements Reviewed-by: stuefe, dholmes, sspitsyn ! src/hotspot/share/services/diagnosticCommand.cpp ! src/jdk.jcmd/share/man/jcmd.1 Changeset: e82310f3 Author: Stuart Marks Date: 2021-12-16 01:27:07 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e82310f3605b37519129ea34b2a6f99ee3ccc63a 8278575: update jcmd GC.finalizer_info to list finalization status Co-authored-by: David Holmes Reviewed-by: dholmes, kbarrett ! src/hotspot/share/services/diagnosticCommand.cpp Changeset: aec1b039 Author: Thomas Schatzl Date: 2021-12-16 12:29:57 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/aec1b039b35b73db17c943cdd86949a92e64fcb6 8278389: SuspendibleThreadSet::_suspend_all should be volatile/atomic Reviewed-by: ayang, mli ! src/hotspot/share/gc/shared/suspendibleThreadSet.cpp ! src/hotspot/share/gc/shared/suspendibleThreadSet.hpp Changeset: be6b90d9 Author: Stuart Marks Date: 2021-12-16 17:35:32 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/be6b90d90b54883ff17f9f5ac0f271de37df7e2a 8278574: update --help-extra message to include default value of --finalization option Reviewed-by: sundar, alanb, lancea, mchung ! src/java.base/share/classes/sun/launcher/resources/launcher.properties Changeset: 634afe8c Author: Jesper Wilhelmsson Date: 2021-12-17 01:08:22 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/634afe8c5c0855eafb1639f54ecc8e9c9e568814 Merge ! src/hotspot/share/services/diagnosticCommand.cpp ! src/hotspot/share/services/diagnosticCommand.cpp Changeset: 8c73ec15 Author: Hamlin Li Date: 2021-12-17 03:29:28 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8c73ec155dd9324367d2a8e5f2e49da11683f8c8 8278891: G1: Call reset in G1RegionMarkStatsCache constructor Reviewed-by: tschatzl, ayang ! src/hotspot/share/gc/g1/g1FullGCMarker.cpp ! src/hotspot/share/gc/g1/g1RegionMarkStatsCache.cpp Changeset: 247ea71d Author: Dmitry Chuyko Date: 2021-12-17 09:19:00 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/247ea71d24a251d29d9a5179e5b773df850e7261 8278826: Print error if Shenandoah flags are empty (instead of crashing) Reviewed-by: rkennke, mli ! src/hotspot/share/gc/shenandoah/mode/shenandoahIUMode.cpp ! src/hotspot/share/gc/shenandoah/mode/shenandoahPassiveMode.cpp ! src/hotspot/share/gc/shenandoah/mode/shenandoahSATBMode.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Changeset: 9ff93240 Author: duke Date: 2021-12-17 11:00:39 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9ff932402b4284022bd38e5e723a79722e60e428 Automatic merge of jdk:master into master From duke at openjdk.java.net Fri Dec 17 11:21:25 2021 From: duke at openjdk.java.net (duke) Date: Fri, 17 Dec 2021 11:21:25 GMT Subject: git: openjdk/panama-foreign: foreign-preview: 78 new changesets Message-ID: Changeset: 3e0b083f Author: Hamlin Li Date: 2021-12-10 14:51:27 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3e0b083f2013f07b090af92a78c9a5f46f9fe427 8278533: Remove some unused methods in c1_Instruction and c1_ValueMap Reviewed-by: chagedorn ! src/hotspot/share/c1/c1_Instruction.cpp ! src/hotspot/share/c1/c1_Instruction.hpp ! src/hotspot/share/c1/c1_ValueMap.hpp Changeset: 8eb453ba Author: Roman Kennke Date: 2021-12-10 16:24:16 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8eb453baebe377697286f7eb32280ca9f1fd7775 8277072: ObjectStreamClass caches keep ClassLoaders alive Reviewed-by: rriggs, plevart + src/java.base/share/classes/java/io/ClassCache.java ! src/java.base/share/classes/java/io/ObjectStreamClass.java + test/jdk/java/io/ObjectStreamClass/ObjectStreamClassCaching.java + test/jdk/java/io/ObjectStreamClass/TestOSCClassLoaderLeak.java Changeset: 4f594e6a Author: Dan Lutker Committer: Paul Hohensee Date: 2021-12-10 17:52:54 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/4f594e6a28ad85d46d3252fb960f1c116f414899 8278381: [GCC 11] Address::make_raw() does not initialize rspec Reviewed-by: phh, xliu ! src/hotspot/cpu/arm/assembler_arm_32.cpp ! src/hotspot/cpu/x86/assembler_x86.cpp Changeset: afd065b3 Author: Evgeny Astigeevich Committer: Paul Hohensee Date: 2021-12-10 18:27:36 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/afd065b3684f7b87563961c2b7a6ee6a354dbdf9 8278415: [TESTBUG] vmTestbase/nsk/stress/stack/stack018.java fails with "java.lang.Error: TEST_RFE" Reviewed-by: phh ! test/hotspot/jtreg/vmTestbase/nsk/stress/stack/stack018.java Changeset: ed5d53ae Author: Jonathan Gibbons Date: 2021-12-10 02:50:37 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ed5d53ae0eb0b12de11fb3d79ae0371c093ce434 8273179: Update nroff pages in JDK 18 before RC Reviewed-by: dholmes ! src/java.base/share/man/java.1 ! src/java.base/share/man/keytool.1 ! src/java.rmi/share/man/rmiregistry.1 ! src/java.scripting/share/man/jrunscript.1 ! src/jdk.compiler/share/man/javac.1 ! src/jdk.compiler/share/man/serialver.1 ! src/jdk.hotspot.agent/share/man/jhsdb.1 ! src/jdk.httpserver/share/man/jwebserver.1 ! src/jdk.jartool/share/man/jar.1 ! src/jdk.jartool/share/man/jarsigner.1 ! src/jdk.javadoc/share/man/javadoc.1 ! src/jdk.jcmd/share/man/jcmd.1 ! src/jdk.jcmd/share/man/jinfo.1 ! src/jdk.jcmd/share/man/jmap.1 ! src/jdk.jcmd/share/man/jps.1 ! src/jdk.jcmd/share/man/jstack.1 ! src/jdk.jcmd/share/man/jstat.1 ! src/jdk.jconsole/share/man/jconsole.1 ! src/jdk.jdeps/share/man/javap.1 ! src/jdk.jdeps/share/man/jdeprscan.1 ! src/jdk.jdeps/share/man/jdeps.1 ! src/jdk.jdi/share/man/jdb.1 ! src/jdk.jfr/share/man/jfr.1 ! src/jdk.jlink/share/man/jlink.1 ! src/jdk.jlink/share/man/jmod.1 ! src/jdk.jpackage/share/man/jpackage.1 ! src/jdk.jshell/share/man/jshell.1 ! src/jdk.jstatd/share/man/jstatd.1 Changeset: 3df8dc49 Author: Jonathan Gibbons Date: 2021-12-10 05:02:28 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3df8dc494d2d0e6d1003094c9e129be2cca10a3c 8278538: Test langtools/jdk/javadoc/tool/CheckManPageOptions.java fails after the manpage was updated Reviewed-by: dholmes ! test/langtools/jdk/javadoc/tool/CheckManPageOptions.java Changeset: 0602f4c4 Author: Hao Sun Committer: Aleksey Shipilev Date: 2021-12-10 15:53:27 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/0602f4c48b0ffe53a6081551988b417d7536efa0 8277621: ARM32: multiple fastdebug failures with "bad AD file" after JDK-8276162 Reviewed-by: njian, dlong, shade ! src/hotspot/cpu/arm/arm.ad Changeset: 61736f81 Author: Jesper Wilhelmsson Date: 2021-12-10 18:42:51 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/61736f81fb4a20375c83d59e2b37a00aafb11107 Merge Changeset: 81c56c70 Author: Phil Race Date: 2021-12-10 21:02:28 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/81c56c700a47c7f1b7855052de17eb88fac84674 8278456: Define jtreg jdk_desktop test group time-based sub-tasks for use by headful testing. Reviewed-by: serb, aivanov, psadhukhan ! test/jdk/TEST.groups Changeset: 6eb6ec05 Author: Dan Lutker Committer: Paul Hohensee Date: 2021-12-10 23:49:41 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/6eb6ec05fd4f80e11d0b052b58190bc8b53f4b11 8278525: Additional -Wnonnull errors happen with GCC 11 Reviewed-by: phh, dlong ! src/hotspot/cpu/x86/assembler_x86.cpp Changeset: db68a0ce Author: Andrew Leonard Date: 2021-12-11 15:27:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/db68a0ce1ce152345320e70acb7e9842d2f1ece4 8276766: Enable jar and jmod to produce deterministic timestamped content Reviewed-by: ihse, lancea, alanb, jgneff ! src/jdk.jartool/share/classes/sun/tools/jar/GNUStyleOptions.java ! src/jdk.jartool/share/classes/sun/tools/jar/Main.java ! src/jdk.jartool/share/classes/sun/tools/jar/resources/jar.properties ! src/jdk.jlink/share/classes/jdk/tools/jmod/JmodOutputStream.java ! src/jdk.jlink/share/classes/jdk/tools/jmod/JmodTask.java ! src/jdk.jlink/share/classes/jdk/tools/jmod/resources/jmod.properties + test/jdk/tools/jar/ReproducibleJar.java ! test/jdk/tools/jmod/JmodTest.java Changeset: 7c2c5858 Author: Sergey Bylokhov Date: 2021-12-12 21:47:03 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7c2c58587d4eda5523331eae45e7d897252dc097 8276819: javax/print/PrintServiceLookup/FlushCustomClassLoader.java fails to free Reviewed-by: psadhukhan, aivanov ! test/jdk/javax/print/PrintServiceLookup/FlushCustomClassLoader.java Changeset: 8b5ff4bd Author: Matthias Baesken Date: 2021-12-13 07:48:20 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8b5ff4bdffc8f32317d67b00c085071d6c772b30 8278344: sun/security/pkcs12/KeytoolOpensslInteropTest.java test fails because of different openssl output Reviewed-by: mdoerr, goetz, stuefe ! test/jdk/sun/security/pkcs12/KeytoolOpensslInteropTest.java Changeset: ccdb9f1b Author: Albert Mingkun Yang Date: 2021-12-13 09:50:30 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ccdb9f1b160a0f49ee86c7a2714d2381d68419cc 8278482: G1: Improve HeapRegion::block_is_obj Reviewed-by: sjohanss, tschatzl, mli ! src/hotspot/share/gc/g1/heapRegion.cpp ! src/hotspot/share/gc/g1/heapRegion.inline.hpp Changeset: 23fd9f15 Author: Christian Stein Committer: Lance Andersen Date: 2021-12-13 12:00:47 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/23fd9f15da40cef00231380766158bc0fa537c38 8271079: JavaFileObject#toUri and multi-release jars Reviewed-by: jjg, lancea, alanb ! src/jdk.compiler/share/classes/com/sun/tools/javac/file/PathFileObject.java ! src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipFileSystem.java ! src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipPath.java ! test/jdk/jdk/nio/zipfs/ZipFSTester.java ! test/jdk/jdk/nio/zipfs/jarfs/JFSTester.java + test/langtools/tools/javac/T8271079.java Changeset: 14f7385a Author: Harold Seigel Date: 2021-12-13 13:35:37 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/14f7385a72972e1f15b3103cc75a60c5733f6d98 8277481: Obsolete seldom used CDS flags Reviewed-by: iklam, ccheung, dholmes ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/utilities/globalDefinitions.cpp ! src/hotspot/share/utilities/globalDefinitions.hpp ! src/java.base/share/classes/jdk/internal/misc/CDS.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/VM.java ! src/jdk.hotspot.agent/share/native/libsaproc/ps_core_common.c ! test/hotspot/jtreg/runtime/cds/SharedArchiveFile.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/DynamicArchiveTestBase.java - test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/DynamicFlag.java ! test/hotspot/jtreg/runtime/cds/appcds/jcmd/JCmdTestDumpBase.java ! test/hotspot/jtreg/runtime/cds/appcds/jcmd/JCmdTestDynamicDump.java ! test/hotspot/jtreg/runtime/cds/appcds/jcmd/JCmdTestStaticDump.java Changeset: 15996e40 Author: Harold Seigel Date: 2021-12-13 13:40:54 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/15996e407563eda844266f1cbcdc20be74b4b4e4 8276241: JVM does not flag constant class entries ending in '/' Reviewed-by: dholmes, lfoltan ! src/hotspot/share/classfile/classFileParser.cpp + test/hotspot/jtreg/runtime/classFileParserBug/TrailingSlashTest.java Changeset: ca8c58c7 Author: merykitty Committer: Paul Sandoz Date: 2021-12-13 16:34:37 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ca8c58c731959e3a1b8fe02255ed44fc1d14d565 8259610: VectorReshapeTests are not effective due to failing to intrinsify "VectorSupport.convert" Reviewed-by: psandoz, chagedorn ! test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java + test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorCastAVX1.java + test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorCastAVX2.java + test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorCastAVX512.java + test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorCastAVX512DQ.java + test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorCastNeon.java + test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorCastSVE.java + test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorReinterpret.java + test/hotspot/jtreg/compiler/vectorapi/reshape/tests/TestVectorCast.java + test/hotspot/jtreg/compiler/vectorapi/reshape/tests/TestVectorDoubleExpandShrink.java + test/hotspot/jtreg/compiler/vectorapi/reshape/tests/TestVectorExpandShrink.java + test/hotspot/jtreg/compiler/vectorapi/reshape/tests/TestVectorRebracket.java + test/hotspot/jtreg/compiler/vectorapi/reshape/utils/TestCastMethods.java + test/hotspot/jtreg/compiler/vectorapi/reshape/utils/UnsafeUtils.java + test/hotspot/jtreg/compiler/vectorapi/reshape/utils/VectorReshapeHelper.java + test/hotspot/jtreg/compiler/vectorapi/reshape/utils/VectorSpeciesPair.java Changeset: db502d30 Author: Chris Plummer Date: 2021-12-13 19:02:12 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/db502d30a42847f69273f48378f230d9d55eb8d6 8269556: sun/tools/jhsdb/JShellHeapDumpTest.java fails with RuntimeException 'JShellToolProvider' missing from stdout/stderr Reviewed-by: kevinw, sspitsyn, amenkov ! test/jdk/sun/tools/jhsdb/JShellHeapDumpTest.java Changeset: bdc784c0 Author: Daniel D. Daugherty Date: 2021-12-13 20:36:40 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/bdc784c0cb02d76c6d3a1608a89f4b64f86253eb 8278630: ProblemList compiler/vectorapi/reshape/TestVectorCastAVX512.java on X64 Reviewed-by: psandoz ! test/hotspot/jtreg/ProblemList.txt Changeset: 624f3094 Author: David Holmes Date: 2021-12-13 21:36:24 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/624f3094b89976a0be0a1d1d4ce304f4be38fb9e 8278275: Initial nroff manpage generation for JDK 19 Reviewed-by: erikj, jjg, iris ! src/java.base/share/man/java.1 ! src/java.base/share/man/keytool.1 ! src/java.rmi/share/man/rmiregistry.1 ! src/java.scripting/share/man/jrunscript.1 ! src/jdk.compiler/share/man/javac.1 ! src/jdk.compiler/share/man/serialver.1 ! src/jdk.hotspot.agent/share/man/jhsdb.1 ! src/jdk.httpserver/share/man/jwebserver.1 ! src/jdk.jartool/share/man/jar.1 ! src/jdk.jartool/share/man/jarsigner.1 ! src/jdk.javadoc/share/man/javadoc.1 ! src/jdk.jcmd/share/man/jcmd.1 ! src/jdk.jcmd/share/man/jinfo.1 ! src/jdk.jcmd/share/man/jmap.1 ! src/jdk.jcmd/share/man/jps.1 ! src/jdk.jcmd/share/man/jstack.1 ! src/jdk.jcmd/share/man/jstat.1 ! src/jdk.jconsole/share/man/jconsole.1 ! src/jdk.jdeps/share/man/javap.1 ! src/jdk.jdeps/share/man/jdeprscan.1 ! src/jdk.jdeps/share/man/jdeps.1 ! src/jdk.jdi/share/man/jdb.1 ! src/jdk.jfr/share/man/jfr.1 ! src/jdk.jlink/share/man/jlink.1 ! src/jdk.jlink/share/man/jmod.1 ! src/jdk.jpackage/share/man/jpackage.1 ! src/jdk.jshell/share/man/jshell.1 ! src/jdk.jstatd/share/man/jstatd.1 Changeset: 94127f43 Author: Alexander Zuev Date: 2021-12-10 20:27:07 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/94127f43a4a28a89094fa93cd1da49763134f9db 8277299: STACK_OVERFLOW in Java_sun_awt_shell_Win32ShellFolder2_getIconBits Reviewed-by: aivanov ! src/java.desktop/windows/native/libawt/windows/ShellFolder2.cpp + test/jdk/javax/swing/JFileChooser/FileSystemView/ShellFolderStackOverflow.java Changeset: 9b99cbe7 Author: Daniel D. Daugherty Date: 2021-12-11 15:53:31 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9b99cbe7abf56d3ad5231a68b6506e35b89133c9 8278580: ProblemList javax/swing/JTree/4908142/bug4908142.java on macosx-x64 Reviewed-by: alanb ! test/jdk/ProblemList.txt Changeset: 9a1bbaf8 Author: Scott Gibbons Committer: Vladimir Kozlov Date: 2021-12-12 16:08:35 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9a1bbaf8db0e869ab76be8ab1bd0ddeb23693e7e 8273108: RunThese24H crashes with SEGV in markWord::displaced_mark_helper() after JDK-8268276 8272809: JFR thread sampler SI_KERNEL SEGV in metaspace::VirtualSpaceList::contains Reviewed-by: sviswanathan, kvn ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp ! test/hotspot/jtreg/compiler/intrinsics/base64/TestBase64.java Changeset: c93b24d8 Author: David Holmes Date: 2021-12-13 21:37:51 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/c93b24d85289167639e9ec4b79bd85403687161b 8132785: java/lang/management/ThreadMXBean/ThreadLists.java fails intermittently Reviewed-by: alanb, kevinw, dcubed, sspitsyn ! test/jdk/ProblemList.txt ! test/jdk/java/lang/management/ThreadMXBean/ThreadLists.java Changeset: 8401a059 Author: Jesper Wilhelmsson Date: 2021-12-14 02:15:15 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8401a059bd01b32e3532f806d3d8b60e851c468a Merge Changeset: 3f9638d1 Author: Thomas Stuefe Date: 2021-12-14 05:45:56 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3f9638d124076019f49eb77bc3ff8b466e4beb53 8278585: Drop unused code from OSThread Reviewed-by: dholmes, tschatzl ! src/hotspot/os/aix/osThread_aix.hpp ! src/hotspot/os/aix/os_aix.cpp ! src/hotspot/os/bsd/osThread_bsd.hpp ! src/hotspot/os/bsd/os_bsd.cpp ! src/hotspot/os/linux/osThread_linux.hpp ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/os/windows/osThread_windows.hpp ! src/hotspot/os/windows/os_windows.cpp ! src/hotspot/share/jfr/writers/jfrJavaEventWriter.cpp ! src/hotspot/share/runtime/osThread.cpp ! src/hotspot/share/runtime/osThread.hpp ! src/hotspot/share/runtime/thread.cpp Changeset: 7761a3e8 Author: Albert Mingkun Yang Date: 2021-12-14 17:11:11 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7761a3e883bcd18b0b235248c37f9228fd37b927 8278761: Parallel: Remove unused PSOldPromotionLAB constructor Reviewed-by: tschatzl ! src/hotspot/share/gc/parallel/psPromotionLAB.hpp Changeset: 3f91948c Author: Coleen Phillimore Date: 2021-12-14 17:45:35 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3f91948c592d6968d2de6c59a5d93866f439c0e8 8278791: Rename ClassLoaderData::holder_phantom Reviewed-by: stefank ! src/hotspot/share/cds/metaspaceShared.cpp ! src/hotspot/share/classfile/classLoaderData.cpp ! src/hotspot/share/classfile/classLoaderData.hpp ! src/hotspot/share/classfile/classLoaderDataGraph.cpp ! src/hotspot/share/oops/klass.inline.hpp Changeset: a9c1acbb Author: Sergey Bylokhov Date: 2021-12-14 18:03:00 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/a9c1acbb8aec46e4a488b7c77bb6318af87747f6 8275843: Random crashes while the UI code is executed Reviewed-by: azvegint ! src/java.desktop/unix/classes/sun/java2d/xr/XRCompositeManager.java ! src/java.desktop/unix/classes/sun/java2d/xr/XRGraphicsConfig.java ! src/java.desktop/unix/classes/sun/java2d/xr/XRSurfaceData.java ! test/jdk/java/awt/ColorClass/AlphaColorTest.java ! test/jdk/java/awt/ColorClass/XRenderTranslucentColorDrawTest.java + test/jdk/java/awt/image/ColorModel/DrawCustomColorModel.java Changeset: de65230d Author: Zhengyu Gu Date: 2021-12-14 18:39:28 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/de65230d7183eb2d534afae5891eaa27074b8a7d 8278767: Shenandoah: Remove unused ShenandoahRootScanner Reviewed-by: rkennke ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp Changeset: a1dfe572 Author: Vladimir Kozlov Date: 2021-12-14 19:24:13 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/a1dfe57249db15c0c05d33a0014ac914a7093089 8276455: C2: iterative EA Reviewed-by: iveresov, neliasso, roland ! src/hotspot/share/opto/c2compiler.cpp ! src/hotspot/share/opto/c2compiler.hpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/compile.hpp ! src/hotspot/share/opto/escape.cpp ! src/hotspot/share/opto/escape.hpp + test/hotspot/jtreg/compiler/c2/irTests/TestIterativeEA.java + test/hotspot/jtreg/compiler/escapeAnalysis/TestIterativeEA.java + test/micro/org/openjdk/bench/vm/compiler/IterativeEA.java + test/micro/org/openjdk/bench/vm/compiler/PointerBenchmarkFlat.java Changeset: 03f647f4 Author: Roger Riggs Date: 2021-12-14 19:54:54 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/03f647f4bb640bf5df1c461eec9860c7ac3eb076 8278028: [test-library] Warnings cleanup of the test library Reviewed-by: dfuchs, mchung, naoto, lancea, lmesnik ! test/lib-test/jdk/test/lib/AssertsTest.java ! test/lib-test/jdk/test/lib/TestPlatformIsTieredSupported.java ! test/lib-test/jdk/test/lib/format/ArrayDiffTest.java ! test/lib-test/jdk/test/whitebox/OldWhiteBox.java ! test/lib-test/jdk/test/whitebox/vm_flags/VmFlagTest.java ! test/lib/RedefineClassHelper.java ! test/lib/jdk/test/lib/NetworkConfiguration.java ! test/lib/jdk/test/lib/compiler/InMemoryJavaCompiler.java ! test/lib/jdk/test/lib/format/ArrayCodec.java ! test/lib/jdk/test/lib/format/ArrayDiff.java ! test/lib/jdk/test/lib/hexdump/ASN1Formatter.java ! test/lib/jdk/test/lib/hexdump/StreamDump.java ! test/lib/jdk/test/lib/process/Proc.java ! test/lib/jdk/test/lib/process/ProcessTools.java Changeset: 98a8d446 Author: Harold Seigel Date: 2021-12-14 20:35:49 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/98a8d446b69fd84355731a8a3192cbd42671abb8 8278638: Remove FLAG_IS_CMDLINE(UseSharedSpaces) Reviewed-by: dcubed, coleenp ! src/hotspot/share/runtime/arguments.cpp Changeset: 2def7e91 Author: Jie Fu Date: 2021-12-14 22:49:04 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/2def7e913207af788e582ed5bde21b28883183de 8278584: compiler/vectorapi/VectorMaskLoadStoreTest.java failed with "Error: ShouldNotReachHere()" Reviewed-by: kvn, psandoz ! src/hotspot/cpu/x86/x86.ad ! test/hotspot/jtreg/compiler/vectorapi/VectorMaskLoadStoreTest.java Changeset: 068a4509 Author: Liam Miller-Cushon Date: 2021-12-15 00:26:17 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/068a450954530d9a469db05d7cf2e7dcf1eddc8a 8278825: Unused variable for diagnostic in Resolve Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java Changeset: 54c9a996 Author: Chris Plummer Date: 2021-12-15 01:25:53 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/54c9a99663c47b0477392a606637986bc5c87464 8278643: CoreUtils.getCoreFileLocation() should print out the size of the core file found Reviewed-by: amenkov, lmesnik, sspitsyn ! test/lib/jdk/test/lib/util/CoreUtils.java Changeset: 46f99aca Author: Chris Plummer Date: 2021-12-15 01:29:50 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/46f99aca94ed878a94878eacb113fe2813050ad7 8244765: Undo exclusiveAccess.dirs changes for JDK-8220295 and see if there are still any testing issues Reviewed-by: amenkov, sspitsyn ! test/jdk/TEST.ROOT Changeset: c442587f Author: Fei Gao Committer: Pengfei Li Date: 2021-12-15 02:26:40 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/c442587f1e72a614302cd76c20e13f1cb1703641 8277619: AArch64: Incorrect parameter type in Advanced SIMD Copy assembler functions Reviewed-by: aph, pli ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/aarch64_neon.ad ! src/hotspot/cpu/aarch64/aarch64_neon_ad.m4 ! src/hotspot/cpu/aarch64/assembler_aarch64.hpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! test/hotspot/gtest/aarch64/aarch64-asmtest.py ! test/hotspot/gtest/aarch64/asmtest.out.h Changeset: 758fe9be Author: Chris Plummer Date: 2021-12-15 03:11:27 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/758fe9bed3daf9a31d15291ef9787dc5a914451f 8273904: debug agent ArrayTypeImp::newInstance() fails to send reply packet if there is an error Reviewed-by: sspitsyn, amenkov ! src/jdk.jdwp.agent/share/native/libjdwp/ArrayTypeImpl.c Changeset: 7adf7f33 Author: Per Liden Date: 2021-12-15 10:09:02 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7adf7f3353ab81c5af3f2fc4c0fc9e4cf8905e32 8278351: Add function to retrieve worker_id from any context Reviewed-by: eosterlund, kbarrett, ayang ! src/hotspot/share/gc/shared/referenceProcessor.cpp ! src/hotspot/share/gc/shared/workerThread.cpp ! src/hotspot/share/gc/shared/workerThread.hpp ! src/hotspot/share/gc/shenandoah/shenandoahWorkGroup.cpp ! src/hotspot/share/gc/shenandoah/shenandoahWorkGroup.hpp Changeset: 1e3ae3be Author: Coleen Phillimore Date: 2021-12-15 13:41:59 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/1e3ae3be02e1fa76c632ef289dd1887c7fa369ec 8202579: Revisit VM_Version and VM_Version_ext for overlap and consolidation Reviewed-by: dholmes, hseigel ! src/hotspot/cpu/aarch64/vm_version_aarch64.cpp ! src/hotspot/cpu/aarch64/vm_version_aarch64.hpp - src/hotspot/cpu/aarch64/vm_version_ext_aarch64.cpp - src/hotspot/cpu/aarch64/vm_version_ext_aarch64.hpp ! src/hotspot/cpu/arm/vm_version_arm.hpp ! src/hotspot/cpu/arm/vm_version_arm_32.cpp - src/hotspot/cpu/arm/vm_version_ext_arm.cpp - src/hotspot/cpu/arm/vm_version_ext_arm.hpp - src/hotspot/cpu/ppc/vm_version_ext_ppc.cpp - src/hotspot/cpu/ppc/vm_version_ext_ppc.hpp ! src/hotspot/cpu/ppc/vm_version_ppc.cpp ! src/hotspot/cpu/ppc/vm_version_ppc.hpp - src/hotspot/cpu/s390/vm_version_ext_s390.cpp - src/hotspot/cpu/s390/vm_version_ext_s390.hpp ! src/hotspot/cpu/s390/vm_version_s390.cpp ! src/hotspot/cpu/s390/vm_version_s390.hpp ! src/hotspot/cpu/x86/rdtsc_x86.cpp - src/hotspot/cpu/x86/vm_version_ext_x86.cpp - src/hotspot/cpu/x86/vm_version_ext_x86.hpp ! src/hotspot/cpu/x86/vm_version_x86.cpp ! src/hotspot/cpu/x86/vm_version_x86.hpp - src/hotspot/cpu/zero/vm_version_ext_zero.cpp - src/hotspot/cpu/zero/vm_version_ext_zero.hpp ! src/hotspot/cpu/zero/vm_version_zero.cpp ! src/hotspot/cpu/zero/vm_version_zero.hpp ! src/hotspot/os/aix/os_perf_aix.cpp ! src/hotspot/os/bsd/os_perf_bsd.cpp ! src/hotspot/os/linux/os_perf_linux.cpp ! src/hotspot/os/windows/os_perf_windows.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/prims/jvmtiExport.cpp ! src/hotspot/share/runtime/abstract_vm_version.cpp ! src/hotspot/share/runtime/abstract_vm_version.hpp Changeset: 4851ad84 Author: Albert Mingkun Yang Date: 2021-12-15 15:02:57 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/4851ad840a8c3b93f978b829f50a27a2f629fa82 8278548: G1: Remove unnecessary check in forward_to_block_containing_addr Reviewed-by: tschatzl, mli, sjohanss ! src/hotspot/share/gc/g1/g1BlockOffsetTable.inline.hpp Changeset: fcebe65c Author: Albert Mingkun Yang Date: 2021-12-15 15:04:11 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/fcebe65ce9dc177d9fa16db606e3c8c33b2f771a 8278842: Parallel: Remove unused VerifyObjectStartArrayClosure::_old_gen Reviewed-by: tschatzl ! src/hotspot/share/gc/parallel/psOldGen.cpp Changeset: bcb79fd0 Author: Evgeny Astigeevich Committer: Paul Hohensee Date: 2021-12-15 16:57:30 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/bcb79fd012c9c298e58c20c59e564e9d2c16b970 8278241: Implement JVM SpinPause on linux-aarch64 Reviewed-by: aph, phh ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/aarch64/stubRoutines_aarch64.cpp ! src/hotspot/cpu/aarch64/stubRoutines_aarch64.hpp ! src/hotspot/os_cpu/linux_aarch64/os_linux_aarch64.cpp + test/hotspot/jtreg/runtime/Thread/TestSpinPause.java Changeset: 1f1db838 Author: Weijun Wang Date: 2021-12-15 17:00:55 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/1f1db838ab7d427170d59a8b55fdb45c4d80c359 8278186: org.jcp.xml.dsig.internal.dom.Utils.parseIdFromSameDocumentURI throws StringIndexOutOfBoundsException when calling substring method Reviewed-by: mullan ! src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/DOMURIDereferencer.java ! src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/Utils.java + test/jdk/javax/xml/crypto/dsig/BadXPointer.java ! test/lib/jdk/test/lib/security/XMLUtils.java Changeset: 7517c85d Author: Chris Plummer Date: 2021-12-15 17:08:44 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7517c85da3236e5274580645d4c3cdecb1db25c5 8269838: BasicTypeDataBase.findDynamicTypeForAddress(addr, basetype) can be simplified Reviewed-by: kevinw, sspitsyn ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/types/basic/BasicTypeDataBase.java Changeset: 04dbdd36 Author: Andrey Turbanov Committer: Serguei Spitsyn Date: 2021-12-15 19:28:58 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/04dbdd36dd04bf40737cb8c2f13d5b75303d2b1a 8274898: Cleanup usages of StringBuffer in jdk tools modules Reviewed-by: sspitsyn, lmesnik ! src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Main.java ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/Log.java ! src/jdk.jshell/share/classes/jdk/internal/jshell/tool/Feedback.java Changeset: 4ba980ba Author: Ioi Lam Date: 2021-12-15 20:06:56 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/4ba980ba439f94a6b5015e64382a6c308476d63f 8278020: ~13% variation in Renaissance-Scrabble Reviewed-by: dholmes, stuefe, kvn ! src/hotspot/share/oops/klass.hpp Changeset: 32139c1a Author: Dean Long Date: 2021-12-14 03:16:17 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/32139c1a8aae51c0869f41be57580ff4463913d2 8262134: compiler/uncommontrap/TestDeoptOOM.java failed with "guarantee(false) failed: wrong number of expression stack elements during deopt" Reviewed-by: kvn, iveresov ! src/hotspot/share/c1/c1_IR.cpp ! src/hotspot/share/c1/c1_IR.hpp ! src/hotspot/share/c1/c1_LIRAssembler.cpp ! src/hotspot/share/runtime/deoptimization.cpp ! test/hotspot/jtreg/runtime/BootstrapMethod/BSMCalledTwice.java Changeset: 475ec8e6 Author: Markus Gr?nlund Date: 2021-12-14 13:00:39 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/475ec8e6c5abc3431344d69bd46395e8c4b46e4c 8277919: OldObjectSample event causing bloat in the class constant pool in JFR recording Reviewed-by: jbachorik ! src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleCheckpoint.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSet.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSetUtils.hpp Changeset: 0cc989b7 Author: Weijun Wang Date: 2021-12-14 18:39:22 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/0cc989b7d2fa3b903d71b7baab53b853455005ba 8278744: KeyStore:getAttributes() not returning unmodifiable Set Reviewed-by: mullan ! src/java.base/share/classes/sun/security/pkcs12/PKCS12KeyStore.java + test/jdk/java/security/KeyStore/PKCS12/UnmodifiableAttributes.java Changeset: f48a3e86 Author: Jie Fu Date: 2021-12-14 22:50:21 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f48a3e86d0274912160f3c415f92741eefa1cb1d 8278758: runtime/BootstrapMethod/BSMCalledTwice.java fails with release VMs after JDK-8262134 Reviewed-by: dcubed ! test/hotspot/jtreg/runtime/BootstrapMethod/BSMCalledTwice.java Changeset: 918e3397 Author: Alexander Matveev Date: 2021-12-14 23:59:11 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/918e3397858c425e9c3b82c9a918b7626603a59c 8278233: [macos] tools/jpackage tests timeout due to /usr/bin/osascript Reviewed-by: herrick, asemenyuk ! src/jdk.jpackage/share/classes/jdk/jpackage/internal/IOUtils.java ! test/jdk/ProblemList.txt Changeset: d6b5544e Author: Maurizio Cimadamore Date: 2021-12-15 12:25:25 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/d6b5544e74d46c1ca464a1994e73ddd323ef5c2b 8278607: Misc issues in foreign API javadoc Reviewed-by: sundar ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/CLinker.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemoryAddress.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/MemorySegment.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/SegmentAllocator.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/VaList.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/ValueLayout.java ! src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/package-info.java Changeset: 69b5d49e Author: Erik Gahlin Date: 2021-12-15 13:24:04 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/69b5d49e4f3a6b1ea616c39815dd16530eb32887 8272064: test/jdk/jdk/jfr/api/consumer/TestHiddenMethod.java needs update for JEP 416 Reviewed-by: jbachorik ! test/jdk/jdk/jfr/api/consumer/TestHiddenMethod.java Changeset: d3408a46 Author: Vladimir Kozlov Date: 2021-12-15 21:45:45 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/d3408a46b7c8c2f8b5e41f3e286a497064a2c104 8277964: ClassCastException with no stack trace is thrown with -Xcomp in method handle invocation Reviewed-by: dlong, mchung, dholmes ! src/hotspot/share/ci/ciMethod.cpp ! src/hotspot/share/ci/ciMethod.hpp ! src/hotspot/share/classfile/vmSymbols.hpp ! src/hotspot/share/oops/method.cpp ! src/hotspot/share/oops/method.hpp ! src/hotspot/share/opto/graphKit.cpp + test/jdk/java/lang/reflect/IllegalArgumentsTest.java Changeset: e6b28e05 Author: Jesper Wilhelmsson Date: 2021-12-16 00:26:36 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e6b28e05c6f7698f230b04199932d4fc81f41a89 Merge Changeset: 0dbe4c5d Author: Calvin Cheung Date: 2021-12-16 02:32:44 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/0dbe4c5d516a5e43934cb18f3becaf2a7f90999f 8278131: runtime/cds/appcds/dynamicArchive/* tests failing in loom repo Reviewed-by: iklam, dholmes, minqi ! test/hotspot/jtreg/runtime/HiddenClasses/InstantiateHiddenClass.java ! test/hotspot/jtreg/runtime/cds/appcds/customLoader/test-classes/HelloUnload.java ! test/hotspot/jtreg/runtime/cds/appcds/customLoader/test-classes/OldClassApp.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/HelloDynamicCustom.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/LambdaCustomLoader.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/OldClassAndInf.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/PrintSharedArchiveAndExit.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/RegularHiddenClass.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/test-classes/CustomLoaderApp.java Changeset: f6fbb5a8 Author: Zhiqiang Zang Committer: Jie Fu Date: 2021-12-16 03:57:29 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f6fbb5a80cfe630e76917397d21649709485d31d 8278471: Remove unreached rules in AddNode::IdealIL Reviewed-by: jiefu, kvn ! src/hotspot/share/opto/addnode.cpp ! src/hotspot/share/opto/subnode.cpp + test/hotspot/jtreg/compiler/c2/irTests/TestSpecialCasesOf_AMinusB_Plus_CMinusD_InAddIdeal.java ! test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java Changeset: 0bddd8af Author: Dmitry Batrak Date: 2021-12-16 07:14:35 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/0bddd8af61b6c731f16b857c09de57ceefd72d06 8278050: Armenian text isn't rendered on macOS if text layout is performed Reviewed-by: prr, serb ! src/java.desktop/macosx/classes/sun/font/CFont.java ! src/java.desktop/macosx/classes/sun/font/CFontManager.java Changeset: 7edcd348 Author: Hamlin Li Date: 2021-12-16 11:35:42 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7edcd348699b47050e4c5e3181c66fd0ee72830f 8278534: Remove some unnecessary code in MethodLiveness::init_basic_blocks Reviewed-by: chagedorn ! src/hotspot/share/compiler/methodLiveness.cpp Changeset: aae56398 Author: Claes Redestad Date: 2021-12-16 11:46:02 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/aae563981c89d922c51005626b39c31e377cadc5 8278642: Refactor java.util.Formatter Reviewed-by: rriggs, naoto ! src/java.base/share/classes/java/util/Formatter.java Changeset: e0700bf1 Author: Albert Mingkun Yang Date: 2021-12-16 13:39:24 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e0700bf1d464762d0ee52c08e7e8668e9c8cfc3f 8278763: Parallel: Remove grows_up/grows_down in PSVirtualSpace Reviewed-by: tschatzl, mli ! src/hotspot/share/gc/parallel/psVirtualspace.cpp ! src/hotspot/share/gc/parallel/psVirtualspace.hpp Changeset: 271d26f1 Author: Albert Mingkun Yang Date: 2021-12-16 13:40:22 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/271d26f14149014d264e3a33cc0206f61856f7cd 8278601: Parallel: Remove redundant code in ObjectStartArray::initialize Reviewed-by: sjohanss, mli ! src/hotspot/share/gc/parallel/objectStartArray.cpp Changeset: f15a59ce Author: Albert Mingkun Yang Date: 2021-12-16 13:41:19 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f15a59ce72e7637620c2d3b5becf751809d13aed 8278756: Parallel: Drop PSOldGen::_reserved Reviewed-by: tschatzl, mli ! src/hotspot/share/gc/parallel/objectStartArray.hpp ! src/hotspot/share/gc/parallel/parallelScavengeHeap.cpp ! src/hotspot/share/gc/parallel/psOldGen.cpp ! src/hotspot/share/gc/parallel/psOldGen.hpp ! src/hotspot/share/gc/parallel/psParallelCompact.cpp ! src/hotspot/share/gc/parallel/psVirtualspace.cpp ! src/hotspot/share/gc/parallel/psVirtualspace.hpp ! src/hotspot/share/gc/parallel/psYoungGen.hpp ! src/hotspot/share/gc/parallel/vmStructs_parallelgc.hpp Changeset: 937126b1 Author: Zhengyu Gu Date: 2021-12-16 15:23:02 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/937126b1406ff0f6ac0828310e5e09003692dcd3 8278551: Shenandoah: Adopt WorkerThread::worker_id() to replace Shenandoah specific implementation Reviewed-by: rkennke ! src/hotspot/share/gc/shenandoah/shenandoahReferenceProcessor.cpp ! src/hotspot/share/gc/shenandoah/shenandoahThreadLocalData.hpp ! src/hotspot/share/gc/shenandoah/shenandoahUtils.cpp ! src/hotspot/share/gc/shenandoah/shenandoahUtils.hpp Changeset: 20db7800 Author: Sergey Tsypanov Committer: Roger Riggs Date: 2021-12-16 21:39:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/20db7800a657b311eeac504a2bbae4adbc209dbf 8277868: Use Comparable.compare() instead of surrogate code Reviewed-by: rriggs, aivanov ! src/java.base/share/classes/java/math/BigDecimal.java ! src/java.base/share/classes/java/net/CookieManager.java ! src/java.base/share/classes/java/util/Calendar.java ! src/java.base/share/classes/java/util/Date.java ! src/java.base/share/classes/java/util/UUID.java ! src/java.desktop/share/classes/java/awt/font/NumericShaper.java ! src/java.desktop/share/classes/java/awt/geom/Line2D.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicTableUI.java ! src/java.desktop/share/classes/javax/swing/text/GapContent.java ! src/java.desktop/share/classes/sun/awt/geom/Curve.java ! src/java.desktop/share/classes/sun/java2d/Spans.java ! src/java.desktop/share/classes/sun/java2d/loops/GraphicsPrimitiveMgr.java Changeset: 8f5fdd86 Author: Naoto Sato Date: 2021-12-16 21:41:38 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8f5fdd864b6f1cf4a2d9d961d8d4118960f0751e 8278587: StringTokenizer(String, String, boolean) documentation bug Reviewed-by: iris, joehw, lancea, rriggs, darcy ! src/java.base/share/classes/java/util/StringTokenizer.java Changeset: 197c9f5a Author: David Holmes Date: 2021-12-16 22:17:53 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/197c9f5ac8cc0ebfcd9f33415b0dcd382cd8d15e 8268573: Remove expired flags in JDK 19 Reviewed-by: dcubed, pchilanomate, eosterlund ! src/hotspot/share/runtime/arguments.cpp ! src/java.base/share/man/java.1 Changeset: 7ce4aa89 Author: Chris Plummer Date: 2021-12-16 23:25:07 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7ce4aa894279b76b6033bb4a1d0caa00d4213406 8276982: VM.class_hierarchy jcmd help output and man page text needs clarifications/improvements Reviewed-by: stuefe, dholmes, sspitsyn ! src/hotspot/share/services/diagnosticCommand.cpp ! src/jdk.jcmd/share/man/jcmd.1 Changeset: e82310f3 Author: Stuart Marks Date: 2021-12-16 01:27:07 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e82310f3605b37519129ea34b2a6f99ee3ccc63a 8278575: update jcmd GC.finalizer_info to list finalization status Co-authored-by: David Holmes Reviewed-by: dholmes, kbarrett ! src/hotspot/share/services/diagnosticCommand.cpp Changeset: aec1b039 Author: Thomas Schatzl Date: 2021-12-16 12:29:57 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/aec1b039b35b73db17c943cdd86949a92e64fcb6 8278389: SuspendibleThreadSet::_suspend_all should be volatile/atomic Reviewed-by: ayang, mli ! src/hotspot/share/gc/shared/suspendibleThreadSet.cpp ! src/hotspot/share/gc/shared/suspendibleThreadSet.hpp Changeset: be6b90d9 Author: Stuart Marks Date: 2021-12-16 17:35:32 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/be6b90d90b54883ff17f9f5ac0f271de37df7e2a 8278574: update --help-extra message to include default value of --finalization option Reviewed-by: sundar, alanb, lancea, mchung ! src/java.base/share/classes/sun/launcher/resources/launcher.properties Changeset: 634afe8c Author: Jesper Wilhelmsson Date: 2021-12-17 01:08:22 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/634afe8c5c0855eafb1639f54ecc8e9c9e568814 Merge ! src/hotspot/share/services/diagnosticCommand.cpp ! src/hotspot/share/services/diagnosticCommand.cpp Changeset: 8c73ec15 Author: Hamlin Li Date: 2021-12-17 03:29:28 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8c73ec155dd9324367d2a8e5f2e49da11683f8c8 8278891: G1: Call reset in G1RegionMarkStatsCache constructor Reviewed-by: tschatzl, ayang ! src/hotspot/share/gc/g1/g1FullGCMarker.cpp ! src/hotspot/share/gc/g1/g1RegionMarkStatsCache.cpp Changeset: 247ea71d Author: Dmitry Chuyko Date: 2021-12-17 09:19:00 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/247ea71d24a251d29d9a5179e5b773df850e7261 8278826: Print error if Shenandoah flags are empty (instead of crashing) Reviewed-by: rkennke, mli ! src/hotspot/share/gc/shenandoah/mode/shenandoahIUMode.cpp ! src/hotspot/share/gc/shenandoah/mode/shenandoahPassiveMode.cpp ! src/hotspot/share/gc/shenandoah/mode/shenandoahSATBMode.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Changeset: 9ff93240 Author: duke Date: 2021-12-17 11:00:39 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9ff932402b4284022bd38e5e723a79722e60e428 Automatic merge of jdk:master into master From org.openjdk at io7m.com Fri Dec 17 11:58:23 2021 From: org.openjdk at io7m.com (Mark Raynsford) Date: Fri, 17 Dec 2021 11:58:23 +0000 Subject: Vector API benefits for small matrices/vectors? Message-ID: <20211217115823.7bfe35d0@sunflower.int.arc7.info> Hello! I'm curious if there are likely to be performance benefits for small matrices and vectors when using the vector API. I'm intending to try out the second incubator soon, but I'm unclear on whether the underlying hardware APIs are really targeted at this kind of work. I maintain a small vector algebra package intended for realtime computer graphics: https://github.com/io7m/jtensors It's focused on immutable 2-4 element vectors and 3x3 and 4x4 element matrices, in single and double precision floating point. The code is mostly generated from a template so that I don't have to write the same code twice for float/double. A 4x4 matrix multiplication looks like this: https://gist.github.com/io7m/f5453332c6ef268c78db1f81c63f0066 On an AMD Ryzen 5 3600, this code is in the ballpark of ~34000000 ops/s, but I believe with the various hardware extensions, I could probably go faster than this. However, most of the examples I see for working with this hardware are focused on multiplying very large matrices with hundreds of elements. I feel like maybe in the case of 4x4 matrices, any hardware speedup would be negated by the amount of packing and unpacking required to get from what amounts to a record class containing 16 double fields, to the various vector API types, and back again. Am I wrong about this? I will likely be trying this regardless, but I'm wondering if anyone has an input/experience before I do. -- Mark Raynsford | https://www.io7m.com From lichtenberger.johannes at gmail.com Fri Dec 17 13:02:34 2021 From: lichtenberger.johannes at gmail.com (Johannes Lichtenberger) Date: Fri, 17 Dec 2021 14:02:34 +0100 Subject: Vector API benefits for small matrices/vectors? In-Reply-To: <20211217115823.7bfe35d0@sunflower.int.arc7.info> References: <20211217115823.7bfe35d0@sunflower.int.arc7.info> Message-ID: The question seems to be also interesting in regards to in-memory database systems for query engines and storage engines (for instance the index structure Adaptive Radix Trie or its sibling the Height Optimized Trie HOT). Of course it's only part of the story as the data should be aligned in memory next to each other...). Kind regards Johannes Mark Raynsford schrieb am Fr., 17. Dez. 2021, 12:58: > Hello! > > I'm curious if there are likely to be performance benefits for small > matrices and vectors when using the vector API. I'm intending to try > out the second incubator soon, but I'm unclear on whether the > underlying hardware APIs are really targeted at this kind of work. > > I maintain a small vector algebra package intended for realtime computer > graphics: > > https://github.com/io7m/jtensors > > It's focused on immutable 2-4 element vectors and 3x3 and 4x4 element > matrices, in single and double precision floating point. The code is > mostly generated from a template so that I don't have to write the same > code twice for float/double. A 4x4 matrix multiplication looks like > this: > > https://gist.github.com/io7m/f5453332c6ef268c78db1f81c63f0066 > > On an AMD Ryzen 5 3600, this code is in the ballpark of ~34000000 ops/s, > but I believe with the various hardware extensions, I could probably go > faster than this. However, most of the examples I see for working with > this hardware are focused on multiplying very large matrices with > hundreds of elements. I feel like maybe in the case of 4x4 matrices, > any hardware speedup would be negated by the amount of packing and > unpacking required to get from what amounts to a record class > containing 16 double fields, to the various vector API types, and back > again. Am I wrong about this? > > I will likely be trying this regardless, but I'm wondering if anyone > has an input/experience before I do. > > -- > Mark Raynsford | https://www.io7m.com > From mcimadamore at openjdk.java.net Fri Dec 17 15:29:11 2021 From: mcimadamore at openjdk.java.net (Maurizio Cimadamore) Date: Fri, 17 Dec 2021 15:29:11 GMT Subject: [foreign-jextract] RFR: 8278962: Support for _Bool not working correctly Message-ID: <0gaOR9fW6XSvfM8ft-LsfT5FxIvKCaumRmq-jKaxu80=.31c5f6d5-17ed-4fa3-a8c7-eb75138ea5b6@github.com> TypeTranslator does not deal with _Bool layout correctly. Instead of turning it into the `boolean.class` carrier, it turns it into a `byte.class` carrier. This is caused by the fact that we still have some old logic for deriving carriers from layouts which does not take into account the fact that the carrier is now attached to the layout. Fixing this breaks the macro `ConstantTest` - as one `_Bool` constant is not generated correctly. Again the solution is to take the `_Bool` case into account when reparsing a macro, so that we can generate a macro whose value is a Boolean, not just a numeric value. ------------- Commit messages: - Fix type translator to support _Bool Changes: https://git.openjdk.java.net/panama-foreign/pull/627/files Webrev: https://webrevs.openjdk.java.net/?repo=panama-foreign&pr=627&range=00 Issue: https://bugs.openjdk.java.net/browse/JDK-8278962 Stats: 36 lines in 4 files changed: 8 ins; 18 del; 10 mod Patch: https://git.openjdk.java.net/panama-foreign/pull/627.diff Fetch: git fetch https://git.openjdk.java.net/panama-foreign pull/627/head:pull/627 PR: https://git.openjdk.java.net/panama-foreign/pull/627 From sundar at openjdk.java.net Fri Dec 17 15:29:11 2021 From: sundar at openjdk.java.net (Athijegannathan Sundararajan) Date: Fri, 17 Dec 2021 15:29:11 GMT Subject: [foreign-jextract] RFR: 8278962: Support for _Bool not working correctly In-Reply-To: <0gaOR9fW6XSvfM8ft-LsfT5FxIvKCaumRmq-jKaxu80=.31c5f6d5-17ed-4fa3-a8c7-eb75138ea5b6@github.com> References: <0gaOR9fW6XSvfM8ft-LsfT5FxIvKCaumRmq-jKaxu80=.31c5f6d5-17ed-4fa3-a8c7-eb75138ea5b6@github.com> Message-ID: On Fri, 17 Dec 2021 15:17:53 GMT, Maurizio Cimadamore wrote: > TypeTranslator does not deal with _Bool layout correctly. Instead of turning it into the `boolean.class` carrier, it turns it into a `byte.class` carrier. This is caused by the fact that we still have some old logic for deriving carriers from layouts which does not take into account the fact that the carrier is now attached to the layout. > > Fixing this breaks the macro `ConstantTest` - as one `_Bool` constant is not generated correctly. Again the solution is to take the `_Bool` case into account when reparsing a macro, so that we can generate a macro whose value is a Boolean, not just a numeric value. LGTM ------------- Marked as reviewed by sundar (Committer). PR: https://git.openjdk.java.net/panama-foreign/pull/627 From paul.sandoz at oracle.com Fri Dec 17 17:08:07 2021 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Fri, 17 Dec 2021 17:08:07 +0000 Subject: Vector API benefits for small matrices/vectors? In-Reply-To: <20211217115823.7bfe35d0@sunflower.int.arc7.info> References: <20211217115823.7bfe35d0@sunflower.int.arc7.info> Message-ID: <38FF5FF3-1F9A-4A5F-9BF6-AB3B9D5AD093@oracle.com> Hi Mark, I think your use-case is very relevant to see if the Vector API can be used effectively. In the Matrix4x4D example you mention I think a different layout or access will be required, namely double[] or ByteBuffer holding the 16 elements rather than 16 independent fields, so the values can be loaded into vectors. (Unfortunately that results in a pointer chase, since we cannot fuse such small fixed sized arrays to the enclosing object.) (For off-heap interoperation a MemorySegment is a better alternative, and when Valhalla arrives we anticipate will be better optimized since instances of MS will have no identity.) You might wanna start assuming say AVX2 and a vector size of 256-bits, then after see if it can be generalized. Writing shape (as in vector bit-size) independent code can be tricker, so that experience would be very useful as a further experiment. For, say Matrix4x4D multiplication, it will of require that C2 inline the multiply. We don?t yet have vector calling convention support. Using 17 and the second incubator is a good place to start. It will allow you to slot in an 18-ea or a Panama build if necessary (the API has not changed), since we are making continual improvements to C2. Use-cases are really helpful in that regard. ? My own experience has been around larger matrices: - I have focused on 2D matrices backed by MemorySegment, allowing interoperability with high performance native linear algebra libraries such as BLIS while also supporting panda/numpy-like broadcasting in Java using the Vector API and multiple threads. The combination is quite powerful IMO. - Experimenting with Vector API kernels for gemm, which are surrounded by higher loops doing data movement/packing. Hth, Paul. > On Dec 17, 2021, at 3:58 AM, Mark Raynsford wrote: > > Hello! > > I'm curious if there are likely to be performance benefits for small > matrices and vectors when using the vector API. I'm intending to try > out the second incubator soon, but I'm unclear on whether the > underlying hardware APIs are really targeted at this kind of work. > > I maintain a small vector algebra package intended for realtime computer > graphics: > > https://github.com/io7m/jtensors > > It's focused on immutable 2-4 element vectors and 3x3 and 4x4 element > matrices, in single and double precision floating point. The code is > mostly generated from a template so that I don't have to write the same > code twice for float/double. A 4x4 matrix multiplication looks like > this: > > https://gist.github.com/io7m/f5453332c6ef268c78db1f81c63f0066 > > On an AMD Ryzen 5 3600, this code is in the ballpark of ~34000000 ops/s, > but I believe with the various hardware extensions, I could probably go > faster than this. However, most of the examples I see for working with > this hardware are focused on multiplying very large matrices with > hundreds of elements. I feel like maybe in the case of 4x4 matrices, > any hardware speedup would be negated by the amount of packing and > unpacking required to get from what amounts to a record class > containing 16 double fields, to the various vector API types, and back > again. Am I wrong about this? > > I will likely be trying this regardless, but I'm wondering if anyone > has an input/experience before I do. > > -- > Mark Raynsford | https://www.io7m.com From paul.sandoz at oracle.com Fri Dec 17 17:10:23 2021 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Fri, 17 Dec 2021 17:10:23 +0000 Subject: Vector API benefits for small matrices/vectors? In-Reply-To: References: <20211217115823.7bfe35d0@sunflower.int.arc7.info> Message-ID: Hi Johannes, Yes, that too. Experiments welcome! We proposed compress/expand operations [1] to help in this area, but it missed the deadline for 18, so we will target that for the next incubating JEP. Pau. [1] https://github.com/openjdk/jdk/pull/6545 > On Dec 17, 2021, at 5:02 AM, Johannes Lichtenberger wrote: > > The question seems to be also interesting in regards to in-memory database > systems for query engines and storage engines (for instance the index > structure Adaptive Radix Trie or its sibling the Height Optimized Trie > HOT). Of course it's only part of the story as the data should be aligned > in memory next to each other...). > > Kind regards > Johannes > > Mark Raynsford schrieb am Fr., 17. Dez. 2021, 12:58: > >> Hello! >> >> I'm curious if there are likely to be performance benefits for small >> matrices and vectors when using the vector API. I'm intending to try >> out the second incubator soon, but I'm unclear on whether the >> underlying hardware APIs are really targeted at this kind of work. >> >> I maintain a small vector algebra package intended for realtime computer >> graphics: >> >> https://github.com/io7m/jtensors >> >> It's focused on immutable 2-4 element vectors and 3x3 and 4x4 element >> matrices, in single and double precision floating point. The code is >> mostly generated from a template so that I don't have to write the same >> code twice for float/double. A 4x4 matrix multiplication looks like >> this: >> >> https://gist.github.com/io7m/f5453332c6ef268c78db1f81c63f0066 >> >> On an AMD Ryzen 5 3600, this code is in the ballpark of ~34000000 ops/s, >> but I believe with the various hardware extensions, I could probably go >> faster than this. However, most of the examples I see for working with >> this hardware are focused on multiplying very large matrices with >> hundreds of elements. I feel like maybe in the case of 4x4 matrices, >> any hardware speedup would be negated by the amount of packing and >> unpacking required to get from what amounts to a record class >> containing 16 double fields, to the various vector API types, and back >> again. Am I wrong about this? >> >> I will likely be trying this regardless, but I'm wondering if anyone >> has an input/experience before I do. >> >> -- >> Mark Raynsford | https://www.io7m.com >> From org.openjdk at io7m.com Fri Dec 17 17:30:36 2021 From: org.openjdk at io7m.com (Mark Raynsford) Date: Fri, 17 Dec 2021 17:30:36 +0000 Subject: Vector API benefits for small matrices/vectors? In-Reply-To: <38FF5FF3-1F9A-4A5F-9BF6-AB3B9D5AD093@oracle.com> References: <20211217115823.7bfe35d0@sunflower.int.arc7.info> <38FF5FF3-1F9A-4A5F-9BF6-AB3B9D5AD093@oracle.com> Message-ID: <20211217173036.3ab80355@sunflower.int.arc7.info> Hello! On 2021-12-17T17:08:07 +0000 Paul Sandoz wrote: > Hi Mark, > > I think your use-case is very relevant to see if the Vector API can be used effectively. > > In the Matrix4x4D example you mention I think a different layout or access will be required, namely double[] or ByteBuffer holding the 16 elements rather than 16 independent fields, so the values can be loaded into vectors. Yeah, I thought that might be the case. I've avoided a backing array up until now precisely to avoid that extra pointer. In terms of API, there's also the issue that I'd need to expose the backing array in order to operate on it using the vector API, but arrays are obviously mutable and so users shouldn't have access to it. I think the first step will be to try writing some versions of all of these functions that just mindlessly move the 16 fields to/from a local array in each static method. This will at least tell me if the API *could* be faster even in the presence of all of that extra moving around of data. > You might wanna start assuming say AVX2 and a vector size of 256-bits, then after see if it can be generalized. Writing shape (as in vector bit-size) independent code can be tricker, so that experience would be very useful as a further experiment. > > For, say Matrix4x4D multiplication, it will of require that C2 inline the multiply. We don?t yet have vector calling convention support. For reference, here's what the heavily warmed up C2 code looks like right now, without any use of the vector API: https://gist.github.com/io7m/27de1e5068f953cba228ac3a4323d7ea There appear to be 16 scalar multiplications in there, which is at least better than the 64 multiplications that appear in the original program text. :) > Using 17 and the second incubator is a good place to start. It will allow you to slot in an 18-ea or a Panama build if necessary (the API has not changed), since we are making continual improvements to C2. Use-cases are really helpful in that regard. Right! -- Mark Raynsford | https://www.io7m.com From org.openjdk at io7m.com Fri Dec 17 17:38:54 2021 From: org.openjdk at io7m.com (Mark Raynsford) Date: Fri, 17 Dec 2021 17:38:54 +0000 Subject: Vector API benefits for small matrices/vectors? In-Reply-To: <20211217173036.3ab80355@sunflower.int.arc7.info> References: <20211217115823.7bfe35d0@sunflower.int.arc7.info> <38FF5FF3-1F9A-4A5F-9BF6-AB3B9D5AD093@oracle.com> <20211217173036.3ab80355@sunflower.int.arc7.info> Message-ID: <20211217173854.77491e6b@sunflower.int.arc7.info> On 2021-12-17T17:30:36 +0000 Mark Raynsford wrote: > > https://gist.github.com/io7m/27de1e5068f953cba228ac3a4323d7ea > > There appear to be 16 scalar multiplications in there, which is at > least better than the 64 multiplications that appear in the original > program text. :) Er, make that 33. Not sure where I got 16 from... -- Mark Raynsford | https://www.io7m.com From mail at smogura.eu Fri Dec 17 18:05:10 2021 From: mail at smogura.eu (Rados?aw Smogura) Date: Fri, 17 Dec 2021 18:05:10 +0000 Subject: Gather / starter over Java object Message-ID: Hi all, Not sure if this was proposed already & bit crazy idea. What do you think about gather scatter over arrays of Java objects and fields. Technically it should be possible using double dereference, and fields offsets are constant. Performance maybe will not be highest. Kind regards, Rado From paul.sandoz at oracle.com Fri Dec 17 18:42:46 2021 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Fri, 17 Dec 2021 18:42:46 +0000 Subject: Vector API benefits for small matrices/vectors? In-Reply-To: <20211217173036.3ab80355@sunflower.int.arc7.info> References: <20211217115823.7bfe35d0@sunflower.int.arc7.info> <38FF5FF3-1F9A-4A5F-9BF6-AB3B9D5AD093@oracle.com> <20211217173036.3ab80355@sunflower.int.arc7.info> Message-ID: You could improve the scalar implementation using Math.fma. Hopefully, with a clever arrangement you should be able to use vectorized fmas, similar to a kennel in a linear algebra library e.g. accumulate into 4 vectors representing the resulting rows or columns. Paul. > On Dec 17, 2021, at 9:30 AM, Mark Raynsford wrote: > > Hello! > > On 2021-12-17T17:08:07 +0000 > Paul Sandoz wrote: > >> Hi Mark, >> >> I think your use-case is very relevant to see if the Vector API can be used effectively. >> >> In the Matrix4x4D example you mention I think a different layout or access will be required, namely double[] or ByteBuffer holding the 16 elements rather than 16 independent fields, so the values can be loaded into vectors. > > Yeah, I thought that might be the case. I've avoided a backing array up > until now precisely to avoid that extra pointer. In terms of API, > there's also the issue that I'd need to expose the backing array in > order to operate on it using the vector API, but arrays are obviously > mutable and so users shouldn't have access to it. I think the first > step will be to try writing some versions of all of these functions > that just mindlessly move the 16 fields to/from a local array in each > static method. This will at least tell me if the API *could* be faster > even in the presence of all of that extra moving around of data. > >> You might wanna start assuming say AVX2 and a vector size of 256-bits, then after see if it can be generalized. Writing shape (as in vector bit-size) independent code can be tricker, so that experience would be very useful as a further experiment. >> >> For, say Matrix4x4D multiplication, it will of require that C2 inline the multiply. We don?t yet have vector calling convention support. > > For reference, here's what the heavily warmed up C2 code looks like > right now, without any use of the vector API: > > https://gist.github.com/io7m/27de1e5068f953cba228ac3a4323d7ea > > There appear to be 16 scalar multiplications in there, which is at > least better than the 64 multiplications that appear in the original > program text. :) > >> Using 17 and the second incubator is a good place to start. It will allow you to slot in an 18-ea or a Panama build if necessary (the API has not changed), since we are making continual improvements to C2. Use-cases are really helpful in that regard. > > Right! > > -- > Mark Raynsford | https://www.io7m.com > From mail at smogura.eu Fri Dec 17 20:30:13 2021 From: mail at smogura.eu (Rado Smogura) Date: Fri, 17 Dec 2021 21:30:13 +0100 Subject: unexpected allocation of Binding.Context in downcall method handle Message-ID: Hi all, Sorry if it will not be in thread, but I had to re-register. And thank you for fast response. > Hi, > following the discussion on [1], here is a quick patch which attempts to > remove the additional allocation: > > https://github.com/mcimadamore/jdk/pull/new/avoid_context_alloc > > I'm not able to see any gain using synthetic benchmarks, but perhaps > worth a try to confirm that this is really the issue we're seeing? > > Thanks > Maurizio I think this change could be hard to spot on benchmarks? (on debugger I don't see Binding.Context.ofAllocator called). I guess it's about few hardware instructions. I slightly changed existing benchmark [1] public void setup() { constString =MemorySegment.allocateNative(str.length() +1,ResourceScope.globalScope()); constString.setUtf8String(0,str); } @Benchmark public int panama_strlen_noalloc()throws Throwable { return (int)STRLEN.invokeExact((Addressable)constString); } And results are as follow After Benchmark (size) Mode Cnt Score Error Units StrLenTest.panama_strlen_noalloc 5 avgt 20 12.680 ? 0.451 ns/op StrLenTest.panama_strlen_noalloc 20 avgt 20 12.361 ? 0.026 ns/op StrLenTest.panama_strlen_noalloc 100 avgt 20 12.510 ? 0.168 ns/op Before (3f9638d124076019f49eb77bc3ff8b466e4beb53) Benchmark (size) Mode Cnt Score Error Units StrLenTest.panama_strlen_noalloc 5 avgt 20 12.837 ? 0.515 ns/op StrLenTest.panama_strlen_noalloc 20 avgt 20 12.471 ? 0.129 ns/op StrLenTest.panama_strlen_noalloc 100 avgt 20 12.537 ? 0.395 ns/op Theoretically it's 1% gain, but it's as well can be in error margin. [1] https://github.com/rsmogura/panama-foreign/commit/e10e20f89767747c24f657d2cd5de6b7fc9a934c Kind regards, Rado From mcimadamore at openjdk.java.net Fri Dec 17 22:04:46 2021 From: mcimadamore at openjdk.java.net (Maurizio Cimadamore) Date: Fri, 17 Dec 2021 22:04:46 GMT Subject: [foreign-jextract] Integrated: 8278962: Support for _Bool not working correctly In-Reply-To: <0gaOR9fW6XSvfM8ft-LsfT5FxIvKCaumRmq-jKaxu80=.31c5f6d5-17ed-4fa3-a8c7-eb75138ea5b6@github.com> References: <0gaOR9fW6XSvfM8ft-LsfT5FxIvKCaumRmq-jKaxu80=.31c5f6d5-17ed-4fa3-a8c7-eb75138ea5b6@github.com> Message-ID: On Fri, 17 Dec 2021 15:17:53 GMT, Maurizio Cimadamore wrote: > TypeTranslator does not deal with _Bool layout correctly. Instead of turning it into the `boolean.class` carrier, it turns it into a `byte.class` carrier. This is caused by the fact that we still have some old logic for deriving carriers from layouts which does not take into account the fact that the carrier is now attached to the layout. > > Fixing this breaks the macro `ConstantTest` - as one `_Bool` constant is not generated correctly. Again the solution is to take the `_Bool` case into account when reparsing a macro, so that we can generate a macro whose value is a Boolean, not just a numeric value. This pull request has now been integrated. Changeset: f05c2ffc Author: Maurizio Cimadamore URL: https://git.openjdk.java.net/panama-foreign/commit/f05c2ffce095f564ad47ed58486ad6963a8f3773 Stats: 36 lines in 4 files changed: 8 ins; 18 del; 10 mod 8278962: Support for _Bool not working correctly Reviewed-by: sundar ------------- PR: https://git.openjdk.java.net/panama-foreign/pull/627 From maurizio.cimadamore at oracle.com Fri Dec 17 22:11:36 2021 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Fri, 17 Dec 2021 22:11:36 +0000 Subject: Gather / starter over Java object In-Reply-To: References: Message-ID: I guess you mean: let's say you have an array of Person instances, where each Person has a field "age" (of type `int`). Collect all the ages values into an array? Is this what you have in mind? Maurizio On 17/12/2021 18:05, Rados?aw Smogura wrote: > Hi all, > > Not sure if this was proposed already & bit crazy idea. > > What do you think about gather scatter over arrays of Java objects and fields. Technically it should be possible using double dereference, and fields offsets are constant. > > Performance maybe will not be highest. > > Kind regards, > Rado From maurizio.cimadamore at oracle.com Fri Dec 17 22:17:24 2021 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Fri, 17 Dec 2021 22:17:24 +0000 Subject: unexpected allocation of Binding.Context in downcall method handle In-Reply-To: References: Message-ID: <532b706f-7610-49de-36cb-2168fad887c5@oracle.com> Hi Rado, honestly this seems to be in the noise. I did some more experiments and it seems that, while the implementation is not optimal, EA kicks when we create an unused Binding.Context, which makes it harder to spot differences. I think this code will likely change significantly as part of: https://bugs.openjdk.java.net/browse/JDK-8278414 So we can probably make sure to avoid a context allocation as much as possible when we rewrite things. Yesterday I did another pass on the code and I was reminded that there are actually two contexts - one is the one used by the caller - which is used e.g. to allocate a return struct. The other is an internal context which is used to allocate intermediate data during the upcall. The extra allocation removed in my patch actually refers to the former, and not the latter (as I originally suggested). Maurizio On 17/12/2021 20:30, Rado Smogura wrote: > Hi all, > > > Sorry if it will not be in thread, but I had to re-register. And thank > you for fast response. > >> Hi, >> following the discussion on [1], here is a quick patch which attempts to >> remove the additional allocation: >> >> https://github.com/mcimadamore/jdk/pull/new/avoid_context_alloc >> >> I'm not able to see any gain using synthetic benchmarks, but perhaps >> worth a try to confirm that this is really the issue we're seeing? >> >> Thanks >> Maurizio > I think this change could be hard to spot on benchmarks? (on debugger > I don't see Binding.Context.ofAllocator called). I guess it's about > few hardware instructions. > > I slightly changed existing benchmark [1] > > public void setup() { > ??? constString =MemorySegment.allocateNative(str.length() > +1,ResourceScope.globalScope()); > ??? constString.setUtf8String(0,str); > } > > @Benchmark public int panama_strlen_noalloc()throws Throwable { > ??? return (int)STRLEN.invokeExact((Addressable)constString); > } > > And results are as follow > > After > Benchmark???????????????????????? (size)? Mode? Cnt?? Score Error? Units > StrLenTest.panama_strlen_noalloc?????? 5? avgt?? 20? 12.680 ? 0.451? > ns/op > StrLenTest.panama_strlen_noalloc????? 20? avgt?? 20? 12.361 ? 0.026? > ns/op > StrLenTest.panama_strlen_noalloc???? 100? avgt?? 20? 12.510 ? 0.168? > ns/op > > > Before (3f9638d124076019f49eb77bc3ff8b466e4beb53) > > Benchmark???????????????????????? (size)? Mode? Cnt?? Score Error? Units > StrLenTest.panama_strlen_noalloc?????? 5? avgt?? 20? 12.837 ? 0.515? > ns/op > StrLenTest.panama_strlen_noalloc????? 20? avgt?? 20? 12.471 ? 0.129? > ns/op > StrLenTest.panama_strlen_noalloc???? 100? avgt?? 20? 12.537 ? 0.395? > ns/op > > Theoretically it's 1% gain, but it's as well can be in error margin. > > [1] > https://github.com/rsmogura/panama-foreign/commit/e10e20f89767747c24f657d2cd5de6b7fc9a934c > > Kind regards, > Rado > From mail at smogura.eu Fri Dec 17 22:32:20 2021 From: mail at smogura.eu (Rado Smogura) Date: Fri, 17 Dec 2021 23:32:20 +0100 Subject: Gather / starter over Java object In-Reply-To: References: Message-ID: Hi, Let's assume we have array of Persons. Load array into vector, add fields offsets + start of heap, and execute final SIMD gather to have ages in vector. (With compressed oops, object address is like index of array starting at the beginning of heap) Just a loose idea. Kind regards, Rado On 17.12.2021 23:11, Maurizio Cimadamore wrote: > I guess you mean: let's say you have an array of Person instances, > where each Person has a field "age" (of type `int`). > > Collect all the ages values into an array? Is this what you have in mind? > > Maurizio > > > On 17/12/2021 18:05, Rados?aw Smogura wrote: >> Hi all, >> >> Not sure if this was proposed already & bit crazy idea. >> >> What do you think about gather scatter over arrays of Java objects >> and fields. Technically it should be possible using double >> dereference, and fields offsets are constant. >> >> Performance maybe will not be highest. >> >> Kind regards, >> Rado From anhmdq at gmail.com Mon Dec 20 07:21:15 2021 From: anhmdq at gmail.com (=?UTF-8?Q?Qu=C3=A2n_Anh_Mai?=) Date: Mon, 20 Dec 2021 14:21:15 +0700 Subject: Exposing concrete types of segments and addresses Message-ID: Hi, Currently, we can only access MemorySegments and MemoryAddresses through the respective interface. While this provides a nice interface for all kinds of memory segments, the lack of ability to use the concrete types leads to a lot of performance caveats. Firstly, polymorphism disables scalarization. While a non-escaped object can be scalarized in most cases, there are still circumstances that scalar replacement fails (e.g when we want to continuously slice a segment in a loop). Furthermore, this makes us become dependent on the inlining ability of the compiler, which is unpredictable and limits the use of segments and addresses for desired performance. On the other hand, scalarization of polymorphic types in fields and calling convention seems to be really really complicated. With primitive classes, we could make the performance of foreign API become much more predictable with the elimination of allocations as well as pointer chasings where we can and want to limit the kind of segment we operate on. The above caveats lead to possible usage of foreign API to pass around the naked addresses as long values and only construct segments where it is needed. This approach, while being an ugly hack, is still not ideal cause multiple methods may fail to be inlined. Secondly, polymorphism limits specialisation. With JEP 218, we may have multiple specialisations of the same methods operating on different kinds of segments. While it is still possible, to some extent, to have specialisation with a polymorphic type MemorySegment, it would likely be a fragile optimisation that relies on inlining and a lot of type checks. Furthermore, while having common aspects, MemorySegments expose different behaviours on the others. E.g. HeapMemorySegment is not Addressable, MappedMemorySegment has various additional specific methods. While this is not an argument for the design of foreign API, it is a small bonus point over those above. Overall, the current status of foreign API seems to put us in a position that relies too much on the compiler to get the desired performance. Exposing the concrete types would enable us to write more predictable codes where it needs to and flexible code (i.e using polymorphic MemotySegment, MemoryAddress, etc) where it is more desirable. My apologies if this question has been addressed before. Thank you very much. Quan Anh From maurizio.cimadamore at oracle.com Mon Dec 20 22:29:38 2021 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Mon, 20 Dec 2021 22:29:38 +0000 Subject: Exposing concrete types of segments and addresses In-Reply-To: References: Message-ID: Hi, thanks for your email. This is a really tricky area, where no optimal solution exists yet. First, we have recently spotted an issue with escape analysis not working correctly with memory segments - for this I filed the issue: https://bugs.openjdk.java.net/browse/JDK-8278429 Which has been closed as a duplicate of another VM bug which is being worked on. I believe that fix should generally improve all scenario where there is a bottleneck due to failure of scalarization when creating new segments (e.g. slicing). That said, this does not address your fundamental point that, at the end of the day, some of these optimizations depend on the ability of C2 to inline through code (but this is also true for the ByteBuffer API). The ultimate solution would be IMHO to make memory segment _less_ polymorphic, by having a single implementation class which then delegates its memory access behavior to a secondary abstraction (which could be a constant, based on the access type: on-heap, or off-heap). If we did that, a memory segment would become a dumb wrapper around a base object, a length and some (constant) access object helper. Unfortunately this solution (which we have tried) doesn't work - because Unsafe memory access needs to know whether access is going to be on- or off-heap (in order to remove important memory barriers). Currently this is done with the help of type profiling: if we are accessing memory on a type that C2 can prove to be "NativeMemorySegmentImpl", then C2 also knows that access is going to be off-heap - and unsafe access is fast. To have profiling working correctly we need one concrete segment type for each possible access type (native, mapped, and one for each primitive on-heap array). But if there's only one concrete type, there's no type profiling to go on, so we gain monomorphism, but we lose (very badly) when it comes to profile pollution exposure. To fix this, we need better ways to do type profiling (based not only on receiver/parameter types, but maybe the type of some fields in an instance). Now, in the current implementation we can hide the polymorphism, pretty much like ByteBuffer does, under a common interface. Exposing concrete types as you suggest is going to be painful - as users will see another 9 more segment types (7 primitive arrays, + mapped + native), which would increase the size of the API quite considerably. Maybe some intermediate point might also be useful to consider (e.g. perhaps only two types - for native segments and heap segments, but do not differentiate between mapped/native or between byte[] and long[] in the public API). But we need to conder any such moves very carefully: while we can add these types very easily in the future, if it proves to be the only possible path (e.g. even after Valhalla) in order to use memory segments sanely, the reverse is not true: if we add these new types now, and later on we discover these new types to be superseded by some new VM optimization, or better support thanks to Valhalla, we'd be stuck with these types for a long time. I think at this point in time we'd like to know where the performance potholes are - so if you happen to have a benchmark which shows the problem you discussed, we'd be very happy to take a look. Our experience so far seems to suggest that performance is acceptable - even in cases where segments are created in very hot paths (we do have a spliterator test which indundates the system with slices - and that doesn't seem to perform too bad). At the same time, I can believe you when you say that some of the optimizations we might rely upon are fraglie (I've been there when using the API on my own, so the mileage of certain idioms can vary). Unfortunately this is a bigger problem IMHO than just MemorySegments: currently writing immutable APIs in Java can lead to spotty performance. The hope is that Valhalla will give us tools to help us manage that kind of complexity - but even then, some of the optimizations (e.g. scalarization) might be gated by excessive polymorphism and/or lack of inlining. If we can improve the VM enough to do the type profiling we need to keep unsafe access sharp even in the face of a "monomorphic" implementation, then I believe the current API could take advantage of Valhalla in a more straightfoward fashion (and we could, in the future, add Valhalla optimizations to special case treatment for sealed interfaces whose only implementation is a primitive class). [Btw, this discussion is really about MemorySegment - for MemoryAddress, in my own experiments I could already see Valhalla making quick work of all the address instantiations - as MemoryAddressImpl is the only implementation of MemoryAddress]. Maurizio On 20/12/2021 07:21, Qu?n Anh Mai wrote: > Hi, > > Currently, we can only access MemorySegments and MemoryAddresses through > the respective interface. While this provides a nice interface for all > kinds of memory segments, the lack of ability to use the concrete types > leads to a lot of performance caveats. > > Firstly, polymorphism disables scalarization. While a non-escaped object > can be scalarized in most cases, there are still circumstances that scalar > replacement fails (e.g when we want to continuously slice a segment in a > loop). Furthermore, this makes us become dependent on the inlining ability > of the compiler, which is unpredictable and limits the use of segments and > addresses for desired performance. On the other hand, scalarization of > polymorphic types in fields and calling convention seems to be really > really complicated. With primitive classes, we could make the performance > of foreign API become much more predictable with the elimination of > allocations as well as pointer chasings where we can and want to limit the > kind of segment we operate on. > > The above caveats lead to possible usage of foreign API to pass around the > naked addresses as long values and only construct segments where it is > needed. This approach, while being an ugly hack, is still not ideal cause > multiple methods may fail to be inlined. > > Secondly, polymorphism limits specialisation. With JEP 218, we may have > multiple specialisations of the same methods operating on different kinds > of segments. While it is still possible, to some extent, to have > specialisation with a polymorphic type MemorySegment, it would likely be a > fragile optimisation that relies on inlining and a lot of type checks. > > Furthermore, while having common aspects, MemorySegments expose different > behaviours on the others. E.g. HeapMemorySegment is not Addressable, > MappedMemorySegment has various additional specific methods. While this is > not an argument for the design of foreign API, it is a small bonus point > over those above. > > Overall, the current status of foreign API seems to put us in a position > that relies too much on the compiler to get the desired performance. > Exposing the concrete types would enable us to write more predictable codes > where it needs to and flexible code (i.e using polymorphic MemotySegment, > MemoryAddress, etc) where it is more desirable. > > My apologies if this question has been addressed before. Thank you very > much. > Quan Anh From anhmdq at gmail.com Tue Dec 21 14:51:34 2021 From: anhmdq at gmail.com (=?UTF-8?Q?Qu=C3=A2n_Anh_Mai?=) Date: Tue, 21 Dec 2021 21:51:34 +0700 Subject: Exposing concrete types of segments and addresses In-Reply-To: References: Message-ID: Thank you very much for the detailed explanation, I agree that we need to be patient as adding more types to the API is easier than removing those. I can imagine that later on, we can expose only HeapMemorySegment, NativeMemorySegment and MappedMemorySegment if it is forced to do so. Regarding a non-optimal circumstance, I discovered an interesting case where I want to read a long value from a byte array given the read bytes might be less than 8. The benchmark is as follow: @Benchmark public long read() { int length = this.length; var segment = MemorySegment.ofArray(this.array); long result = 0; long offset = this.offset; if ((length & Byte.BYTES) != 0) { result = Byte.toUnsignedLong(segment.get(ValueLayout.JAVA_BYTE, offset)); offset += Byte.BYTES; } if ((length & Short.BYTES) != 0) { result = (result << Short.SIZE) | Short.toUnsignedLong(segment.get(ValueLayout.JAVA_SHORT, offset)); offset += Short.BYTES; } if ((length & Integer.BYTES) != 0) { result = (result << Integer.SIZE) | Integer.toUnsignedLong(segment.get(ValueLayout.JAVA_INT, offset)); } return result; } Running with a fairly recent revision of openjdk/jdk (the difference is 12 commits as of right now, which means the running JVM contains the fix for your mentioned bug already), the generated assembly seems to be not optimal, with the segment failing to be scalarized. Regards, Quan Anh On Tue, 21 Dec 2021 at 05:29, Maurizio Cimadamore < maurizio.cimadamore at oracle.com> wrote: > Hi, > thanks for your email. This is a really tricky area, where no optimal > solution exists yet. > > First, we have recently spotted an issue with escape analysis not > working correctly with memory segments - for this I filed the issue: > > https://bugs.openjdk.java.net/browse/JDK-8278429 > > Which has been closed as a duplicate of another VM bug which is being > worked on. I believe that fix should generally improve all scenario > where there is a bottleneck due to failure of scalarization when > creating new segments (e.g. slicing). > > That said, this does not address your fundamental point that, at the end > of the day, some of these optimizations depend on the ability of C2 to > inline through code (but this is also true for the ByteBuffer API). > > The ultimate solution would be IMHO to make memory segment _less_ > polymorphic, by having a single implementation class which then > delegates its memory access behavior to a secondary abstraction (which > could be a constant, based on the access type: on-heap, or off-heap). > > If we did that, a memory segment would become a dumb wrapper around a > base object, a length and some (constant) access object helper. > > Unfortunately this solution (which we have tried) doesn't work - because > Unsafe memory access needs to know whether access is going to be on- or > off-heap (in order to remove important memory barriers). Currently this > is done with the help of type profiling: if we are accessing memory on a > type that C2 can prove to be "NativeMemorySegmentImpl", then C2 also > knows that access is going to be off-heap - and unsafe access is fast. > To have profiling working correctly we need one concrete segment type > for each possible access type (native, mapped, and one for each > primitive on-heap array). But if there's only one concrete type, there's > no type profiling to go on, so we gain monomorphism, but we lose (very > badly) when it comes to profile pollution exposure. To fix this, we need > better ways to do type profiling (based not only on receiver/parameter > types, but maybe the type of some fields in an instance). > > Now, in the current implementation we can hide the polymorphism, pretty > much like ByteBuffer does, under a common interface. Exposing concrete > types as you suggest is going to be painful - as users will see another > 9 more segment types (7 primitive arrays, + mapped + native), which > would increase the size of the API quite considerably. Maybe some > intermediate point might also be useful to consider (e.g. perhaps only > two types - for native segments and heap segments, but do not > differentiate between mapped/native or between byte[] and long[] in the > public API). But we need to conder any such moves very carefully: while > we can add these types very easily in the future, if it proves to be the > only possible path (e.g. even after Valhalla) in order to use memory > segments sanely, the reverse is not true: if we add these new types now, > and later on we discover these new types to be superseded by some new VM > optimization, or better support thanks to Valhalla, we'd be stuck with > these types for a long time. > > I think at this point in time we'd like to know where the performance > potholes are - so if you happen to have a benchmark which shows the > problem you discussed, we'd be very happy to take a look. Our experience > so far seems to suggest that performance is acceptable - even in cases > where segments are created in very hot paths (we do have a spliterator > test which indundates the system with slices - and that doesn't seem to > perform too bad). At the same time, I can believe you when you say that > some of the optimizations we might rely upon are fraglie (I've been > there when using the API on my own, so the mileage of certain idioms can > vary). > > Unfortunately this is a bigger problem IMHO than just MemorySegments: > currently writing immutable APIs in Java can lead to spotty performance. > The hope is that Valhalla will give us tools to help us manage that kind > of complexity - but even then, some of the optimizations (e.g. > scalarization) might be gated by excessive polymorphism and/or lack of > inlining. If we can improve the VM enough to do the type profiling we > need to keep unsafe access sharp even in the face of a "monomorphic" > implementation, then I believe the current API could take advantage of > Valhalla in a more straightfoward fashion (and we could, in the future, > add Valhalla optimizations to special case treatment for sealed > interfaces whose only implementation is a primitive class). > > [Btw, this discussion is really about MemorySegment - for MemoryAddress, > in my own experiments I could already see Valhalla making quick work of > all the address instantiations - as MemoryAddressImpl is the only > implementation of MemoryAddress]. > > Maurizio > > > On 20/12/2021 07:21, Qu?n Anh Mai wrote: > > Hi, > > > > Currently, we can only access MemorySegments and MemoryAddresses through > > the respective interface. While this provides a nice interface for all > > kinds of memory segments, the lack of ability to use the concrete types > > leads to a lot of performance caveats. > > > > Firstly, polymorphism disables scalarization. While a non-escaped object > > can be scalarized in most cases, there are still circumstances that > scalar > > replacement fails (e.g when we want to continuously slice a segment in a > > loop). Furthermore, this makes us become dependent on the inlining > ability > > of the compiler, which is unpredictable and limits the use of segments > and > > addresses for desired performance. On the other hand, scalarization of > > polymorphic types in fields and calling convention seems to be really > > really complicated. With primitive classes, we could make the performance > > of foreign API become much more predictable with the elimination of > > allocations as well as pointer chasings where we can and want to limit > the > > kind of segment we operate on. > > > > The above caveats lead to possible usage of foreign API to pass around > the > > naked addresses as long values and only construct segments where it is > > needed. This approach, while being an ugly hack, is still not ideal cause > > multiple methods may fail to be inlined. > > > > Secondly, polymorphism limits specialisation. With JEP 218, we may have > > multiple specialisations of the same methods operating on different kinds > > of segments. While it is still possible, to some extent, to have > > specialisation with a polymorphic type MemorySegment, it would likely be > a > > fragile optimisation that relies on inlining and a lot of type checks. > > > > Furthermore, while having common aspects, MemorySegments expose different > > behaviours on the others. E.g. HeapMemorySegment is not Addressable, > > MappedMemorySegment has various additional specific methods. While this > is > > not an argument for the design of foreign API, it is a small bonus point > > over those above. > > > > Overall, the current status of foreign API seems to put us in a position > > that relies too much on the compiler to get the desired performance. > > Exposing the concrete types would enable us to write more predictable > codes > > where it needs to and flexible code (i.e using polymorphic MemotySegment, > > MemoryAddress, etc) where it is more desirable. > > > > My apologies if this question has been addressed before. Thank you very > > much. > > Quan Anh > From maurizio.cimadamore at oracle.com Tue Dec 21 22:25:23 2021 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Tue, 21 Dec 2021 22:25:23 +0000 Subject: Exposing concrete types of segments and addresses In-Reply-To: References: Message-ID: <933ace49-f0a7-5664-57e5-6df98c99a773@oracle.com> Hi, I tried your benchmark - I had to fill in some gaps - so I came up with the following enclosing class, which might or might not be the similar to the one you are playing with: ``` public class TestRead { ??? byte[] array = new byte[1024]; ??? int length = 7; // worst case? ??? int offset = 16; ??? @Benchmark ??? public long read()? { ??????? ... ??? } } ``` I then run the benchmark with "-prof gc" and the allocation rate seems very low for the warmup iterations and the first few iteration (0.270Mb/sec), then it drops to zero on subsequent iterations. It seems to me that (with all usual caveats of this being only a synthetic benchmark), this one is working relatively well? Here are the results I got: ``` Benchmark????????????????????????? Mode? Cnt? Score?? Error Units TestRead.read????????????????????? avgt?? 30? 4.687 ? 0.120 ns/op TestRead.read:?gc.alloc.rate?????? avgt?? 30? 0.110 ? 0.091 MB/sec TestRead.read:?gc.alloc.rate.norm? avgt?? 30? 0.001 ? 0.001 B/op TestRead.read:?gc.count??????????? avgt?? 30??? ? 0 counts ``` Here the gc seems to not run at all, and the overall allocation rate is very very low (this is probably obtained combining the low allocation rate in the first few iterations with the non-existent allocation rate of the last few iterations). I'm sure I'm probably not replicating your benchmark correctly (I tried with different values of "length" to make the code take different branches, to no avail) - if I am, what I see doesn't seem to suggest that GC is acting as a bottleneck here? Cheers Maurizio On 21/12/2021 14:51, Qu?n Anh Mai wrote: > Thank you very much for the detailed explanation, I agree that we need > to be patient as adding more types to the API is easier than removing > those. I can imagine that later on, we can expose only > HeapMemorySegment, NativeMemorySegment and MappedMemorySegment if > it is forced to do so. > > Regarding a non-optimal circumstance, I discovered an interesting case > where I want to read a long value from a byte array given the read > bytes might be less than 8. The benchmark is as follow: > > ? ? @Benchmark > ? ? public long read()? { > ? ? ? ? int length = this.length; > ? ? ? ? var segment = MemorySegment.ofArray(this.array); > ? ? ? ? long result = 0; > ? ? ? ? long offset = this.offset; > ? ? ? ? if ((length & Byte.BYTES) != 0) { > ? ? ? ? ? ? result = > Byte.toUnsignedLong(segment.get(ValueLayout.JAVA_BYTE, offset)); > ? ? ? ? ? ? offset += Byte.BYTES; > ? ? ? ? } > ? ? ? ? if ((length & Short.BYTES) != 0) { > ? ? ? ? ? ? result = (result << Short.SIZE) | > Short.toUnsignedLong(segment.get(ValueLayout.JAVA_SHORT, offset)); > ? ? ? ? ? ? offset += Short.BYTES; > ? ? ? ? } > ? ? ? ? if ((length & Integer.BYTES) != 0) { > ? ? ? ? ? ? result = (result << Integer.SIZE) | > Integer.toUnsignedLong(segment.get(ValueLayout.JAVA_INT, offset)); > ? ? ? ? } > ? ? ? ? return result; > ? ? } > > Running with a fairly recent revision?of openjdk/jdk (the difference > is 12 commits as of right now, which means the running JVM contains > the fix for your mentioned bug already), the generated assembly seems > to be not optimal, with the segment failing to be scalarized. > > Regards, > Quan Anh > > On Tue, 21 Dec 2021 at 05:29, Maurizio Cimadamore > > wrote: > > Hi, > thanks for your email. This is a really tricky area, where no optimal > solution exists yet. > > First, we have recently spotted an issue with escape analysis not > working correctly with memory segments - for this I filed the issue: > > https://bugs.openjdk.java.net/browse/JDK-8278429 > > > Which has been closed as a duplicate of another VM bug which is being > worked on. I believe that fix should generally improve all scenario > where there is a bottleneck due to failure of scalarization when > creating new segments (e.g. slicing). > > That said, this does not address your fundamental point that, at > the end > of the day, some of these optimizations depend on the ability of > C2 to > inline through code (but this is also true for the ByteBuffer API). > > The ultimate solution would be IMHO to make memory segment _less_ > polymorphic, by having a single implementation class which then > delegates its memory access behavior to a secondary abstraction > (which > could be a constant, based on the access type: on-heap, or off-heap). > > If we did that, a memory segment would become a dumb wrapper around a > base object, a length and some (constant) access object helper. > > Unfortunately this solution (which we have tried) doesn't work - > because > Unsafe memory access needs to know whether access is going to be > on- or > off-heap (in order to remove important memory barriers). Currently > this > is done with the help of type profiling: if we are accessing > memory on a > type that C2 can prove to be "NativeMemorySegmentImpl", then C2 also > knows that access is going to be off-heap - and unsafe access is > fast. > To have profiling working correctly we need one concrete segment type > for each possible access type (native, mapped, and one for each > primitive on-heap array). But if there's only one concrete type, > there's > no type profiling to go on, so we gain monomorphism, but we lose > (very > badly) when it comes to profile pollution exposure. To fix this, > we need > better ways to do type profiling (based not only on > receiver/parameter > types, but maybe the type of some fields in an instance). > > Now, in the current implementation we can hide the polymorphism, > pretty > much like ByteBuffer does, under a common interface. Exposing > concrete > types as you suggest is going to be painful - as users will see > another > 9 more segment types (7 primitive arrays, + mapped + native), which > would increase the size of the API quite considerably. Maybe some > intermediate point might also be useful to consider (e.g. perhaps > only > two types - for native segments and heap segments, but do not > differentiate between mapped/native or between byte[] and long[] > in the > public API). But we need to conder any such moves very carefully: > while > we can add these types very easily in the future, if it proves to > be the > only possible path (e.g. even after Valhalla) in order to use memory > segments sanely, the reverse is not true: if we add these new > types now, > and later on we discover these new types to be superseded by some > new VM > optimization, or better support thanks to Valhalla, we'd be stuck > with > these types for a long time. > > I think at this point in time we'd like to know where the performance > potholes are - so if you happen to have a benchmark which shows the > problem you discussed, we'd be very happy to take a look. Our > experience > so far seems to suggest that performance is acceptable - even in > cases > where segments are created in very hot paths (we do have a > spliterator > test which indundates the system with slices - and that doesn't > seem to > perform too bad). At the same time, I can believe you when you say > that > some of the optimizations we might rely upon are fraglie (I've been > there when using the API on my own, so the mileage of certain > idioms can > vary). > > Unfortunately this is a bigger problem IMHO than just MemorySegments: > currently writing immutable APIs in Java can lead to spotty > performance. > The hope is that Valhalla will give us tools to help us manage > that kind > of complexity - but even then, some of the optimizations (e.g. > scalarization) might be gated by excessive polymorphism and/or > lack of > inlining. If we can improve the VM enough to do the type profiling we > need to keep unsafe access sharp even in the face of a "monomorphic" > implementation, then I believe the current API could take > advantage of > Valhalla in a more straightfoward fashion (and we could, in the > future, > add Valhalla optimizations to special case treatment for sealed > interfaces whose only implementation is a primitive class). > > [Btw, this discussion is really about MemorySegment - for > MemoryAddress, > in my own experiments I could already see Valhalla making quick > work of > all the address instantiations - as MemoryAddressImpl is the only > implementation of MemoryAddress]. > > Maurizio > > > On 20/12/2021 07:21, Qu?n Anh Mai wrote: > > Hi, > > > > Currently, we can only access MemorySegments and MemoryAddresses > through > > the respective interface. While this provides a nice interface > for all > > kinds of memory segments, the lack of ability to use the > concrete types > > leads to a lot of performance caveats. > > > > Firstly, polymorphism disables scalarization. While a > non-escaped object > > can be scalarized in most cases, there are still circumstances > that scalar > > replacement fails (e.g when we want to continuously slice a > segment in a > > loop). Furthermore, this makes us become dependent on the > inlining ability > > of the compiler, which is unpredictable and limits the use of > segments and > > addresses for desired performance. On the other hand, > scalarization of > > polymorphic types in fields and calling convention seems to be > really > > really complicated. With primitive classes, we could make the > performance > > of foreign API become much more predictable with the elimination of > > allocations as well as pointer chasings where we can and want to > limit the > > kind of segment we operate on. > > > > The above caveats lead to possible usage of foreign API to pass > around the > > naked addresses as long values and only construct segments where > it is > > needed. This approach, while being an ugly hack, is still not > ideal cause > > multiple methods may fail to be inlined. > > > > Secondly, polymorphism limits specialisation. With JEP 218, we > may have > > multiple specialisations of the same methods operating on > different kinds > > of segments. While it is still possible, to some extent, to have > > specialisation with a polymorphic type MemorySegment, it would > likely be a > > fragile optimisation that relies on inlining and a lot of type > checks. > > > > Furthermore, while having common aspects, MemorySegments expose > different > > behaviours on the others. E.g. HeapMemorySegment is not Addressable, > > MappedMemorySegment has various additional specific methods. > While this is > > not an argument for the design of foreign API, it is a small > bonus point > > over those above. > > > > Overall, the current status of foreign API seems to put us in a > position > > that relies too much on the compiler to get the desired performance. > > Exposing the concrete types would enable us to write more > predictable codes > > where it needs to and flexible code (i.e using polymorphic > MemotySegment, > > MemoryAddress, etc) where it is more desirable. > > > > My apologies if this question has been addressed before. Thank > you very > > much. > > Quan Anh > From chegar999 at gmail.com Wed Dec 22 09:19:40 2021 From: chegar999 at gmail.com (Chris Hegarty) Date: Wed, 22 Dec 2021 09:19:40 +0000 Subject: Some scattered feedback on the Foreign Linker API Message-ID: <114852d1-e47e-8af9-0099-8ab7dab22bdc@gmail.com> Hi, As part of a recent prototyping effort, we evaluated replacing the usage of JNA in the core of the Elasticsearch server with the incubating Foreign Linker API. TL;DR things just worked, perf improved, and we really like the restricted native access. Our usage (at least in this particular case) is not really performance sensitive, in that we reach into native to setup syscall filtering and check resource limits - but hey, faster is always better! We measured approximate perf improvements between 8 and 20 times faster for simple downcalls. The reason the numbers vary so much is more to do with JNA rather than Panama, since the Panama times from run to run were consistent, while the times measured with JNA varied quite a bit - which we observed on several different platforms but did not investigate further. While the aforementioned effort did not focus on a particularly performance sensitive area of code, there are other areas of the server that do reach into native, and are more performance sensitive. Our intuition is that they would benefit from using the Linker API too - an experiment yet to be done, but given the potential perf improvement we observed above, an experiment we are excited and motivated to do. I?m not particularly familiar with JNA, so this effort was also a earning exercise for me. What struck me was that with JNA things work with minimal fuss. That is to say that JNA would appear to be a higher-level API that hides much of the detail, detail which you need to concern yourself with when using Panama?s Linker API. I found this ok, and the eventual end result in terms of the consuming code was reasonably similar to that of JNA, but with Panama much more ?glue? code was needed - which we generated with jextract. This is not a problem per se, but an observation that was glaring when comparing the the two implementations. JNA ?hides? the much of the detail from the developer. We love restricted native access. We?re currently modularizing the core of the Elasticsearch server, and the ability to restrict native access to just a couple of these modules is a big positive. This allows to improve security and integrity of the system, e.g. custom server plugins cannot just use JNA from the classpath. All without resorting to playing tricks with classloaders in an attempt to "hide" JNA. We can restrict native access to just the ES modules that require it - all other parts of the system will be disallowed (irrespective of security manager). We believe that the model of protecting sensitive operations behind module boundaries with caller-sensitive access checks upon invocation is the right model. The mechanics of this could be improved or built upon through additional module support, like say the ability for module descriptors to carry information about which other modules require, or are allowed to perform, restricted access operations. And additional consistency checks akin to the tying of a set of modules with hashes, to offer further protection beyond the module name itself. -Chris. From carl.dea at gmail.com Wed Dec 22 04:06:32 2021 From: carl.dea at gmail.com (carl dea) Date: Tue, 21 Dec 2021 23:06:32 -0500 Subject: Calling the Port Audio C API via Panama FFI APIs Message-ID: Hello friends of JEP 412, I hope I'm not being too forward, but I would love it if I could get a second opinion of my *port* of an example from the folks from the PortAudio C API project using Project Panama's FFI APIs. I created the project called *portaudio4j* to simply port their first example called *examples/paex_saw.c*. https://github.com/carldea/portaudio4j *My version:* https://github.com/carldea/portaudio4j/blob/main/src/PaexSaw.java *(Their version) Port Audio C API 's beginner example paex_saw.c is here:* https://github.com/PortAudio/portaudio/blob/master/examples/paex_saw.c *The Problem (Issue)* For some reason the C version (*paex_saw.c*) of the example compared to the Panama example (*PaexSaw.java*) doesn't sound the same. Sometimes it's too loud as if something isn't cleaning up from the prior run. The only thing I've changed afaik is the SAMPLE_RATE, because it's so frighteningly loud. Maybe I'm not properly doing pointer arithmetic. Or something I'm doing that is overly expensive (operation wise) when accessing a MemoryAddress/MemorySegment. So, I thought I'd reach out to those who might be able to shed some light on the issues I'm running into. *Why did I choose this C library?* -------------------------------- It is a relatively simple and small example that can exercise most aspects of Panama (downcall, upcall, typedef void variables, handles, pointers, structs, etc.) Everyone has a speaker and mic, so it would be a nice way to use the library for all OSes. Of course if there's a way I can pinpoint the cause, I'd be happy to report the bug so we can keep an eye on it. Also, it might be a good example to add to Sundar's examples here: https://github.com/sundararajana/panama-jextract-samples. Thank you, Happy holidays! Carl -- *Carl Dea* Sr. Developer Advocate @Azul Systems Email: carldea at gmail.com Website: https://carlfx.wordpress.com Twitter: @carldea From maurizio.cimadamore at oracle.com Wed Dec 22 22:18:49 2021 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Wed, 22 Dec 2021 22:18:49 +0000 Subject: Calling the Port Audio C API via Panama FFI APIs In-Reply-To: References: Message-ID: <17c3765d-bce3-c894-c2b8-41f80c1389d1@oracle.com> Hi Carl, I can't test this right now, but after having a brief look at your code, few things jumped to mind: 1. you don't seem to be doing anything really expensive, enough to cause the program to misbehave. The most expensive operation is probably the shared scope closure, but that happens when bringing things down (so it's immaterial). 2. You are not using a recent Panama build (I see the MemoryAccess static methods are used). I think few issues with upcalls have been fixed - might be worth to give latest Panama a try. 3. I see a call to PaSleep. Now, while that _shouldn't_ cause issue, I wonder if putting your thread to sleep in native-land instead of Java land might cause issues. 4. On a very quick look, the pointer arithmetic in the upcall seems fine That's all I have for now, sorry! Cheers Maurizio On 22/12/2021 04:06, carl dea wrote: > Hello friends of JEP 412, > > > I hope I'm not being too forward, but I would love it if I could get a > second opinion of my *port* of an example from the folks from the PortAudio > C API project using Project Panama's FFI APIs. > > > I created the project called *portaudio4j* to simply port their first > example called *examples/paex_saw.c*. > > https://github.com/carldea/portaudio4j > > > *My version:* > https://github.com/carldea/portaudio4j/blob/main/src/PaexSaw.java > > > *(Their version) Port Audio C API 's beginner example paex_saw.c is here:* > https://github.com/PortAudio/portaudio/blob/master/examples/paex_saw.c > > > > *The Problem (Issue)* > > For some reason the C version (*paex_saw.c*) of the example compared to the > Panama example (*PaexSaw.java*) doesn't sound the same. Sometimes it's too > loud as if something isn't cleaning up from the prior run. The only thing > I've changed afaik is the SAMPLE_RATE, because it's so frighteningly loud. > Maybe I'm not properly doing pointer arithmetic. Or something I'm doing > that is overly expensive (operation wise) when accessing a > MemoryAddress/MemorySegment. > > > So, I thought I'd reach out to those who might be able to shed some light > on the issues I'm running into. > > > *Why did I choose this C library?* > > -------------------------------- > > It is a relatively simple and small example that can exercise most aspects > of Panama (downcall, upcall, typedef void variables, handles, pointers, > structs, etc.) Everyone has a speaker and mic, so it would be a nice way to > use the library for all OSes. > > > Of course if there's a way I can pinpoint the cause, I'd be happy to report > the bug so we can keep an eye on it. Also, it might be a good example to > add to Sundar's examples here: > https://github.com/sundararajana/panama-jextract-samples. > > Thank you, Happy holidays! > > > Carl > From maurizio.cimadamore at oracle.com Wed Dec 22 22:30:42 2021 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Wed, 22 Dec 2021 22:30:42 +0000 Subject: Some scattered feedback on the Foreign Linker API In-Reply-To: <114852d1-e47e-8af9-0099-8ab7dab22bdc@gmail.com> References: <114852d1-e47e-8af9-0099-8ab7dab22bdc@gmail.com> Message-ID: <24be52e7-cbd9-5c43-3153-10a7fb52f40c@oracle.com> Thanks for the detailed feedback Chris! I'm glad to see that you were happy about performance numbers (although, as you say, this wasn't a critical factor for you). And I hear you when you say that the Foreign API approach requires more coding than its JNA counterpart. Our hope is that most of the coding is really auto-generated - but there are probably areas that could be improved (e.g. struct access). In the long run I'm looking forward to frameworks such as JNA to experiment with the Foreign API, so that use cases like yours maybe won't have to choose between expressiveness and performance (although approaches such as JNA will always add a bit more footprint - but that might be acceptable depending on the use case). I'm also glad that you found good use for the --enable-native-access feature. As noted in another thread [1] - there are improvements we can make to this - e.g. to make this feature work better with dynamic modules; but it seems like coupling module boundaries to restricting native access is something that worked well for you. Thanks for giving our API a good try - this is crucial for us, especially at this stage of the project. Cheers Maurizio [1] - https://mail.openjdk.java.net/pipermail/panama-dev/2021-September/015036.html On 22/12/2021 09:19, Chris Hegarty wrote: > Hi, > > As part of a recent prototyping effort, we evaluated replacing the > usage of JNA in the core of the Elasticsearch server with the incubating > Foreign Linker API. > > TL;DR? things just worked,? perf improved,? and we really like the > restricted native access. > > Our usage (at least in this particular case) is not really performance > sensitive, in that we reach into native to setup syscall filtering and > check resource limits - but hey, faster is always better! We measured > approximate perf improvements between 8 and 20 times faster for simple > downcalls. The reason the numbers vary so much is more to do with JNA > rather than Panama, since the Panama times from run to run were > consistent, while the times measured with JNA varied quite a bit - which > we observed on several different platforms but did not investigate > further. > > While the aforementioned effort did not focus on a particularly > performance sensitive area of code, there are other areas of the server > that do reach into native, and are more performance sensitive. Our > intuition is that they would benefit from using the Linker API too - an > experiment yet to be done, but given the potential perf improvement we > observed above, an experiment we are excited and motivated to do. > > I?m not particularly familiar with JNA, so this effort was also a > earning exercise for me. What struck me was that with JNA things work > with minimal fuss. That is to say that JNA would appear to be a > higher-level API that hides much of the detail, detail which you need to > concern yourself with when using Panama?s Linker API. I found this ok, > and the eventual end result in terms of the consuming code was > reasonably similar to that of JNA, but with Panama much more ?glue? code > was needed - which we generated with jextract. This is not a problem > per se, but an observation that was glaring when comparing the the two > implementations. JNA ?hides? the much of the detail from the developer. > > We love restricted native access. We?re currently modularizing the core > of the Elasticsearch server, and the ability to restrict native access > to just a couple of these modules is a big positive. This allows to > improve security and integrity of the system, e.g. custom server plugins > cannot just use JNA from the classpath. All without resorting to playing > tricks with classloaders in an attempt to "hide" JNA. We can restrict > native access to just the ES modules that require it - all other parts > of the system will be disallowed (irrespective of security manager). > > We believe that the model of protecting sensitive operations behind > module boundaries with caller-sensitive access checks upon invocation is > the right model. The mechanics of this could be improved or built upon > through additional module support, like say the ability for module > descriptors to carry information about which other modules require, or > are allowed to perform, restricted access operations. And additional > consistency checks akin to the tying of a set of modules with hashes, to > offer further protection beyond the module name itself. > > -Chris. From maurizio.cimadamore at oracle.com Wed Dec 22 22:44:40 2021 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Wed, 22 Dec 2021 22:44:40 +0000 Subject: Exposing concrete types of segments and addresses In-Reply-To: References: <933ace49-f0a7-5664-57e5-6df98c99a773@oracle.com> Message-ID: (re-adding panama-dev in case it might help somebody else as well) Thanks for clarifying the benchmark. I believe the issue here is the control flow logic inside the method: all the branches are consuming the same segment. If you rewrite the method as follows: ``` @Benchmark ??? public long read()? { ??????? int length = this.length; ??????? long result = 0; ??????? long offset = this.offset; ??????? if ((length & Byte.BYTES) != 0) { ??????????? var segment = MemorySegment.ofArray(this.array); ??????????? result = Byte.toUnsignedLong(segment.get(ValueLayout.JAVA_BYTE, offset)); ??????????? offset += Byte.BYTES; ??????? } ??????? if ((length & Short.BYTES) != 0) { ??????????? var segment = MemorySegment.ofArray(this.array); ??????????? result = (result << Short.SIZE) | Short.toUnsignedLong(segment.get(ValueLayout.JAVA_SHORT, offset)); ??????????? offset += Short.BYTES; ??????? } ??????? if ((length & Integer.BYTES) != 0) { ??????????? var segment = MemorySegment.ofArray(this.array); ??????????? result = (result << Integer.SIZE) | Integer.toUnsignedLong(segment.get(ValueLayout.JAVA_INT, offset)); ??????? } ??????? return result; ??? } ``` Escape analysis then works correctly, and no allocation occurs. I don't think using a sharper type (which was your original suggestion) would help in this case? Maurizio On 22/12/2021 02:24, Qu?n Anh Mai wrote: > Hi, thank you very much for taking a look at this. The benchmark > includes me cycling the length variable to have the compiled code > cover all branches. > > @BenchmarkMode(Mode.AverageTime) > @OutputTimeUnit(TimeUnit.NANOSECONDS) > @State(Scope.Benchmark) > @Fork(1) > @Warmup(iterations = 8) > @Measurement(iterations = 8) > public class Sample { > ? ? int length; > ? ? int offset = 100; > ? ? byte[] array = new byte[200]; > > ? ? @Setup(Level.Iteration) > ? ? public void setup() { > ? ? ? ? length = (length + 1) % 8; > ? ? } > > ? ? @Benchmark > ? ? public long read()? { > ? ? ? ? int length = this.length; > ? ? ? ? var segment = MemorySegment.ofArray(this.array); > ? ? ? ? long result = 0; > ? ? ? ? long offset = this.offset; > ? ? ? ? if ((length & Byte.BYTES) != 0) { > ? ? ? ? ? ? result = > Byte.toUnsignedLong(segment.get(ValueLayout.JAVA_BYTE, offset)); > ? ? ? ? ? ? offset += Byte.BYTES; > ? ? ? ? } > ? ? ? ? if ((length & Short.BYTES) != 0) { > ? ? ? ? ? ? result = (result << Short.SIZE) | > Short.toUnsignedLong(segment.get(ValueLayout.JAVA_SHORT, offset)); > ? ? ? ? ? ? offset += Short.BYTES; > ? ? ? ? } > ? ? ? ? if ((length & Integer.BYTES) != 0) { > ? ? ? ? ? ? result = (result << Integer.SIZE) | > Integer.toUnsignedLong(segment.get(ValueLayout.JAVA_INT, offset)); > ? ? ? ? } > ? ? ? ? return result; > ? ? } > } > > The result of the benchmark is as follow: > > Benchmark? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Mode Cnt? ? ? Score? ? > ?Error? ?Units > Sample.read? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?avgt 8? ? ?21.609 ?? > ?5.685? ?ns/op > Sample.read:?gc.alloc.rate? ? ? ? ? ? ? ? ? ? avgt 8? ?1709.447 ? > 451.144? MB/sec > Sample.read:?gc.alloc.rate.norm? ? ? ? ? ? ? ?avgt 8? ? ?40.001 ?? > ?0.001? ? B/op > Sample.read:?gc.churn.G1_Eden_Space? ? ? ? ? ?avgt 8? ?1713.039 ? > 460.429? MB/sec > Sample.read:?gc.churn.G1_Eden_Space.norm? ? ? avgt 8? ? ?40.080 ?? > ?1.549? ? B/op > Sample.read:?gc.churn.G1_Survivor_Space? ? ? ?avgt 8? ? ? 0.002 ?? > ?0.001? MB/sec > Sample.read:?gc.churn.G1_Survivor_Space.norm? avgt 8? ? ?? 10??? ? ? ? > ? ? ? B/op > Sample.read:?gc.count? ? ? ? ? ? ? ? ? ? ? ? ?avgt 8? ? 250.000? ? ? ? > ? ? counts > Sample.read:?gc.time? ? ? ? ? ? ? ? ? ? ? ? ? avgt 8? 24047.000? ? ? ? > ? ? ? ? ms > > It seems that if I have the length value unchanged the allocation is > indeed eliminated as expected > > Benchmark? ? ? ? ? ? ? ? ? ? ? ? Mode? Cnt? ?Score ? Error? ?Units > Sample.read? ? ? ? ? ? ? ? ? ? ? avgt? ? 8? ?6.180 ?? 0.887? ?ns/op > Sample.read:?gc.alloc.rate? ? ? ?avgt? ? 8? ? 10?? ? ? ? ? ?MB/sec > Sample.read:?gc.alloc.rate.norm? avgt? ? 8? ? 10?? ? ? ? ? ? ?B/op > Sample.read:?gc.count? ? ? ? ? ? avgt? ? 8? ? ?? 0 ? ? ? ? ?counts > > Regards, > Quan Anh > > On Wed, 22 Dec 2021 at 05:25, Maurizio Cimadamore > > wrote: > > Hi, > I tried your benchmark - I had to fill in some gaps - so I came up > with the following enclosing class, which might or might not be > the similar to the one you are playing with: > > ``` > public class TestRead { > > ??? byte[] array = new byte[1024]; > ??? int length = 7; // worst case? > ??? int offset = 16; > > ??? @Benchmark > ??? public long read()? { > ??????? ... > ??? } > } > > ``` > > I then run the benchmark with "-prof gc" and the allocation rate > seems very low for the warmup iterations and the first few > iteration (0.270Mb/sec), then it drops to zero on subsequent > iterations. It seems to me that (with all usual caveats of this > being only a synthetic benchmark), this one is working relatively > well? > > Here are the results I got: > > ``` > Benchmark????????????????????????? Mode? Cnt? Score Error?? Units > TestRead.read????????????????????? avgt?? 30? 4.687 ? 0.120?? ns/op > TestRead.read:?gc.alloc.rate?????? avgt?? 30? 0.110 ? 0.091? MB/sec > TestRead.read:?gc.alloc.rate.norm? avgt?? 30? 0.001 ? 0.001??? B/op > TestRead.read:?gc.count??????????? avgt?? 30??? ? 0????????? counts > ``` > > Here the gc seems to not run at all, and the overall allocation > rate is very very low (this is probably obtained combining the low > allocation rate in the first few iterations with the non-existent > allocation rate of the last few iterations). > > I'm sure I'm probably not replicating your benchmark correctly (I > tried with different values of "length" to make the code take > different branches, to no avail) - if I am, what I see doesn't > seem to suggest that GC is acting as a bottleneck here? > > Cheers > Maurizio > > > > On 21/12/2021 14:51, Qu?n Anh Mai wrote: >> Thank you very much for the detailed explanation, I agree that we >> need to be patient as adding more types to the API is easier than >> removing those. I can imagine that later on, we can expose only >> HeapMemorySegment, NativeMemorySegment and MappedMemorySegment >> if it is forced to do so. >> >> Regarding a non-optimal circumstance, I discovered an interesting >> case where I want to read a long value from a byte array given >> the read bytes might be less than 8. The benchmark is as follow: >> >> ? ? @Benchmark >> ? ? public long read()? { >> ? ? ? ? int length = this.length; >> ? ? ? ? var segment = MemorySegment.ofArray(this.array); >> ? ? ? ? long result = 0; >> ? ? ? ? long offset = this.offset; >> ? ? ? ? if ((length & Byte.BYTES) != 0) { >> ? ? ? ? ? ? result = >> Byte.toUnsignedLong(segment.get(ValueLayout.JAVA_BYTE, offset)); >> ? ? ? ? ? ? offset += Byte.BYTES; >> ? ? ? ? } >> ? ? ? ? if ((length & Short.BYTES) != 0) { >> ? ? ? ? ? ? result = (result << Short.SIZE) | >> Short.toUnsignedLong(segment.get(ValueLayout.JAVA_SHORT, offset)); >> ? ? ? ? ? ? offset += Short.BYTES; >> ? ? ? ? } >> ? ? ? ? if ((length & Integer.BYTES) != 0) { >> ? ? ? ? ? ? result = (result << Integer.SIZE) | >> Integer.toUnsignedLong(segment.get(ValueLayout.JAVA_INT, offset)); >> ? ? ? ? } >> ? ? ? ? return result; >> ? ? } >> >> Running with a fairly recent revision?of openjdk/jdk (the >> difference is 12 commits as of right now, which means the running >> JVM contains the fix for your mentioned bug already), the >> generated assembly seems to be not optimal, with the segment >> failing to be scalarized. >> >> Regards, >> Quan Anh >> >> On Tue, 21 Dec 2021 at 05:29, Maurizio Cimadamore >> > > wrote: >> >> Hi, >> thanks for your email. This is a really tricky area, where no >> optimal >> solution exists yet. >> >> First, we have recently spotted an issue with escape analysis >> not >> working correctly with memory segments - for this I filed the >> issue: >> >> https://bugs.openjdk.java.net/browse/JDK-8278429 >> >> >> Which has been closed as a duplicate of another VM bug which >> is being >> worked on. I believe that fix should generally improve all >> scenario >> where there is a bottleneck due to failure of scalarization when >> creating new segments (e.g. slicing). >> >> That said, this does not address your fundamental point that, >> at the end >> of the day, some of these optimizations depend on the ability >> of C2 to >> inline through code (but this is also true for the ByteBuffer >> API). >> >> The ultimate solution would be IMHO to make memory segment >> _less_ >> polymorphic, by having a single implementation class which then >> delegates its memory access behavior to a secondary >> abstraction (which >> could be a constant, based on the access type: on-heap, or >> off-heap). >> >> If we did that, a memory segment would become a dumb wrapper >> around a >> base object, a length and some (constant) access object helper. >> >> Unfortunately this solution (which we have tried) doesn't >> work - because >> Unsafe memory access needs to know whether access is going to >> be on- or >> off-heap (in order to remove important memory barriers). >> Currently this >> is done with the help of type profiling: if we are accessing >> memory on a >> type that C2 can prove to be "NativeMemorySegmentImpl", then >> C2 also >> knows that access is going to be off-heap - and unsafe access >> is fast. >> To have profiling working correctly we need one concrete >> segment type >> for each possible access type (native, mapped, and one for each >> primitive on-heap array). But if there's only one concrete >> type, there's >> no type profiling to go on, so we gain monomorphism, but we >> lose (very >> badly) when it comes to profile pollution exposure. To fix >> this, we need >> better ways to do type profiling (based not only on >> receiver/parameter >> types, but maybe the type of some fields in an instance). >> >> Now, in the current implementation we can hide the >> polymorphism, pretty >> much like ByteBuffer does, under a common interface. Exposing >> concrete >> types as you suggest is going to be painful - as users will >> see another >> 9 more segment types (7 primitive arrays, + mapped + native), >> which >> would increase the size of the API quite considerably. Maybe >> some >> intermediate point might also be useful to consider (e.g. >> perhaps only >> two types - for native segments and heap segments, but do not >> differentiate between mapped/native or between byte[] and >> long[] in the >> public API). But we need to conder any such moves very >> carefully: while >> we can add these types very easily in the future, if it >> proves to be the >> only possible path (e.g. even after Valhalla) in order to use >> memory >> segments sanely, the reverse is not true: if we add these new >> types now, >> and later on we discover these new types to be superseded by >> some new VM >> optimization, or better support thanks to Valhalla, we'd be >> stuck with >> these types for a long time. >> >> I think at this point in time we'd like to know where the >> performance >> potholes are - so if you happen to have a benchmark which >> shows the >> problem you discussed, we'd be very happy to take a look. Our >> experience >> so far seems to suggest that performance is acceptable - even >> in cases >> where segments are created in very hot paths (we do have a >> spliterator >> test which indundates the system with slices - and that >> doesn't seem to >> perform too bad). At the same time, I can believe you when >> you say that >> some of the optimizations we might rely upon are fraglie >> (I've been >> there when using the API on my own, so the mileage of certain >> idioms can >> vary). >> >> Unfortunately this is a bigger problem IMHO than just >> MemorySegments: >> currently writing immutable APIs in Java can lead to spotty >> performance. >> The hope is that Valhalla will give us tools to help us >> manage that kind >> of complexity - but even then, some of the optimizations (e.g. >> scalarization) might be gated by excessive polymorphism >> and/or lack of >> inlining. If we can improve the VM enough to do the type >> profiling we >> need to keep unsafe access sharp even in the face of a >> "monomorphic" >> implementation, then I believe the current API could take >> advantage of >> Valhalla in a more straightfoward fashion (and we could, in >> the future, >> add Valhalla optimizations to special case treatment for sealed >> interfaces whose only implementation is a primitive class). >> >> [Btw, this discussion is really about MemorySegment - for >> MemoryAddress, >> in my own experiments I could already see Valhalla making >> quick work of >> all the address instantiations - as MemoryAddressImpl is the >> only >> implementation of MemoryAddress]. >> >> Maurizio >> >> >> On 20/12/2021 07:21, Qu?n Anh Mai wrote: >> > Hi, >> > >> > Currently, we can only access MemorySegments and >> MemoryAddresses through >> > the respective interface. While this provides a nice >> interface for all >> > kinds of memory segments, the lack of ability to use the >> concrete types >> > leads to a lot of performance caveats. >> > >> > Firstly, polymorphism disables scalarization. While a >> non-escaped object >> > can be scalarized in most cases, there are still >> circumstances that scalar >> > replacement fails (e.g when we want to continuously slice a >> segment in a >> > loop). Furthermore, this makes us become dependent on the >> inlining ability >> > of the compiler, which is unpredictable and limits the use >> of segments and >> > addresses for desired performance. On the other hand, >> scalarization of >> > polymorphic types in fields and calling convention seems to >> be really >> > really complicated. With primitive classes, we could make >> the performance >> > of foreign API become much more predictable with the >> elimination of >> > allocations as well as pointer chasings where we can and >> want to limit the >> > kind of segment we operate on. >> > >> > The above caveats lead to possible usage of foreign API to >> pass around the >> > naked addresses as long values and only construct segments >> where it is >> > needed. This approach, while being an ugly hack, is still >> not ideal cause >> > multiple methods may fail to be inlined. >> > >> > Secondly, polymorphism limits specialisation. With JEP 218, >> we may have >> > multiple specialisations of the same methods operating on >> different kinds >> > of segments. While it is still possible, to some extent, to >> have >> > specialisation with a polymorphic type MemorySegment, it >> would likely be a >> > fragile optimisation that relies on inlining and a lot of >> type checks. >> > >> > Furthermore, while having common aspects, MemorySegments >> expose different >> > behaviours on the others. E.g. HeapMemorySegment is not >> Addressable, >> > MappedMemorySegment has various additional specific >> methods. While this is >> > not an argument for the design of foreign API, it is a >> small bonus point >> > over those above. >> > >> > Overall, the current status of foreign API seems to put us >> in a position >> > that relies too much on the compiler to get the desired >> performance. >> > Exposing the concrete types would enable us to write more >> predictable codes >> > where it needs to and flexible code (i.e using polymorphic >> MemotySegment, >> > MemoryAddress, etc) where it is more desirable. >> > >> > My apologies if this question has been addressed before. >> Thank you very >> > much. >> > Quan Anh >> From jatin.bhateja at intel.com Thu Dec 23 11:25:24 2021 From: jatin.bhateja at intel.com (Bhateja, Jatin) Date: Thu, 23 Dec 2021 11:25:24 +0000 Subject: Exposing concrete types of segments and addresses In-Reply-To: References: Message-ID: Hi Quan Anh, > > > > > > Currently, we can only access MemorySegments and MemoryAddresses > > > through the respective interface. While this provides a nice > > > interface for all kinds of memory segments, the lack of ability to > > > use the concrete types leads to a lot of performance caveats. > > > Yes, it's not possible to detect actual instance held by class reference at compile time in polymorphic class hierarchy, thus allocation elimination and scalarization is not possible in closed world context under which compilation is performed. > > Regarding a non-optimal circumstance, I discovered an interesting case > where I want to read a long value from a byte array given the read bytes > might be less than 8. The benchmark is as follow: > One probable solution which builds on your ideal of segment specialization could be to use an approach similar to VectorAPI which does remove redundant boxes of concrete Vector Types during unboxing idealizations. Best Regards, Jatin > -----Original Message----- > From: panama-dev On Behalf Of Qu?n Anh > Mai > Sent: Tuesday, December 21, 2021 8:22 PM > To: Maurizio Cimadamore > Cc: panama-dev at openjdk.java.net > Subject: Re: Exposing concrete types of segments and addresses > > Thank you very much for the detailed explanation, I agree that we need to > be patient as adding more types to the API is easier than removing those. > I can imagine that later on, we can expose only HeapMemorySegment, > NativeMemorySegment and MappedMemorySegment if it is forced to do so. > > Regarding a non-optimal circumstance, I discovered an interesting case > where I want to read a long value from a byte array given the read bytes > might be less than 8. The benchmark is as follow: > > @Benchmark > public long read() { > int length = this.length; > var segment = MemorySegment.ofArray(this.array); > long result = 0; > long offset = this.offset; > if ((length & Byte.BYTES) != 0) { > result = > Byte.toUnsignedLong(segment.get(ValueLayout.JAVA_BYTE, > offset)); > offset += Byte.BYTES; > } > if ((length & Short.BYTES) != 0) { > result = (result << Short.SIZE) | > Short.toUnsignedLong(segment.get(ValueLayout.JAVA_SHORT, offset)); > offset += Short.BYTES; > } > if ((length & Integer.BYTES) != 0) { > result = (result << Integer.SIZE) | > Integer.toUnsignedLong(segment.get(ValueLayout.JAVA_INT, offset)); > } > return result; > } > > Running with a fairly recent revision of openjdk/jdk (the difference is 12 > commits as of right now, which means the running JVM contains the fix for > your mentioned bug already), the generated assembly seems to be not > optimal, with the segment failing to be scalarized. > > Regards, > Quan Anh > > On Tue, 21 Dec 2021 at 05:29, Maurizio Cimadamore < > maurizio.cimadamore at oracle.com> wrote: > > > Hi, > > thanks for your email. This is a really tricky area, where no optimal > > solution exists yet. > > > > First, we have recently spotted an issue with escape analysis not > > working correctly with memory segments - for this I filed the issue: > > > > https://bugs.openjdk.java.net/browse/JDK-8278429 > > > > Which has been closed as a duplicate of another VM bug which is being > > worked on. I believe that fix should generally improve all scenario > > where there is a bottleneck due to failure of scalarization when > > creating new segments (e.g. slicing). > > > > That said, this does not address your fundamental point that, at the > > end of the day, some of these optimizations depend on the ability of > > C2 to inline through code (but this is also true for the ByteBuffer > API). > > > > The ultimate solution would be IMHO to make memory segment _less_ > > polymorphic, by having a single implementation class which then > > delegates its memory access behavior to a secondary abstraction (which > > could be a constant, based on the access type: on-heap, or off-heap). > > > > If we did that, a memory segment would become a dumb wrapper around a > > base object, a length and some (constant) access object helper. > > > > Unfortunately this solution (which we have tried) doesn't work - > > because Unsafe memory access needs to know whether access is going to > > be on- or off-heap (in order to remove important memory barriers). > > Currently this is done with the help of type profiling: if we are > > accessing memory on a type that C2 can prove to be > > "NativeMemorySegmentImpl", then C2 also knows that access is going to be > off-heap - and unsafe access is fast. > > To have profiling working correctly we need one concrete segment type > > for each possible access type (native, mapped, and one for each > > primitive on-heap array). But if there's only one concrete type, > > there's no type profiling to go on, so we gain monomorphism, but we > > lose (very > > badly) when it comes to profile pollution exposure. To fix this, we > > need better ways to do type profiling (based not only on > > receiver/parameter types, but maybe the type of some fields in an > instance). > > > > Now, in the current implementation we can hide the polymorphism, > > pretty much like ByteBuffer does, under a common interface. Exposing > > concrete types as you suggest is going to be painful - as users will > > see another > > 9 more segment types (7 primitive arrays, + mapped + native), which > > would increase the size of the API quite considerably. Maybe some > > intermediate point might also be useful to consider (e.g. perhaps only > > two types - for native segments and heap segments, but do not > > differentiate between mapped/native or between byte[] and long[] in > > the public API). But we need to conder any such moves very carefully: > > while we can add these types very easily in the future, if it proves > > to be the only possible path (e.g. even after Valhalla) in order to > > use memory segments sanely, the reverse is not true: if we add these > > new types now, and later on we discover these new types to be > > superseded by some new VM optimization, or better support thanks to > > Valhalla, we'd be stuck with these types for a long time. > > > > I think at this point in time we'd like to know where the performance > > potholes are - so if you happen to have a benchmark which shows the > > problem you discussed, we'd be very happy to take a look. Our > > experience so far seems to suggest that performance is acceptable - > > even in cases where segments are created in very hot paths (we do have > > a spliterator test which indundates the system with slices - and that > > doesn't seem to perform too bad). At the same time, I can believe you > > when you say that some of the optimizations we might rely upon are > > fraglie (I've been there when using the API on my own, so the mileage > > of certain idioms can vary). > > > > Unfortunately this is a bigger problem IMHO than just MemorySegments: > > currently writing immutable APIs in Java can lead to spotty performance. > > The hope is that Valhalla will give us tools to help us manage that > > kind of complexity - but even then, some of the optimizations (e.g. > > scalarization) might be gated by excessive polymorphism and/or lack of > > inlining. If we can improve the VM enough to do the type profiling we > > need to keep unsafe access sharp even in the face of a "monomorphic" > > implementation, then I believe the current API could take advantage of > > Valhalla in a more straightfoward fashion (and we could, in the > > future, add Valhalla optimizations to special case treatment for > > sealed interfaces whose only implementation is a primitive class). > > > > [Btw, this discussion is really about MemorySegment - for > > MemoryAddress, in my own experiments I could already see Valhalla > > making quick work of all the address instantiations - as > > MemoryAddressImpl is the only implementation of MemoryAddress]. > > > > Maurizio > > > > > > On 20/12/2021 07:21, Qu?n Anh Mai wrote: > > > Hi, > > > > > > Currently, we can only access MemorySegments and MemoryAddresses > > > through the respective interface. While this provides a nice > > > interface for all kinds of memory segments, the lack of ability to > > > use the concrete types leads to a lot of performance caveats. > > > > > > Firstly, polymorphism disables scalarization. While a non-escaped > > > object can be scalarized in most cases, there are still > > > circumstances that > > scalar > > > replacement fails (e.g when we want to continuously slice a segment > > > in a loop). Furthermore, this makes us become dependent on the > > > inlining > > ability > > > of the compiler, which is unpredictable and limits the use of > > > segments > > and > > > addresses for desired performance. On the other hand, scalarization > > > of polymorphic types in fields and calling convention seems to be > > > really really complicated. With primitive classes, we could make the > > > performance of foreign API become much more predictable with the > > > elimination of allocations as well as pointer chasings where we can > > > and want to limit > > the > > > kind of segment we operate on. > > > > > > The above caveats lead to possible usage of foreign API to pass > > > around > > the > > > naked addresses as long values and only construct segments where it > > > is needed. This approach, while being an ugly hack, is still not > > > ideal cause multiple methods may fail to be inlined. > > > > > > Secondly, polymorphism limits specialisation. With JEP 218, we may > > > have multiple specialisations of the same methods operating on > > > different kinds of segments. While it is still possible, to some > > > extent, to have specialisation with a polymorphic type > > > MemorySegment, it would likely be > > a > > > fragile optimisation that relies on inlining and a lot of type checks. > > > > > > Furthermore, while having common aspects, MemorySegments expose > > > different behaviours on the others. E.g. HeapMemorySegment is not > > > Addressable, MappedMemorySegment has various additional specific > > > methods. While this > > is > > > not an argument for the design of foreign API, it is a small bonus > > > point over those above. > > > > > > Overall, the current status of foreign API seems to put us in a > > > position that relies too much on the compiler to get the desired > performance. > > > Exposing the concrete types would enable us to write more > > > predictable > > codes > > > where it needs to and flexible code (i.e using polymorphic > > > MemotySegment, MemoryAddress, etc) where it is more desirable. > > > > > > My apologies if this question has been addressed before. Thank you > > > very much. > > > Quan Anh > > From jatin.bhateja at intel.com Thu Dec 23 11:39:54 2021 From: jatin.bhateja at intel.com (Bhateja, Jatin) Date: Thu, 23 Dec 2021 11:39:54 +0000 Subject: Exposing concrete types of segments and addresses In-Reply-To: References: Message-ID: > Yes, it's not possible to detect actual instance held by class reference > at compile time in polymorphic class hierarchy, thus allocation > elimination and scalarization is not possible in closed world context > under which compilation is performed. Apart from depending on type profiling as was mentioned which will eventually result into jitting multiple versions of methods With different predication checks under unverified entry points. Best Regards, Jatin > -----Original Message----- > From: Bhateja, Jatin > Sent: Thursday, December 23, 2021 4:55 PM > To: Qu?n Anh Mai ; Maurizio Cimadamore > > Cc: panama-dev at openjdk.java.net > Subject: RE: Exposing concrete types of segments and addresses > > Hi Quan Anh, > > > > > > > > > Currently, we can only access MemorySegments and MemoryAddresses > > > > through the respective interface. While this provides a nice > > > > interface for all kinds of memory segments, the lack of ability to > > > > use the concrete types leads to a lot of performance caveats. > > > > > > Yes, it's not possible to detect actual instance held by class reference > at compile time in polymorphic class hierarchy, thus allocation > elimination and scalarization is not possible in closed world context > under which compilation is performed, apart from depending on type profiling as was mentioned. > > > > > Regarding a non-optimal circumstance, I discovered an interesting case > > where I want to read a long value from a byte array given the read > > bytes might be less than 8. The benchmark is as follow: > > > > One probable solution which builds on your ideal of segment specialization > could be to use an approach similar to VectorAPI which does remove > redundant boxes of concrete Vector Types during unboxing idealizations. > > Best Regards, > Jatin > > > -----Original Message----- > > From: panama-dev On Behalf Of Qu?n > > Anh Mai > > Sent: Tuesday, December 21, 2021 8:22 PM > > To: Maurizio Cimadamore > > Cc: panama-dev at openjdk.java.net > > Subject: Re: Exposing concrete types of segments and addresses > > > > Thank you very much for the detailed explanation, I agree that we need > > to be patient as adding more types to the API is easier than removing > those. > > I can imagine that later on, we can expose only HeapMemorySegment, > > NativeMemorySegment and MappedMemorySegment if it is forced to do so. > > > > Regarding a non-optimal circumstance, I discovered an interesting case > > where I want to read a long value from a byte array given the read > > bytes might be less than 8. The benchmark is as follow: > > > > @Benchmark > > public long read() { > > int length = this.length; > > var segment = MemorySegment.ofArray(this.array); > > long result = 0; > > long offset = this.offset; > > if ((length & Byte.BYTES) != 0) { > > result = > > Byte.toUnsignedLong(segment.get(ValueLayout.JAVA_BYTE, > > offset)); > > offset += Byte.BYTES; > > } > > if ((length & Short.BYTES) != 0) { > > result = (result << Short.SIZE) | > > Short.toUnsignedLong(segment.get(ValueLayout.JAVA_SHORT, offset)); > > offset += Short.BYTES; > > } > > if ((length & Integer.BYTES) != 0) { > > result = (result << Integer.SIZE) | > > Integer.toUnsignedLong(segment.get(ValueLayout.JAVA_INT, offset)); > > } > > return result; > > } > > > > Running with a fairly recent revision of openjdk/jdk (the difference > > is 12 commits as of right now, which means the running JVM contains > > the fix for your mentioned bug already), the generated assembly seems > > to be not optimal, with the segment failing to be scalarized. > > > > Regards, > > Quan Anh > > > > On Tue, 21 Dec 2021 at 05:29, Maurizio Cimadamore < > > maurizio.cimadamore at oracle.com> wrote: > > > > > Hi, > > > thanks for your email. This is a really tricky area, where no > > > optimal solution exists yet. > > > > > > First, we have recently spotted an issue with escape analysis not > > > working correctly with memory segments - for this I filed the issue: > > > > > > https://bugs.openjdk.java.net/browse/JDK-8278429 > > > > > > Which has been closed as a duplicate of another VM bug which is > > > being worked on. I believe that fix should generally improve all > > > scenario where there is a bottleneck due to failure of scalarization > > > when creating new segments (e.g. slicing). > > > > > > That said, this does not address your fundamental point that, at the > > > end of the day, some of these optimizations depend on the ability of > > > C2 to inline through code (but this is also true for the ByteBuffer > > API). > > > > > > The ultimate solution would be IMHO to make memory segment _less_ > > > polymorphic, by having a single implementation class which then > > > delegates its memory access behavior to a secondary abstraction > > > (which could be a constant, based on the access type: on-heap, or off- > heap). > > > > > > If we did that, a memory segment would become a dumb wrapper around > > > a base object, a length and some (constant) access object helper. > > > > > > Unfortunately this solution (which we have tried) doesn't work - > > > because Unsafe memory access needs to know whether access is going > > > to be on- or off-heap (in order to remove important memory barriers). > > > Currently this is done with the help of type profiling: if we are > > > accessing memory on a type that C2 can prove to be > > > "NativeMemorySegmentImpl", then C2 also knows that access is going > > > to be > > off-heap - and unsafe access is fast. > > > To have profiling working correctly we need one concrete segment > > > type for each possible access type (native, mapped, and one for each > > > primitive on-heap array). But if there's only one concrete type, > > > there's no type profiling to go on, so we gain monomorphism, but we > > > lose (very > > > badly) when it comes to profile pollution exposure. To fix this, we > > > need better ways to do type profiling (based not only on > > > receiver/parameter types, but maybe the type of some fields in an > > instance). > > > > > > Now, in the current implementation we can hide the polymorphism, > > > pretty much like ByteBuffer does, under a common interface. Exposing > > > concrete types as you suggest is going to be painful - as users will > > > see another > > > 9 more segment types (7 primitive arrays, + mapped + native), which > > > would increase the size of the API quite considerably. Maybe some > > > intermediate point might also be useful to consider (e.g. perhaps > > > only two types - for native segments and heap segments, but do not > > > differentiate between mapped/native or between byte[] and long[] in > > > the public API). But we need to conder any such moves very carefully: > > > while we can add these types very easily in the future, if it proves > > > to be the only possible path (e.g. even after Valhalla) in order to > > > use memory segments sanely, the reverse is not true: if we add these > > > new types now, and later on we discover these new types to be > > > superseded by some new VM optimization, or better support thanks to > > > Valhalla, we'd be stuck with these types for a long time. > > > > > > I think at this point in time we'd like to know where the > > > performance potholes are - so if you happen to have a benchmark > > > which shows the problem you discussed, we'd be very happy to take a > > > look. Our experience so far seems to suggest that performance is > > > acceptable - even in cases where segments are created in very hot > > > paths (we do have a spliterator test which indundates the system > > > with slices - and that doesn't seem to perform too bad). At the same > > > time, I can believe you when you say that some of the optimizations > > > we might rely upon are fraglie (I've been there when using the API > > > on my own, so the mileage of certain idioms can vary). > > > > > > Unfortunately this is a bigger problem IMHO than just MemorySegments: > > > currently writing immutable APIs in Java can lead to spotty > performance. > > > The hope is that Valhalla will give us tools to help us manage that > > > kind of complexity - but even then, some of the optimizations (e.g. > > > scalarization) might be gated by excessive polymorphism and/or lack > > > of inlining. If we can improve the VM enough to do the type > > > profiling we need to keep unsafe access sharp even in the face of a > "monomorphic" > > > implementation, then I believe the current API could take advantage > > > of Valhalla in a more straightfoward fashion (and we could, in the > > > future, add Valhalla optimizations to special case treatment for > > > sealed interfaces whose only implementation is a primitive class). > > > > > > [Btw, this discussion is really about MemorySegment - for > > > MemoryAddress, in my own experiments I could already see Valhalla > > > making quick work of all the address instantiations - as > > > MemoryAddressImpl is the only implementation of MemoryAddress]. > > > > > > Maurizio > > > > > > > > > On 20/12/2021 07:21, Qu?n Anh Mai wrote: > > > > Hi, > > > > > > > > Currently, we can only access MemorySegments and MemoryAddresses > > > > through the respective interface. While this provides a nice > > > > interface for all kinds of memory segments, the lack of ability to > > > > use the concrete types leads to a lot of performance caveats. > > > > > > > > Firstly, polymorphism disables scalarization. While a non-escaped > > > > object can be scalarized in most cases, there are still > > > > circumstances that > > > scalar > > > > replacement fails (e.g when we want to continuously slice a > > > > segment in a loop). Furthermore, this makes us become dependent on > > > > the inlining > > > ability > > > > of the compiler, which is unpredictable and limits the use of > > > > segments > > > and > > > > addresses for desired performance. On the other hand, > > > > scalarization of polymorphic types in fields and calling > > > > convention seems to be really really complicated. With primitive > > > > classes, we could make the performance of foreign API become much > > > > more predictable with the elimination of allocations as well as > > > > pointer chasings where we can and want to limit > > > the > > > > kind of segment we operate on. > > > > > > > > The above caveats lead to possible usage of foreign API to pass > > > > around > > > the > > > > naked addresses as long values and only construct segments where > > > > it is needed. This approach, while being an ugly hack, is still > > > > not ideal cause multiple methods may fail to be inlined. > > > > > > > > Secondly, polymorphism limits specialisation. With JEP 218, we may > > > > have multiple specialisations of the same methods operating on > > > > different kinds of segments. While it is still possible, to some > > > > extent, to have specialisation with a polymorphic type > > > > MemorySegment, it would likely be > > > a > > > > fragile optimisation that relies on inlining and a lot of type > checks. > > > > > > > > Furthermore, while having common aspects, MemorySegments expose > > > > different behaviours on the others. E.g. HeapMemorySegment is not > > > > Addressable, MappedMemorySegment has various additional specific > > > > methods. While this > > > is > > > > not an argument for the design of foreign API, it is a small bonus > > > > point over those above. > > > > > > > > Overall, the current status of foreign API seems to put us in a > > > > position that relies too much on the compiler to get the desired > > performance. > > > > Exposing the concrete types would enable us to write more > > > > predictable > > > codes > > > > where it needs to and flexible code (i.e using polymorphic > > > > MemotySegment, MemoryAddress, etc) where it is more desirable. > > > > > > > > My apologies if this question has been addressed before. Thank you > > > > very much. > > > > Quan Anh > > > From anhmdq at gmail.com Thu Dec 23 11:57:47 2021 From: anhmdq at gmail.com (=?UTF-8?Q?Qu=C3=A2n_Anh_Mai?=) Date: Thu, 23 Dec 2021 18:57:47 +0700 Subject: Exposing concrete types of segments and addresses In-Reply-To: References: <933ace49-f0a7-5664-57e5-6df98c99a773@oracle.com> Message-ID: Oh, thank you very much for your analysis. guess our EA is a little fragile here. Indeed, in this particular case, a sharper type wouldn't help because the unescaped segment type is known by the compiler statically. My main concern is about segments and addresses stored in fields as well as passing across function boundaries, which may result in sudden dips in performance when methods fail to be inlined. Regards, Quan Anh On Thu, 23 Dec 2021 at 05:44, Maurizio Cimadamore < maurizio.cimadamore at oracle.com> wrote: > (re-adding panama-dev in case it might help somebody else as well) > > Thanks for clarifying the benchmark. > > I believe the issue here is the control flow logic inside the method: all > the branches are consuming the same segment. > > If you rewrite the method as follows: > > ``` > @Benchmark > public long read() { > int length = this.length; > long result = 0; > long offset = this.offset; > if ((length & Byte.BYTES) != 0) { > var segment = MemorySegment.ofArray(this.array); > result = > Byte.toUnsignedLong(segment.get(ValueLayout.JAVA_BYTE, offset)); > offset += Byte.BYTES; > } > if ((length & Short.BYTES) != 0) { > var segment = MemorySegment.ofArray(this.array); > result = (result << Short.SIZE) | > Short.toUnsignedLong(segment.get(ValueLayout.JAVA_SHORT, offset)); > offset += Short.BYTES; > } > if ((length & Integer.BYTES) != 0) { > var segment = MemorySegment.ofArray(this.array); > result = (result << Integer.SIZE) | > Integer.toUnsignedLong(segment.get(ValueLayout.JAVA_INT, offset)); > } > return result; > } > ``` > > Escape analysis then works correctly, and no allocation occurs. I don't > think using a sharper type (which was your original suggestion) would help > in this case? > > Maurizio > On 22/12/2021 02:24, Qu?n Anh Mai wrote: > > Hi, thank you very much for taking a look at this. The benchmark includes > me cycling the length variable to have the compiled code cover all branches. > > @BenchmarkMode(Mode.AverageTime) > @OutputTimeUnit(TimeUnit.NANOSECONDS) > @State(Scope.Benchmark) > @Fork(1) > @Warmup(iterations = 8) > @Measurement(iterations = 8) > public class Sample { > int length; > int offset = 100; > byte[] array = new byte[200]; > > @Setup(Level.Iteration) > public void setup() { > length = (length + 1) % 8; > } > > @Benchmark > public long read() { > int length = this.length; > var segment = MemorySegment.ofArray(this.array); > long result = 0; > long offset = this.offset; > if ((length & Byte.BYTES) != 0) { > result = > Byte.toUnsignedLong(segment.get(ValueLayout.JAVA_BYTE, offset)); > offset += Byte.BYTES; > } > if ((length & Short.BYTES) != 0) { > result = (result << Short.SIZE) | > Short.toUnsignedLong(segment.get(ValueLayout.JAVA_SHORT, offset)); > offset += Short.BYTES; > } > if ((length & Integer.BYTES) != 0) { > result = (result << Integer.SIZE) | > Integer.toUnsignedLong(segment.get(ValueLayout.JAVA_INT, offset)); > } > return result; > } > } > > The result of the benchmark is as follow: > > Benchmark Mode Cnt Score > Error Units > Sample.read avgt 8 21.609 ? > 5.685 ns/op > Sample.read:?gc.alloc.rate avgt 8 1709.447 ? > 451.144 MB/sec > Sample.read:?gc.alloc.rate.norm avgt 8 40.001 ? > 0.001 B/op > Sample.read:?gc.churn.G1_Eden_Space avgt 8 1713.039 ? > 460.429 MB/sec > Sample.read:?gc.churn.G1_Eden_Space.norm avgt 8 40.080 ? > 1.549 B/op > Sample.read:?gc.churn.G1_Survivor_Space avgt 8 0.002 ? > 0.001 MB/sec > Sample.read:?gc.churn.G1_Survivor_Space.norm avgt 8 ? 10?? > B/op > Sample.read:?gc.count avgt 8 250.000 > counts > Sample.read:?gc.time avgt 8 24047.000 > ms > > It seems that if I have the length value unchanged the allocation is > indeed eliminated as expected > > Benchmark Mode Cnt Score Error Units > Sample.read avgt 8 6.180 ? 0.887 ns/op > Sample.read:?gc.alloc.rate avgt 8 ? 10?? MB/sec > Sample.read:?gc.alloc.rate.norm avgt 8 ? 10?? B/op > Sample.read:?gc.count avgt 8 ? 0 counts > > Regards, > Quan Anh > > On Wed, 22 Dec 2021 at 05:25, Maurizio Cimadamore < > maurizio.cimadamore at oracle.com> wrote: > >> Hi, >> I tried your benchmark - I had to fill in some gaps - so I came up with >> the following enclosing class, which might or might not be the similar to >> the one you are playing with: >> >> ``` >> public class TestRead { >> >> byte[] array = new byte[1024]; >> int length = 7; // worst case? >> int offset = 16; >> >> @Benchmark >> public long read() { >> ... >> } >> } >> >> ``` >> >> I then run the benchmark with "-prof gc" and the allocation rate seems >> very low for the warmup iterations and the first few iteration >> (0.270Mb/sec), then it drops to zero on subsequent iterations. It seems to >> me that (with all usual caveats of this being only a synthetic benchmark), >> this one is working relatively well? >> >> Here are the results I got: >> >> ``` >> Benchmark Mode Cnt Score Error Units >> TestRead.read avgt 30 4.687 ? 0.120 ns/op >> TestRead.read:?gc.alloc.rate avgt 30 0.110 ? 0.091 MB/sec >> TestRead.read:?gc.alloc.rate.norm avgt 30 0.001 ? 0.001 B/op >> TestRead.read:?gc.count avgt 30 ? 0 counts >> ``` >> >> Here the gc seems to not run at all, and the overall allocation rate is >> very very low (this is probably obtained combining the low allocation rate >> in the first few iterations with the non-existent allocation rate of the >> last few iterations). >> >> I'm sure I'm probably not replicating your benchmark correctly (I tried >> with different values of "length" to make the code take different branches, >> to no avail) - if I am, what I see doesn't seem to suggest that GC is >> acting as a bottleneck here? >> >> Cheers >> Maurizio >> >> >> >> On 21/12/2021 14:51, Qu?n Anh Mai wrote: >> >> Thank you very much for the detailed explanation, I agree that we need to >> be patient as adding more types to the API is easier than removing those. I >> can imagine that later on, we can expose only HeapMemorySegment, >> NativeMemorySegment and MappedMemorySegment if it is forced to do so. >> >> Regarding a non-optimal circumstance, I discovered an interesting case >> where I want to read a long value from a byte array given the read bytes >> might be less than 8. The benchmark is as follow: >> >> @Benchmark >> public long read() { >> int length = this.length; >> var segment = MemorySegment.ofArray(this.array); >> long result = 0; >> long offset = this.offset; >> if ((length & Byte.BYTES) != 0) { >> result = >> Byte.toUnsignedLong(segment.get(ValueLayout.JAVA_BYTE, offset)); >> offset += Byte.BYTES; >> } >> if ((length & Short.BYTES) != 0) { >> result = (result << Short.SIZE) | >> Short.toUnsignedLong(segment.get(ValueLayout.JAVA_SHORT, offset)); >> offset += Short.BYTES; >> } >> if ((length & Integer.BYTES) != 0) { >> result = (result << Integer.SIZE) | >> Integer.toUnsignedLong(segment.get(ValueLayout.JAVA_INT, offset)); >> } >> return result; >> } >> >> Running with a fairly recent revision of openjdk/jdk (the difference is >> 12 commits as of right now, which means the running JVM contains the fix >> for your mentioned bug already), the generated assembly seems to be not >> optimal, with the segment failing to be scalarized. >> >> Regards, >> Quan Anh >> >> On Tue, 21 Dec 2021 at 05:29, Maurizio Cimadamore < >> maurizio.cimadamore at oracle.com> wrote: >> >>> Hi, >>> thanks for your email. This is a really tricky area, where no optimal >>> solution exists yet. >>> >>> First, we have recently spotted an issue with escape analysis not >>> working correctly with memory segments - for this I filed the issue: >>> >>> https://bugs.openjdk.java.net/browse/JDK-8278429 >>> >>> Which has been closed as a duplicate of another VM bug which is being >>> worked on. I believe that fix should generally improve all scenario >>> where there is a bottleneck due to failure of scalarization when >>> creating new segments (e.g. slicing). >>> >>> That said, this does not address your fundamental point that, at the end >>> of the day, some of these optimizations depend on the ability of C2 to >>> inline through code (but this is also true for the ByteBuffer API). >>> >>> The ultimate solution would be IMHO to make memory segment _less_ >>> polymorphic, by having a single implementation class which then >>> delegates its memory access behavior to a secondary abstraction (which >>> could be a constant, based on the access type: on-heap, or off-heap). >>> >>> If we did that, a memory segment would become a dumb wrapper around a >>> base object, a length and some (constant) access object helper. >>> >>> Unfortunately this solution (which we have tried) doesn't work - because >>> Unsafe memory access needs to know whether access is going to be on- or >>> off-heap (in order to remove important memory barriers). Currently this >>> is done with the help of type profiling: if we are accessing memory on a >>> type that C2 can prove to be "NativeMemorySegmentImpl", then C2 also >>> knows that access is going to be off-heap - and unsafe access is fast. >>> To have profiling working correctly we need one concrete segment type >>> for each possible access type (native, mapped, and one for each >>> primitive on-heap array). But if there's only one concrete type, there's >>> no type profiling to go on, so we gain monomorphism, but we lose (very >>> badly) when it comes to profile pollution exposure. To fix this, we need >>> better ways to do type profiling (based not only on receiver/parameter >>> types, but maybe the type of some fields in an instance). >>> >>> Now, in the current implementation we can hide the polymorphism, pretty >>> much like ByteBuffer does, under a common interface. Exposing concrete >>> types as you suggest is going to be painful - as users will see another >>> 9 more segment types (7 primitive arrays, + mapped + native), which >>> would increase the size of the API quite considerably. Maybe some >>> intermediate point might also be useful to consider (e.g. perhaps only >>> two types - for native segments and heap segments, but do not >>> differentiate between mapped/native or between byte[] and long[] in the >>> public API). But we need to conder any such moves very carefully: while >>> we can add these types very easily in the future, if it proves to be the >>> only possible path (e.g. even after Valhalla) in order to use memory >>> segments sanely, the reverse is not true: if we add these new types now, >>> and later on we discover these new types to be superseded by some new VM >>> optimization, or better support thanks to Valhalla, we'd be stuck with >>> these types for a long time. >>> >>> I think at this point in time we'd like to know where the performance >>> potholes are - so if you happen to have a benchmark which shows the >>> problem you discussed, we'd be very happy to take a look. Our experience >>> so far seems to suggest that performance is acceptable - even in cases >>> where segments are created in very hot paths (we do have a spliterator >>> test which indundates the system with slices - and that doesn't seem to >>> perform too bad). At the same time, I can believe you when you say that >>> some of the optimizations we might rely upon are fraglie (I've been >>> there when using the API on my own, so the mileage of certain idioms can >>> vary). >>> >>> Unfortunately this is a bigger problem IMHO than just MemorySegments: >>> currently writing immutable APIs in Java can lead to spotty performance. >>> The hope is that Valhalla will give us tools to help us manage that kind >>> of complexity - but even then, some of the optimizations (e.g. >>> scalarization) might be gated by excessive polymorphism and/or lack of >>> inlining. If we can improve the VM enough to do the type profiling we >>> need to keep unsafe access sharp even in the face of a "monomorphic" >>> implementation, then I believe the current API could take advantage of >>> Valhalla in a more straightfoward fashion (and we could, in the future, >>> add Valhalla optimizations to special case treatment for sealed >>> interfaces whose only implementation is a primitive class). >>> >>> [Btw, this discussion is really about MemorySegment - for MemoryAddress, >>> in my own experiments I could already see Valhalla making quick work of >>> all the address instantiations - as MemoryAddressImpl is the only >>> implementation of MemoryAddress]. >>> >>> Maurizio >>> >>> >>> On 20/12/2021 07:21, Qu?n Anh Mai wrote: >>> > Hi, >>> > >>> > Currently, we can only access MemorySegments and MemoryAddresses >>> through >>> > the respective interface. While this provides a nice interface for all >>> > kinds of memory segments, the lack of ability to use the concrete types >>> > leads to a lot of performance caveats. >>> > >>> > Firstly, polymorphism disables scalarization. While a non-escaped >>> object >>> > can be scalarized in most cases, there are still circumstances that >>> scalar >>> > replacement fails (e.g when we want to continuously slice a segment in >>> a >>> > loop). Furthermore, this makes us become dependent on the inlining >>> ability >>> > of the compiler, which is unpredictable and limits the use of segments >>> and >>> > addresses for desired performance. On the other hand, scalarization of >>> > polymorphic types in fields and calling convention seems to be really >>> > really complicated. With primitive classes, we could make the >>> performance >>> > of foreign API become much more predictable with the elimination of >>> > allocations as well as pointer chasings where we can and want to limit >>> the >>> > kind of segment we operate on. >>> > >>> > The above caveats lead to possible usage of foreign API to pass around >>> the >>> > naked addresses as long values and only construct segments where it is >>> > needed. This approach, while being an ugly hack, is still not ideal >>> cause >>> > multiple methods may fail to be inlined. >>> > >>> > Secondly, polymorphism limits specialisation. With JEP 218, we may have >>> > multiple specialisations of the same methods operating on different >>> kinds >>> > of segments. While it is still possible, to some extent, to have >>> > specialisation with a polymorphic type MemorySegment, it would likely >>> be a >>> > fragile optimisation that relies on inlining and a lot of type checks. >>> > >>> > Furthermore, while having common aspects, MemorySegments expose >>> different >>> > behaviours on the others. E.g. HeapMemorySegment is not Addressable, >>> > MappedMemorySegment has various additional specific methods. While >>> this is >>> > not an argument for the design of foreign API, it is a small bonus >>> point >>> > over those above. >>> > >>> > Overall, the current status of foreign API seems to put us in a >>> position >>> > that relies too much on the compiler to get the desired performance. >>> > Exposing the concrete types would enable us to write more predictable >>> codes >>> > where it needs to and flexible code (i.e using polymorphic >>> MemotySegment, >>> > MemoryAddress, etc) where it is more desirable. >>> > >>> > My apologies if this question has been addressed before. Thank you very >>> > much. >>> > Quan Anh >>> >> From anhmdq at gmail.com Thu Dec 23 12:12:59 2021 From: anhmdq at gmail.com (=?UTF-8?Q?Qu=C3=A2n_Anh_Mai?=) Date: Thu, 23 Dec 2021 19:12:59 +0700 Subject: Exposing concrete types of segments and addresses In-Reply-To: References: Message-ID: Indeed, your idea makes a lot of sense, I think with the help of sealed classes and method specialization we can achieve the same result as JDK-8278390 : Scalarization of nullable inline types in the calling convention. This kind of auto specialization can be applied to field stores too, though the implications there would be much more complicated. Regards, Quan Anh On Thu, 23 Dec 2021 at 18:40, Bhateja, Jatin wrote: > > Yes, it's not possible to detect actual instance held by class reference > > at compile time in polymorphic class hierarchy, thus allocation > > elimination and scalarization is not possible in closed world context > > under which compilation is performed. > > Apart from depending on type profiling as was mentioned which will > eventually result into jitting multiple versions of methods > With different predication checks under unverified entry points. > > Best Regards, > Jatin > > > -----Original Message----- > > From: Bhateja, Jatin > > Sent: Thursday, December 23, 2021 4:55 PM > > To: Qu?n Anh Mai ; Maurizio Cimadamore > > > > Cc: panama-dev at openjdk.java.net > > Subject: RE: Exposing concrete types of segments and addresses > > > > Hi Quan Anh, > > > > > > > > > > > > Currently, we can only access MemorySegments and MemoryAddresses > > > > > through the respective interface. While this provides a nice > > > > > interface for all kinds of memory segments, the lack of ability to > > > > > use the concrete types leads to a lot of performance caveats. > > > > > > > > > Yes, it's not possible to detect actual instance held by class reference > > at compile time in polymorphic class hierarchy, thus allocation > > elimination and scalarization is not possible in closed world context > > under which compilation is performed, apart from depending on type > profiling as was mentioned. > > > > > > > > Regarding a non-optimal circumstance, I discovered an interesting case > > > where I want to read a long value from a byte array given the read > > > bytes might be less than 8. The benchmark is as follow: > > > > > > > One probable solution which builds on your ideal of segment > specialization > > could be to use an approach similar to VectorAPI which does remove > > redundant boxes of concrete Vector Types during unboxing idealizations. > > > > Best Regards, > > Jatin > > > > > -----Original Message----- > > > From: panama-dev On Behalf Of Qu?n > > > Anh Mai > > > Sent: Tuesday, December 21, 2021 8:22 PM > > > To: Maurizio Cimadamore > > > Cc: panama-dev at openjdk.java.net > > > Subject: Re: Exposing concrete types of segments and addresses > > > > > > Thank you very much for the detailed explanation, I agree that we need > > > to be patient as adding more types to the API is easier than removing > > those. > > > I can imagine that later on, we can expose only HeapMemorySegment, > > > NativeMemorySegment and MappedMemorySegment if it is forced to do so. > > > > > > Regarding a non-optimal circumstance, I discovered an interesting case > > > where I want to read a long value from a byte array given the read > > > bytes might be less than 8. The benchmark is as follow: > > > > > > @Benchmark > > > public long read() { > > > int length = this.length; > > > var segment = MemorySegment.ofArray(this.array); > > > long result = 0; > > > long offset = this.offset; > > > if ((length & Byte.BYTES) != 0) { > > > result = > > > Byte.toUnsignedLong(segment.get(ValueLayout.JAVA_BYTE, > > > offset)); > > > offset += Byte.BYTES; > > > } > > > if ((length & Short.BYTES) != 0) { > > > result = (result << Short.SIZE) | > > > Short.toUnsignedLong(segment.get(ValueLayout.JAVA_SHORT, offset)); > > > offset += Short.BYTES; > > > } > > > if ((length & Integer.BYTES) != 0) { > > > result = (result << Integer.SIZE) | > > > Integer.toUnsignedLong(segment.get(ValueLayout.JAVA_INT, offset)); > > > } > > > return result; > > > } > > > > > > Running with a fairly recent revision of openjdk/jdk (the difference > > > is 12 commits as of right now, which means the running JVM contains > > > the fix for your mentioned bug already), the generated assembly seems > > > to be not optimal, with the segment failing to be scalarized. > > > > > > Regards, > > > Quan Anh > > > > > > On Tue, 21 Dec 2021 at 05:29, Maurizio Cimadamore < > > > maurizio.cimadamore at oracle.com> wrote: > > > > > > > Hi, > > > > thanks for your email. This is a really tricky area, where no > > > > optimal solution exists yet. > > > > > > > > First, we have recently spotted an issue with escape analysis not > > > > working correctly with memory segments - for this I filed the issue: > > > > > > > > https://bugs.openjdk.java.net/browse/JDK-8278429 > > > > > > > > Which has been closed as a duplicate of another VM bug which is > > > > being worked on. I believe that fix should generally improve all > > > > scenario where there is a bottleneck due to failure of scalarization > > > > when creating new segments (e.g. slicing). > > > > > > > > That said, this does not address your fundamental point that, at the > > > > end of the day, some of these optimizations depend on the ability of > > > > C2 to inline through code (but this is also true for the ByteBuffer > > > API). > > > > > > > > The ultimate solution would be IMHO to make memory segment _less_ > > > > polymorphic, by having a single implementation class which then > > > > delegates its memory access behavior to a secondary abstraction > > > > (which could be a constant, based on the access type: on-heap, or > off- > > heap). > > > > > > > > If we did that, a memory segment would become a dumb wrapper around > > > > a base object, a length and some (constant) access object helper. > > > > > > > > Unfortunately this solution (which we have tried) doesn't work - > > > > because Unsafe memory access needs to know whether access is going > > > > to be on- or off-heap (in order to remove important memory barriers). > > > > Currently this is done with the help of type profiling: if we are > > > > accessing memory on a type that C2 can prove to be > > > > "NativeMemorySegmentImpl", then C2 also knows that access is going > > > > to be > > > off-heap - and unsafe access is fast. > > > > To have profiling working correctly we need one concrete segment > > > > type for each possible access type (native, mapped, and one for each > > > > primitive on-heap array). But if there's only one concrete type, > > > > there's no type profiling to go on, so we gain monomorphism, but we > > > > lose (very > > > > badly) when it comes to profile pollution exposure. To fix this, we > > > > need better ways to do type profiling (based not only on > > > > receiver/parameter types, but maybe the type of some fields in an > > > instance). > > > > > > > > Now, in the current implementation we can hide the polymorphism, > > > > pretty much like ByteBuffer does, under a common interface. Exposing > > > > concrete types as you suggest is going to be painful - as users will > > > > see another > > > > 9 more segment types (7 primitive arrays, + mapped + native), which > > > > would increase the size of the API quite considerably. Maybe some > > > > intermediate point might also be useful to consider (e.g. perhaps > > > > only two types - for native segments and heap segments, but do not > > > > differentiate between mapped/native or between byte[] and long[] in > > > > the public API). But we need to conder any such moves very carefully: > > > > while we can add these types very easily in the future, if it proves > > > > to be the only possible path (e.g. even after Valhalla) in order to > > > > use memory segments sanely, the reverse is not true: if we add these > > > > new types now, and later on we discover these new types to be > > > > superseded by some new VM optimization, or better support thanks to > > > > Valhalla, we'd be stuck with these types for a long time. > > > > > > > > I think at this point in time we'd like to know where the > > > > performance potholes are - so if you happen to have a benchmark > > > > which shows the problem you discussed, we'd be very happy to take a > > > > look. Our experience so far seems to suggest that performance is > > > > acceptable - even in cases where segments are created in very hot > > > > paths (we do have a spliterator test which indundates the system > > > > with slices - and that doesn't seem to perform too bad). At the same > > > > time, I can believe you when you say that some of the optimizations > > > > we might rely upon are fraglie (I've been there when using the API > > > > on my own, so the mileage of certain idioms can vary). > > > > > > > > Unfortunately this is a bigger problem IMHO than just MemorySegments: > > > > currently writing immutable APIs in Java can lead to spotty > > performance. > > > > The hope is that Valhalla will give us tools to help us manage that > > > > kind of complexity - but even then, some of the optimizations (e.g. > > > > scalarization) might be gated by excessive polymorphism and/or lack > > > > of inlining. If we can improve the VM enough to do the type > > > > profiling we need to keep unsafe access sharp even in the face of a > > "monomorphic" > > > > implementation, then I believe the current API could take advantage > > > > of Valhalla in a more straightfoward fashion (and we could, in the > > > > future, add Valhalla optimizations to special case treatment for > > > > sealed interfaces whose only implementation is a primitive class). > > > > > > > > [Btw, this discussion is really about MemorySegment - for > > > > MemoryAddress, in my own experiments I could already see Valhalla > > > > making quick work of all the address instantiations - as > > > > MemoryAddressImpl is the only implementation of MemoryAddress]. > > > > > > > > Maurizio > > > > > > > > > > > > On 20/12/2021 07:21, Qu?n Anh Mai wrote: > > > > > Hi, > > > > > > > > > > Currently, we can only access MemorySegments and MemoryAddresses > > > > > through the respective interface. While this provides a nice > > > > > interface for all kinds of memory segments, the lack of ability to > > > > > use the concrete types leads to a lot of performance caveats. > > > > > > > > > > Firstly, polymorphism disables scalarization. While a non-escaped > > > > > object can be scalarized in most cases, there are still > > > > > circumstances that > > > > scalar > > > > > replacement fails (e.g when we want to continuously slice a > > > > > segment in a loop). Furthermore, this makes us become dependent on > > > > > the inlining > > > > ability > > > > > of the compiler, which is unpredictable and limits the use of > > > > > segments > > > > and > > > > > addresses for desired performance. On the other hand, > > > > > scalarization of polymorphic types in fields and calling > > > > > convention seems to be really really complicated. With primitive > > > > > classes, we could make the performance of foreign API become much > > > > > more predictable with the elimination of allocations as well as > > > > > pointer chasings where we can and want to limit > > > > the > > > > > kind of segment we operate on. > > > > > > > > > > The above caveats lead to possible usage of foreign API to pass > > > > > around > > > > the > > > > > naked addresses as long values and only construct segments where > > > > > it is needed. This approach, while being an ugly hack, is still > > > > > not ideal cause multiple methods may fail to be inlined. > > > > > > > > > > Secondly, polymorphism limits specialisation. With JEP 218, we may > > > > > have multiple specialisations of the same methods operating on > > > > > different kinds of segments. While it is still possible, to some > > > > > extent, to have specialisation with a polymorphic type > > > > > MemorySegment, it would likely be > > > > a > > > > > fragile optimisation that relies on inlining and a lot of type > > checks. > > > > > > > > > > Furthermore, while having common aspects, MemorySegments expose > > > > > different behaviours on the others. E.g. HeapMemorySegment is not > > > > > Addressable, MappedMemorySegment has various additional specific > > > > > methods. While this > > > > is > > > > > not an argument for the design of foreign API, it is a small bonus > > > > > point over those above. > > > > > > > > > > Overall, the current status of foreign API seems to put us in a > > > > > position that relies too much on the compiler to get the desired > > > performance. > > > > > Exposing the concrete types would enable us to write more > > > > > predictable > > > > codes > > > > > where it needs to and flexible code (i.e using polymorphic > > > > > MemotySegment, MemoryAddress, etc) where it is more desirable. > > > > > > > > > > My apologies if this question has been addressed before. Thank you > > > > > very much. > > > > > Quan Anh > > > > > From duke at openjdk.java.net Fri Dec 24 11:07:02 2021 From: duke at openjdk.java.net (duke) Date: Fri, 24 Dec 2021 11:07:02 GMT Subject: git: openjdk/panama-foreign: foreign-jextract: 86 new changesets Message-ID: <6172ba98-1fa3-4533-9074-4ce65f2e7380@openjdk.org> Changeset: 6412d57a Author: Weijun Wang Date: 2021-12-17 12:14:17 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/6412d57a0a92ba08cc3db085b371ae1f7ba35ad5 8278560: X509KeyManagerImpl::getAliases might return a good key with others Reviewed-by: xuelei ! src/java.base/share/classes/sun/security/ssl/X509KeyManagerImpl.java + test/jdk/sun/security/ssl/X509KeyManager/NoGoodKey.java Changeset: abab1738 Author: Roman Kennke Date: 2021-12-17 13:33:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/abab1738a702648e91f4c3ad91f71b7633914a31 8278568: Consolidate filler objects Reviewed-by: tschatzl, mli, ayang ! src/hotspot/share/gc/parallel/psPromotionLAB.cpp ! src/hotspot/share/gc/parallel/psPromotionLAB.hpp ! src/hotspot/share/gc/shared/collectedHeap.cpp ! src/hotspot/share/gc/shared/collectedHeap.hpp ! src/hotspot/share/gc/shared/space.cpp ! src/hotspot/share/gc/shared/space.hpp ! src/hotspot/share/oops/oop.hpp Changeset: 3607a5cd Author: Coleen Phillimore Date: 2021-12-17 13:42:54 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3607a5cdd9a3013851c8faefd346f04934f897e6 8277216: Examine InstanceKlass::_misc_flags for concurrency issues Reviewed-by: hseigel, dholmes ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/utilities/accessFlags.hpp Changeset: a68f28ce Author: Nils Eliasson Date: 2021-12-17 15:08:45 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/a68f28cea6a726aa57c04a4fc5a665cae3513154 8278909: Unproblemlist AdaptiveBlocking001 Reviewed-by: chagedorn, eosterlund, stefank ! test/hotspot/jtreg/ProblemList-zgc.txt Changeset: e45e0b05 Author: Phil Race Date: 2021-12-17 15:10:03 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e45e0b05b9e8da8da72bf227cede319fa207a551 8278937: JCK test for java_awt/geom/Line2D.Float fails after 8277868 Reviewed-by: jdv, kcr, rriggs ! src/java.desktop/share/classes/java/awt/geom/Line2D.java ! src/java.desktop/share/classes/sun/awt/geom/Curve.java ! src/java.desktop/share/classes/sun/java2d/Spans.java Changeset: 769f14db Author: Harold Seigel Date: 2021-12-17 15:11:16 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/769f14db847813f5a3601e9ec21e6cadbd99ee96 8278384: Bytecodes::result_type() for arraylength returns T_VOID instead of T_INT Reviewed-by: lfoltan, dholmes ! src/hotspot/share/interpreter/bytecodeUtils.cpp ! src/hotspot/share/interpreter/bytecodes.cpp Changeset: b17f8d5b Author: Gilles Duboscq Date: 2021-12-17 15:36:07 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/b17f8d5b6c4d4ec75bb57f1d2009e30332bdb3ce 8278954: Using clang together with devkit on linux doesn't work for building Reviewed-by: erikj ! make/autoconf/flags.m4 Changeset: 0bfc204a Author: Albert Mingkun Yang Date: 2021-12-17 15:45:16 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/0bfc204a78878872f16019bc75dac7844876ed60 8278956: Remove unimplemented PLAB::allocate_aligned Reviewed-by: tschatzl ! src/hotspot/share/gc/shared/plab.hpp Changeset: 022e4f0f Author: Andrey Turbanov Committer: Vicente Romero Date: 2021-12-17 18:52:37 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/022e4f0f1c4862315b34595d6df228a49f67cb2e 8275242: Remove redundant stream() call before forEach in jdk.compiler Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/api/JavacTrees.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/TypeAnnotations.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/AttrRecover.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/InferenceContext.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java Changeset: 905b7639 Author: liach Committer: Mandy Chung Date: 2021-12-17 22:23:33 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/905b7639424a0fa80f81f734f6fdae1b5018a14a 8261404: Class.getReflectionFactory() is not thread-safe Reviewed-by: rriggs, mchung ! src/java.base/share/classes/java/lang/Class.java Changeset: cc44e137 Author: merykitty Committer: Vladimir Kozlov Date: 2021-12-17 23:42:28 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/cc44e137973808436311aaaa50916d051759f705 8278623: compiler/vectorapi/reshape/TestVectorCastAVX512.java after JDK-8259610 Reviewed-by: kvn, chagedorn, psandoz ! test/hotspot/jtreg/ProblemList.txt + test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorCastAVX512BW.java ! test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorReinterpret.java ! test/hotspot/jtreg/compiler/vectorapi/reshape/tests/TestVectorCast.java ! test/hotspot/jtreg/compiler/vectorapi/reshape/tests/TestVectorDoubleExpandShrink.java ! test/hotspot/jtreg/compiler/vectorapi/reshape/tests/TestVectorExpandShrink.java ! test/hotspot/jtreg/compiler/vectorapi/reshape/tests/TestVectorRebracket.java ! test/hotspot/jtreg/compiler/vectorapi/reshape/utils/TestCastMethods.java ! test/hotspot/jtreg/compiler/vectorapi/reshape/utils/UnsafeUtils.java ! test/hotspot/jtreg/compiler/vectorapi/reshape/utils/VectorReshapeHelper.java Changeset: 3c10b5db Author: Guoxiong Li Date: 2021-12-18 04:16:44 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3c10b5db38455b8aed88599f5743fd846bd0913e 8278104: C1 should support the compiler directive 'BreakAtExecute' Reviewed-by: xliu, phh, kvn ! src/hotspot/cpu/aarch64/c1_MacroAssembler_aarch64.cpp ! src/hotspot/cpu/arm/c1_MacroAssembler_arm.cpp ! src/hotspot/cpu/ppc/c1_MacroAssembler_ppc.cpp ! src/hotspot/cpu/s390/c1_MacroAssembler_s390.cpp ! src/hotspot/cpu/x86/c1_MacroAssembler_x86.cpp ! src/hotspot/share/c1/c1_LIRAssembler.cpp ! src/hotspot/share/c1/c1_MacroAssembler.hpp ! src/hotspot/share/compiler/compilerDirectives.cpp Changeset: 6f0e8da6 Author: Doug Simon Date: 2021-12-18 06:48:00 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/6f0e8da6d3bef340299e48977d5e17d05eabe682 8278871: [JVMCI] assert((uint)reason < 2* _trap_hist_limit) failed: oob Reviewed-by: kvn, never, dlong ! src/hotspot/share/jvmci/vmStructs_jvmci.cpp ! src/hotspot/share/oops/methodData.hpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/deoptimization.hpp ! src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotVMConfig.java Changeset: 63e43030 Author: Alex Menkov Date: 2021-12-18 08:08:47 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/63e43030ed1260d14df950342c39a377231a3f40 8278519: serviceability/jvmti/FieldAccessWatch/FieldAccessWatch.java failed "assert(handle != __null) failed: JNI handle should not be null" Reviewed-by: cjplummer, sspitsyn ! test/hotspot/jtreg/serviceability/jvmti/FieldAccessWatch/FieldAccessWatch.java ! test/hotspot/jtreg/serviceability/jvmti/FieldAccessWatch/libFieldAccessWatch.c Changeset: 31fbb872 Author: TejeshR13 Committer: Jayathirth D V Date: 2021-12-20 09:53:22 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/31fbb8723e973d4217c80cccba90b2dceb6fa792 6462028: MaskFormatter API documentation refers to getDisplayValue Reviewed-by: psadhukhan, aivanov, prr ! src/java.desktop/share/classes/javax/swing/text/MaskFormatter.java Changeset: 06206c71 Author: Roland Westrelin Date: 2021-12-20 10:00:14 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/06206c7199e9b49382d5f489ed5733525a95a535 8278949: Cleanups for 8277850 Co-authored-by: John R Rose Reviewed-by: kvn, jrose ! src/hotspot/share/opto/mulnode.cpp ! src/hotspot/share/opto/mulnode.hpp ! test/hotspot/jtreg/compiler/c2/irTests/TestShiftAndMask.java Changeset: 4c78c9ab Author: David Holmes Date: 2021-12-20 10:47:37 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/4c78c9ab80202b426efd8f6cc3533d642ae9ba19 8270929: Obsolete the FilterSpuriousWakeups flag in JDK 19 Reviewed-by: hseigel, rehn ! src/hotspot/os/posix/os_posix.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/globals.hpp Changeset: 8549d8b5 Author: Calvin Cheung Date: 2021-12-20 23:04:40 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8549d8b5697606ef87bb3f72abcf14dd7eb8a151 8277100: Dynamic dump can inadvertently overwrite default CDS archive Reviewed-by: iklam, minqi, dholmes ! src/hotspot/share/runtime/arguments.cpp + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/DumpToDefaultArchive.java Changeset: 51796728 Author: Joe Darcy Date: 2021-12-21 00:25:56 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/517967284cf607c0137e088a33ab5eb98d59542d 8278953: Clarify Class.getDeclaredConstructor specification Reviewed-by: mchung, alanb ! src/java.base/share/classes/java/lang/Class.java Changeset: ff5d4176 Author: Thomas Schatzl Date: 2021-12-21 09:51:21 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ff5d41762d5ba31e88c6cb9207a8ae57f34a69b0 8278893: Parallel: Remove GCWorkerDelayMillis Reviewed-by: ayang, mli ! src/hotspot/share/gc/parallel/parallel_globals.hpp ! src/hotspot/share/gc/parallel/psCardTable.cpp ! src/hotspot/share/gc/parallel/psPromotionManager.inline.hpp Changeset: 29bd7363 Author: Aleksey Shipilev Date: 2021-12-21 14:01:47 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/29bd73638a22d341767a1266723a7d7263e17093 8277893: Arraycopy stress tests Reviewed-by: kvn, mli ! test/hotspot/jtreg/TEST.groups + test/hotspot/jtreg/compiler/arraycopy/stress/AbstractStressArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressBooleanArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressByteArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressCharArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressDoubleArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressFloatArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressIntArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressLongArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressObjectArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressShortArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/TestStressArrayCopy.java Changeset: f4f2f32c Author: Stefan Johansson Date: 2021-12-21 14:03:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f4f2f32cd16158d8d4d2b552cd74531f25c45a29 8278917: Use Prev Bitmap for recording evac failed objects Reviewed-by: ayang, mli, tschatzl ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.hpp ! src/hotspot/share/gc/g1/g1CollectedHeap.inline.hpp ! src/hotspot/share/gc/g1/g1ConcurrentMark.hpp ! src/hotspot/share/gc/g1/g1ConcurrentMark.inline.hpp ! src/hotspot/share/gc/g1/g1EvacFailure.cpp - src/hotspot/share/gc/g1/g1EvacFailureObjectsSet.cpp - src/hotspot/share/gc/g1/g1EvacFailureObjectsSet.hpp - src/hotspot/share/gc/g1/g1EvacFailureObjectsSet.inline.hpp ! src/hotspot/share/gc/g1/g1FullGCCompactTask.cpp ! src/hotspot/share/gc/g1/g1FullGCCompactTask.hpp ! src/hotspot/share/gc/g1/g1ParScanThreadState.cpp ! src/hotspot/share/gc/g1/g1RemSet.cpp ! src/hotspot/share/gc/g1/heapRegion.cpp ! src/hotspot/share/gc/g1/heapRegion.hpp ! src/hotspot/share/gc/g1/heapRegion.inline.hpp Changeset: f90425a1 Author: Roger Riggs Date: 2021-12-21 14:24:44 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f90425a1cbbc686045c87086af586e62f05f6c49 8278087: Deserialization filter and filter factory property error reporting under specified Reviewed-by: lancea, bpb ! src/java.base/share/classes/java/io/ObjectInputFilter.java ! src/java.base/share/classes/java/io/ObjectInputStream.java ! test/jdk/java/io/Serializable/serialFilter/InvalidGlobalFilterTest.java ! test/jdk/java/io/Serializable/serialFilter/SerialFactoryFaults.java Changeset: 8c0bb53f Author: Roger Riggs Date: 2021-12-21 15:16:19 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8c0bb53f5ba6e71b81c9cb99e6f1587150fe531a 8278044: ObjectInputStream methods invoking the OIF.CFG.getSerialFilterFactory() silent about error cases. Reviewed-by: lancea, bpb ! src/java.base/share/classes/java/io/ObjectInputStream.java Changeset: f7309060 Author: Robbin Ehn Date: 2021-12-21 16:12:32 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f7309060ded0edb1e614663572f876d83b77c28e 8278793: Interpreter(x64) intrinsify Thread.currentThread() Reviewed-by: rkennke, dcubed, dholmes ! src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp ! src/hotspot/cpu/x86/templateInterpreterGenerator_x86_64.cpp ! src/hotspot/share/interpreter/abstractInterpreter.cpp ! src/hotspot/share/interpreter/abstractInterpreter.hpp ! src/hotspot/share/interpreter/templateInterpreterGenerator.cpp ! src/hotspot/share/interpreter/templateInterpreterGenerator.hpp Changeset: f31dead6 Author: Daniel Jelinski Committer: Weijun Wang Date: 2021-12-21 18:24:31 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f31dead6c550444a836655ffdf97df8816e2d546 8279043: Some Security Exception Messages Miss Spaces Reviewed-by: weijun ! src/java.base/share/classes/com/sun/crypto/provider/GaloisCounterMode.java ! src/java.base/share/classes/com/sun/crypto/provider/TlsKeyMaterialGenerator.java ! src/java.base/share/classes/javax/crypto/Cipher.java ! src/java.base/share/classes/sun/security/pkcs/PKCS9Attribute.java ! src/java.base/share/classes/sun/security/pkcs12/PKCS12KeyStore.java ! src/java.base/share/classes/sun/security/rsa/RSAPadding.java ! src/java.base/share/classes/sun/security/ssl/CertificateAuthoritiesExtension.java ! src/java.base/share/classes/sun/security/util/DisabledAlgorithmConstraints.java ! src/java.base/share/classes/sun/security/x509/PolicyConstraintsExtension.java ! src/java.base/share/classes/sun/security/x509/PolicyInformation.java ! src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5MechFactory.java ! test/jdk/com/sun/crypto/provider/Cipher/AEAD/GCMBufferTest.java ! test/jdk/com/sun/crypto/provider/Cipher/AEAD/GCMShortBuffer.java ! test/jdk/sun/security/provider/PolicyParser/PrincipalExpansionError.java ! test/jdk/sun/security/ssl/X509TrustManagerImpl/CacertsLimit.java ! test/jdk/sun/security/tools/keytool/fakegen/jdk.crypto.ec/sun/security/ec/ECKeyPairGenerator.java Changeset: 6aeb40cf Author: Albert Mingkun Yang Date: 2021-12-21 20:49:59 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/6aeb40cf2a5cfc827797cd1321c8d96f36ef4f1d 8278396: G1: Initialize the BOT threshold to be region bottom Reviewed-by: tschatzl, sjohanss ! src/hotspot/share/gc/g1/g1BlockOffsetTable.cpp ! src/hotspot/share/gc/g1/g1BlockOffsetTable.hpp ! src/hotspot/share/gc/g1/heapRegion.cpp Changeset: 997b1eea Author: Albert Mingkun Yang Date: 2021-12-21 20:50:46 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/997b1eea6e3c572f905f88f3f5b047a5aa180d1e 8279060: Parallel: Remove unused PSVirtualSpace constructors Reviewed-by: mli, sjohanss, tschatzl ! src/hotspot/share/gc/parallel/psVirtualspace.cpp ! src/hotspot/share/gc/parallel/psVirtualspace.hpp Changeset: f5d7c777 Author: Mark Reinhold Date: 2021-12-17 00:34:03 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f5d7c777bc516fa2e711c19d5281ebf32384b543 8276826: Clarify the ModuleDescriptor.Version specification?s treatment of repeated punctuation characters Reviewed-by: mchung, darcy ! src/java.base/share/classes/java/lang/module/ModuleDescriptor.java Changeset: 8494fec6 Author: Jatin Bhateja Date: 2021-12-17 03:07:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8494fec665bfa51d1702827bd0aa4f4547e67729 8278796: Incorrect behavior of FloatVector.withLane on X86 Reviewed-by: sviswanathan, kvn ! src/hotspot/cpu/x86/x86.ad ! test/jdk/jdk/incubator/vector/Byte128VectorTests.java ! test/jdk/jdk/incubator/vector/Byte256VectorTests.java ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! test/jdk/jdk/incubator/vector/Byte64VectorTests.java ! test/jdk/jdk/incubator/vector/ByteMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Double128VectorTests.java ! test/jdk/jdk/incubator/vector/Double256VectorTests.java ! test/jdk/jdk/incubator/vector/Double512VectorTests.java ! test/jdk/jdk/incubator/vector/Double64VectorTests.java ! test/jdk/jdk/incubator/vector/DoubleMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Float128VectorTests.java ! test/jdk/jdk/incubator/vector/Float256VectorTests.java ! test/jdk/jdk/incubator/vector/Float512VectorTests.java ! test/jdk/jdk/incubator/vector/Float64VectorTests.java ! test/jdk/jdk/incubator/vector/FloatMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Int128VectorTests.java ! test/jdk/jdk/incubator/vector/Int256VectorTests.java ! test/jdk/jdk/incubator/vector/Int512VectorTests.java ! test/jdk/jdk/incubator/vector/Int64VectorTests.java ! test/jdk/jdk/incubator/vector/IntMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Long128VectorTests.java ! test/jdk/jdk/incubator/vector/Long256VectorTests.java ! test/jdk/jdk/incubator/vector/Long512VectorTests.java ! test/jdk/jdk/incubator/vector/Long64VectorTests.java ! test/jdk/jdk/incubator/vector/LongMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Short128VectorTests.java ! test/jdk/jdk/incubator/vector/Short256VectorTests.java ! test/jdk/jdk/incubator/vector/Short512VectorTests.java ! test/jdk/jdk/incubator/vector/Short64VectorTests.java ! test/jdk/jdk/incubator/vector/ShortMaxVectorTests.java ! test/jdk/jdk/incubator/vector/templates/Kernel-With-Op.template ! test/jdk/jdk/incubator/vector/templates/Unit-With-Op.template ! test/jdk/jdk/incubator/vector/templates/Unit-header.template Changeset: bb7efb35 Author: Roland Westrelin Date: 2021-12-17 07:45:44 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/bb7efb3517b0ac66a55607c14aae3aef1f11c892 8278790: Inner loop of long loop nest runs for too few iterations Reviewed-by: chagedorn, neliasso ! src/hotspot/share/opto/loopnode.cpp Changeset: b9a477bf Author: Roland Westrelin Date: 2021-12-17 07:46:47 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/b9a477bf19d9f276f6b1da8984eb56d7bd5fc137 8275638: GraphKit::combine_exception_states fails with "matching stack sizes" assert Reviewed-by: dlong, kvn ! src/hotspot/share/opto/callGenerator.cpp ! src/hotspot/share/opto/graphKit.cpp + test/hotspot/jtreg/compiler/exceptions/TestLateMHInlineExceptions.java Changeset: fffa73c1 Author: Erik Gahlin Date: 2021-12-17 09:49:44 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/fffa73c1ef377eb28371fc4094eea8725850de7d 8269425: 2 jdk/jfr/api/consumer/streaming tests failed to attach Reviewed-by: mgronlun ! test/jdk/jdk/jfr/api/consumer/streaming/TestJVMCrash.java ! test/jdk/jdk/jfr/api/consumer/streaming/TestJVMExit.java ! test/lib/jdk/test/lib/jfr/StreamingUtils.java Changeset: 9cd70906 Author: Naoto Sato Date: 2021-12-17 13:48:26 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9cd709060cf0244ddb71225b55ea4e3e7f41860e 8278587: StringTokenizer(String, String, boolean) documentation bug Backport-of: 8f5fdd864b6f1cf4a2d9d961d8d4118960f0751e ! src/java.base/share/classes/java/util/StringTokenizer.java Changeset: b46f0b0b Author: Igor Veresov Date: 2021-12-17 16:30:40 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/b46f0b0b1f2ada705f8b5aac9b7d8423699437a1 8277447: Hotspot C1 compiler crashes on Kotlin suspend fun with loop Reviewed-by: kvn, neliasso ! src/hotspot/share/c1/c1_Instruction.cpp + test/hotspot/jtreg/compiler/c1/TestC1PhiPlacementPathology.jasm + test/hotspot/jtreg/compiler/c1/TestC1PhiPlacementPathologyMain.java Changeset: 8fbe1724 Author: Artem Semenov Date: 2021-12-17 19:31:51 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8fbe1724e0f783132a65c45503addad9d98a329e 8278604: SwingSet2 table demo does not have accessible description set for images 8278526: [macos] Screen reader reads SwingSet2 JTable row selection as null, dimmed row for last column Reviewed-by: ant, kizune, pbansal ! src/demo/share/jfc/SwingSet2/TableDemo.java Changeset: a5f5d60f Author: Daniel D. Daugherty Date: 2021-12-17 21:24:51 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/a5f5d60f2529bb28eee6d309bfbde904e188e540 8273107: RunThese24H times out with "java.lang.management.ThreadInfo.getLockName()" is null Reviewed-by: rehn, coleenp, eosterlund ! src/hotspot/share/runtime/monitorDeflationThread.cpp ! src/hotspot/share/runtime/synchronizer.cpp ! src/hotspot/share/runtime/synchronizer.hpp ! src/hotspot/share/runtime/vmOperations.cpp ! src/hotspot/share/runtime/vmOperations.hpp ! src/hotspot/share/services/heapDumper.cpp ! src/hotspot/share/services/threadService.cpp ! src/hotspot/share/services/threadService.hpp Changeset: 36676db2 Author: Alexander Matveev Date: 2021-12-17 21:56:55 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/36676db2fdb810f6d9fe7be8a81b86244dbdbf71 8278970: [macos] SigningPackageTest is failed with runtime exception Reviewed-by: herrick, asemenyuk ! test/jdk/tools/jpackage/macosx/SigningPackageTest.java Changeset: deaf75a5 Author: Roland Westrelin Date: 2021-12-20 09:41:56 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/deaf75a58587f80046204de7559ff50b3b770bed 8278413: C2 crash when allocating array of size too large Reviewed-by: neliasso, kvn ! src/hotspot/share/opto/callnode.cpp ! src/hotspot/share/opto/callnode.hpp ! src/hotspot/share/opto/cfgnode.cpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/macro.cpp ! src/hotspot/share/opto/macro.hpp ! src/hotspot/share/opto/split_if.cpp + test/hotspot/jtreg/compiler/allocation/TestFailedAllocationBadGraph.java Changeset: ad128284 Author: Aleksandr Veselov Committer: Anton Tarasov Date: 2021-12-20 11:40:58 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ad1282842c5eefdad151afe6f4db97a09d643546 8278609: [macos] accessibility frame is misplaced on a secondary monitor on macOS Reviewed-by: ant, kizune ! src/java.desktop/macosx/native/libawt_lwawt/awt/a11y/CommonComponentAccessibility.m Changeset: 819f9bd0 Author: Smita Kamath Committer: Sandhya Viswanathan Date: 2021-12-20 20:09:42 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/819f9bd084fa49222a4310fbcf4933005e9f0ca4 8274323: compiler/codegen/aes/TestAESMain.java failed with "Error: invalid offset: -1434443640" after 8273297 Reviewed-by: sviswanathan, kvn ! src/hotspot/cpu/aarch64/matcher_aarch64.hpp ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/arm/matcher_arm.hpp ! src/hotspot/cpu/ppc/matcher_ppc.hpp ! src/hotspot/cpu/s390/matcher_s390.hpp ! src/hotspot/cpu/x86/matcher_x86.hpp ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/graphKit.hpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/runtime.cpp ! test/hotspot/jtreg/ProblemList-Xcomp.txt Changeset: 467f6549 Author: Aleksey Shipilev Date: 2021-12-21 12:33:59 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/467f654916764751746934f80877d49a5f107194 8279011: JFR: JfrChunkWriter incorrectly handles int64_t chunk size as size_t Reviewed-by: mgronlun ! src/hotspot/share/jfr/recorder/repository/jfrChunkWriter.cpp Changeset: db3d6d77 Author: Roger Riggs Date: 2021-12-21 15:42:36 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/db3d6d772411c4e7bc81d6411abb139462e1581f 8278087: Deserialization filter and filter factory property error reporting under specified Backport-of: f90425a1cbbc686045c87086af586e62f05f6c49 ! src/java.base/share/classes/java/io/ObjectInputFilter.java ! src/java.base/share/classes/java/io/ObjectInputStream.java ! test/jdk/java/io/Serializable/serialFilter/InvalidGlobalFilterTest.java ! test/jdk/java/io/Serializable/serialFilter/SerialFactoryFaults.java Changeset: ac7430cf Author: Roger Riggs Date: 2021-12-21 16:31:58 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ac7430cf7efba519c1fd8b1c1b23136bf158f19f 8278044: ObjectInputStream methods invoking the OIF.CFG.getSerialFilterFactory() silent about error cases. Backport-of: 8c0bb53f5ba6e71b81c9cb99e6f1587150fe531a ! src/java.base/share/classes/java/io/ObjectInputStream.java Changeset: 54517fa3 Author: Daniel D. Daugherty Date: 2021-12-21 17:42:26 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/54517fa3d80b50bfa8a4f6b7937b95e379a1dfeb 8279074: ProblemList compiler/codecache/jmx/PoolsIndependenceTest.java on macosx-aarch64 Reviewed-by: ccheung ! test/hotspot/jtreg/ProblemList.txt Changeset: 1128674d Author: Zhengyu Gu Date: 2021-12-21 19:02:01 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/1128674d7f3766dda8869b213e1fc629e44ea7a8 8278627: Shenandoah: TestHeapDump test failed Reviewed-by: shade, rkennke ! src/hotspot/share/gc/shenandoah/shenandoahClosures.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp Changeset: 803cb8a7 Author: Jesper Wilhelmsson Date: 2021-12-21 21:58:05 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/803cb8a76827a21fcf9e033b4ca6a777c509169b Merge ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/share/c1/c1_Instruction.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/library_call.cpp ! test/jdk/jdk/incubator/vector/Byte128VectorTests.java ! test/jdk/jdk/incubator/vector/Byte256VectorTests.java ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! test/jdk/jdk/incubator/vector/Byte64VectorTests.java ! test/jdk/jdk/incubator/vector/Double128VectorTests.java ! test/jdk/jdk/incubator/vector/Double256VectorTests.java ! test/jdk/jdk/incubator/vector/Double512VectorTests.java ! test/jdk/jdk/incubator/vector/Double64VectorTests.java ! test/jdk/jdk/incubator/vector/Float128VectorTests.java ! test/jdk/jdk/incubator/vector/Float256VectorTests.java ! test/jdk/jdk/incubator/vector/Float512VectorTests.java ! test/jdk/jdk/incubator/vector/Float64VectorTests.java ! test/jdk/jdk/incubator/vector/Int128VectorTests.java ! test/jdk/jdk/incubator/vector/Int256VectorTests.java ! test/jdk/jdk/incubator/vector/Int512VectorTests.java ! test/jdk/jdk/incubator/vector/Int64VectorTests.java ! test/jdk/jdk/incubator/vector/Long128VectorTests.java ! test/jdk/jdk/incubator/vector/Long256VectorTests.java ! test/jdk/jdk/incubator/vector/Long512VectorTests.java ! test/jdk/jdk/incubator/vector/Long64VectorTests.java ! test/jdk/jdk/incubator/vector/Short128VectorTests.java ! test/jdk/jdk/incubator/vector/Short256VectorTests.java ! test/jdk/jdk/incubator/vector/Short512VectorTests.java ! test/jdk/jdk/incubator/vector/Short64VectorTests.java ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/share/c1/c1_Instruction.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/library_call.cpp ! test/jdk/jdk/incubator/vector/Byte128VectorTests.java ! test/jdk/jdk/incubator/vector/Byte256VectorTests.java ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! test/jdk/jdk/incubator/vector/Byte64VectorTests.java ! test/jdk/jdk/incubator/vector/Double128VectorTests.java ! test/jdk/jdk/incubator/vector/Double256VectorTests.java ! test/jdk/jdk/incubator/vector/Double512VectorTests.java ! test/jdk/jdk/incubator/vector/Double64VectorTests.java ! test/jdk/jdk/incubator/vector/Float128VectorTests.java ! test/jdk/jdk/incubator/vector/Float256VectorTests.java ! test/jdk/jdk/incubator/vector/Float512VectorTests.java ! test/jdk/jdk/incubator/vector/Float64VectorTests.java ! test/jdk/jdk/incubator/vector/Int128VectorTests.java ! test/jdk/jdk/incubator/vector/Int256VectorTests.java ! test/jdk/jdk/incubator/vector/Int512VectorTests.java ! test/jdk/jdk/incubator/vector/Int64VectorTests.java ! test/jdk/jdk/incubator/vector/Long128VectorTests.java ! test/jdk/jdk/incubator/vector/Long256VectorTests.java ! test/jdk/jdk/incubator/vector/Long512VectorTests.java ! test/jdk/jdk/incubator/vector/Long64VectorTests.java ! test/jdk/jdk/incubator/vector/Short128VectorTests.java ! test/jdk/jdk/incubator/vector/Short256VectorTests.java ! test/jdk/jdk/incubator/vector/Short512VectorTests.java ! test/jdk/jdk/incubator/vector/Short64VectorTests.java Changeset: fb623f1d Author: Weijun Wang Date: 2021-12-21 22:13:04 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/fb623f1d2ee858fbc6edfeaaa702b5fcd832a0aa 8279066: entries.remove(entry) is useless in PKCS12KeyStore Reviewed-by: mullan ! src/java.base/share/classes/sun/security/pkcs12/PKCS12KeyStore.java Changeset: 00c0d108 Author: Chris Plummer Date: 2021-12-21 22:55:09 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/00c0d1087021603f3f09131cb0458ac8b9c110e5 8244670: convert clhsdb "whatis" command from javascript to java Reviewed-by: sspitsyn, kevinw ! src/jdk.hotspot.agent/doc/clhsdb.html ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/CommandProcessor.java ! test/hotspot/jtreg/serviceability/sa/ClhsdbFindPC.java Changeset: 84d3333c Author: Daniel D. Daugherty Date: 2021-12-21 20:39:06 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/84d3333c7a979742021e759766a7290539b569f4 8279081: ProblemList jdk/jfr/event/oldobject/TestLargeRootSet.java on 2 platforms Reviewed-by: azvegint, sspitsyn ! test/jdk/ProblemList.txt Changeset: bf282649 Author: Jesper Wilhelmsson Date: 2021-12-21 23:07:35 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/bf2826499a26363d01a5269bd2f54e9c363d4cdc Merge Changeset: d0ea7c9d Author: Chris Plummer Date: 2021-12-22 03:56:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/d0ea7c9db9cc9ce80b60c2f94c53bb307792fc51 8279024: Remove javascript references from clhsdb.html Reviewed-by: kevinw, sspitsyn ! src/jdk.hotspot.agent/doc/clhsdb.html ! src/jdk.hotspot.agent/doc/index.html Changeset: 3f41fdec Author: Albert Mingkun Yang Date: 2021-12-22 13:44:20 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3f41fdecdb6d131a5afe6e0a39d7414c222fe4fb 8279063: Consolidate push and push_if_necessary in PreservedMarks Reviewed-by: rkennke, mli, tschatzl ! src/hotspot/share/gc/g1/g1FullGCMarker.inline.hpp ! src/hotspot/share/gc/shared/preservedMarks.hpp ! src/hotspot/share/gc/shared/preservedMarks.inline.hpp ! test/hotspot/gtest/gc/shared/test_preservedMarks.cpp Changeset: a6903f80 Author: Yumin Qi Date: 2021-12-22 16:14:59 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/a6903f806a9071b2c6c4dbb190b0041867e5bb80 8279018: CRC calculation in CDS should not include _version and _head_size Reviewed-by: iklam, ccheung ! src/hotspot/share/cds/filemap.cpp ! src/hotspot/share/include/cds.h ! src/hotspot/share/prims/whitebox.cpp ! test/hotspot/jtreg/runtime/cds/appcds/SharedArchiveConsistency.java ! test/lib/jdk/test/lib/cds/CDSArchiveUtils.java ! test/lib/jdk/test/whitebox/WhiteBox.java ! test/lib/sun/hotspot/WhiteBox.java Changeset: 9a478b34 Author: Yumin Qi Date: 2021-12-22 16:17:33 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9a478b347e1ef7aecfc8bbc2e3c5e6ac7c23ba36 8279022: JCmdTestFileSafety.java should check file time stamp for test result Reviewed-by: ccheung ! test/hotspot/jtreg/runtime/cds/appcds/jcmd/JCmdTestFileSafety.java Changeset: 9ee3ccfe Author: Smita Kamath Committer: Sandhya Viswanathan Date: 2021-12-21 22:09:43 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9ee3ccfee2c9cc54ac7dca49fbf35135e627ef18 8279045: Intrinsics missing vzeroupper instruction Reviewed-by: neliasso, sviswanathan, kvn ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp Changeset: 97c5cd7f Author: Jatin Bhateja Date: 2021-12-22 03:17:03 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/97c5cd7facf1d3565038c078d5688c7da15ad14e 8278508: Enable X86 maskAll instruction pattern for 32 bit JVM. Reviewed-by: kvn, sviswanathan ! src/hotspot/cpu/x86/assembler_x86.cpp ! src/hotspot/cpu/x86/assembler_x86.hpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.hpp ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/cpu/x86/x86_32.ad ! src/hotspot/cpu/x86/x86_64.ad ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! test/jdk/jdk/incubator/vector/ByteMaxVectorTests.java ! test/jdk/jdk/incubator/vector/VectorReshapeTests.java Changeset: 73414391 Author: Kevin Walls Date: 2021-12-22 11:36:53 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/734143918de540382b5a0754bb7be1500b6f3596 8279007: jstatd fails to start because SecurityManager is disabled Reviewed-by: alanb, sspitsyn, mullan ! make/modules/jdk.jstatd/Launcher.gmk ! test/jdk/sun/tools/jstatd/JstatdTest.java Changeset: 713fbeb0 Author: Markus Gr?nlund Date: 2021-12-22 12:30:55 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/713fbeb050a8f79d3a662106125c3f14f3952741 8278987: RunThese24H.java failed with EXCEPTION_ACCESS_VIOLATION in __write_sample_info__ Reviewed-by: jbachorik ! src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleCheckpoint.cpp Changeset: e49d4a98 Author: Erik Gahlin Date: 2021-12-22 13:59:20 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e49d4a9870c19f55a1d5473743880b415a8ead3c 8271447: java.nio.file.InvalidPathException: Malformed input or input contains unmappable characters Reviewed-by: mgronlun ! src/jdk.jfr/share/classes/jdk/jfr/internal/management/ChunkFilename.java Changeset: dfb15c3e Author: Erik Gahlin Date: 2021-12-22 14:29:46 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/dfb15c3e343974eb138ca1a8db3364cd2bac70a4 8274315: JFR: One closed state per file or stream Reviewed-by: mgronlun ! src/jdk.jfr/share/classes/jdk/jfr/consumer/RecordingFile.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/AbstractEventStream.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/ChunkParser.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/EventDirectoryStream.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/EventFileStream.java + src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/ParserState.java Changeset: f1fbba23 Author: Jesper Wilhelmsson Date: 2021-12-22 16:46:43 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f1fbba23ebdb28a32977241f8e85b60e10878cbc Merge ! src/hotspot/cpu/x86/assembler_x86.cpp ! src/hotspot/cpu/x86/assembler_x86.hpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.hpp ! src/hotspot/cpu/x86/x86.ad ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! src/hotspot/cpu/x86/assembler_x86.cpp ! src/hotspot/cpu/x86/assembler_x86.hpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.hpp ! src/hotspot/cpu/x86/x86.ad ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java Changeset: d64820df Author: Valerie Peng Date: 2021-12-22 19:50:51 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/d64820dfefc0bac578df43fe58d2bce8577ec94e 8209398: sun/security/pkcs11/KeyStore/SecretKeysBasic.sh failed with "PKCS11Exception: CKR_ATTRIBUTE_SENSITIVE" Reviewed-by: hchao, weijun ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Key.java ! test/jdk/ProblemList.txt Changeset: eaefb1a1 Author: Chris Plummer Date: 2021-12-22 23:02:41 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/eaefb1a1ed9edea440628e3a5c5483ebd52bfcb0 8244669: convert clhsdb "mem" command from javascript to java Reviewed-by: sspitsyn, kevinw, poonam ! src/jdk.hotspot.agent/doc/clhsdb.html ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/CommandProcessor.java ! test/hotspot/jtreg/serviceability/sa/ClhsdbFindPC.java Changeset: ad1dc9c2 Author: Yi Yang Date: 2021-12-23 02:14:52 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ad1dc9c2ae5463363aff20072a3f2ca4ea23acd2 8278125: Some preallocated OOMEs are missing stack trace Co-authored-by: dongyun.tdy Reviewed-by: dholmes, coleenp ! src/hotspot/share/memory/universe.cpp ! src/hotspot/share/memory/universe.hpp ! src/hotspot/share/utilities/exceptions.cpp + test/hotspot/jtreg/runtime/ErrorHandling/GenOutOfMemoryError.java Changeset: 214f98f6 Author: Andrew Leonard Date: 2021-12-23 11:01:26 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/214f98f6b07e312e6f4ded5364a94277114784e7 8278766: Enable OpenJDK build support for reproducible jars and jmods using --date Reviewed-by: erikj ! make/CreateJmods.gmk ! make/InitSupport.gmk ! make/autoconf/basic_tools.m4 ! make/autoconf/boot-jdk.m4 ! make/autoconf/spec.gmk.in ! make/autoconf/util.m4 ! make/common/JarArchive.gmk Changeset: 87cc4e50 Author: Daniel Le Committer: Naoto Sato Date: 2021-12-23 14:11:11 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/87cc4e5009f6b900c62a91dda1c2f98e4821a492 8276302: Locale.filterTags methods ignore actual weight when matching "*" (as if it is 1) Reviewed-by: naoto ! src/java.base/share/classes/sun/util/locale/LocaleMatcher.java ! test/jdk/java/util/Locale/Bug7069824.java Changeset: 558a6824 Author: Jonathan Gibbons Date: 2021-12-23 15:19:55 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/558a6824c6db805a2b220ab13ed95624df515538 8279115: Fix internal doc comment errors. Reviewed-by: mli ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/ConstructorWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/EnumConstantWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/MethodWriter.java Changeset: bc0466c7 Author: Andrew Leonard Date: 2021-12-23 18:03:05 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/bc0466c7ca57f14b1e6285e2a39755d57c8de376 8279182: MakeZipReproducible ZipEntry timestamps not localized to UTC Reviewed-by: erikj ! make/jdk/src/classes/build/tools/makezipreproducible/MakeZipReproducible.java Changeset: ff2ca4f2 Author: Vicente Romero Date: 2021-12-23 19:12:24 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ff2ca4f21b7bd9d5afc6c74d8d369b3a0b8a4f19 8205187: javac/javadoc should not crash if no java.lang; crash message obsolete Reviewed-by: jjg ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties ! test/langtools/tools/javac/diags/examples/NoJavaLang.java ! test/langtools/tools/javac/fatalErrors/NoJavaLangTest.java Changeset: 7aff03ae Author: Xin Liu Date: 2021-12-23 20:25:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7aff03aee1a5cd70638d8bbafeb7765bc7beea45 8267517: async logging for stdout and stderr Reviewed-by: dholmes, ysuenaga ! src/hotspot/share/logging/logAsyncWriter.cpp ! src/hotspot/share/logging/logAsyncWriter.hpp ! src/hotspot/share/logging/logFileOutput.cpp ! src/hotspot/share/logging/logFileOutput.hpp ! src/hotspot/share/logging/logFileStreamOutput.cpp ! src/hotspot/share/logging/logFileStreamOutput.hpp ! test/hotspot/gtest/logging/test_asynclog.cpp Changeset: 9df200f7 Author: Jonathan Gibbons Date: 2021-12-23 21:15:21 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9df200f749e6326f1d4a22cca770284f38c2de8c 8278795: Create test library and tests for langtools snippets Reviewed-by: hannesw + test/langtools/jdk/javadoc/doclet/testDocletExample/TestDocletExample.java + test/langtools/tools/javac/api/snippets/TestJavaxToolsSnippets.java + test/langtools/tools/lib/snippets/SnippetUtils.java Changeset: 2be3e7ef Author: Coleen Phillimore Date: 2021-12-22 17:19:00 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/2be3e7ef1cff1aae6faf1f4f0545d561af48d0ba 8278239: vmTestbase/nsk/jvmti/RedefineClasses/StressRedefine failed with EXCEPTION_ACCESS_VIOLATION at 0x000000000000000d Reviewed-by: kvn, sspitsyn, eosterlund ! src/hotspot/share/code/codeCache.cpp Changeset: 04ee9211 Author: Stuart Marks Date: 2021-12-22 18:56:30 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/04ee9211fcc59178b3bfdfdda5e0def9b0f29ada 8278967: rmiregistry fails to start because SecurityManager is disabled Reviewed-by: alanb, erikj ! make/modules/java.rmi/Launcher.gmk ! test/jdk/tools/launcher/VersionCheck.java Changeset: 9d5ae2e3 Author: Aleksey Shipilev Date: 2021-12-22 20:17:39 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9d5ae2e38074c3df354aeab19ebbab7d4872165a 8279076: C2: Bad AD file when matching SqrtF with UseSSE=0 Reviewed-by: kvn, sviswanathan ! src/hotspot/cpu/x86/x86.ad + test/hotspot/jtreg/compiler/c2/TestSqrt.java Changeset: 730f6708 Author: Erik Gahlin Date: 2021-12-23 15:03:06 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/730f67081dcda37df7fc40eda99ebd39028be15f 8268297: jdk/jfr/api/consumer/streaming/TestLatestEvent.java times out Reviewed-by: mgronlun ! src/hotspot/share/jfr/recorder/repository/jfrChunk.cpp ! test/jdk/ProblemList.txt ! test/jdk/jdk/jfr/api/consumer/streaming/TestLatestEvent.java Changeset: 04ad6689 Author: Aleksey Shipilev Date: 2021-12-23 16:22:10 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/04ad668921abbd71dfbc474eed6f1760f7a541b1 8279204: [BACKOUT] JDK-8278413: C2 crash when allocating array of size too large Reviewed-by: chagedorn, kvn ! src/hotspot/share/opto/callnode.cpp ! src/hotspot/share/opto/callnode.hpp ! src/hotspot/share/opto/cfgnode.cpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/macro.cpp ! src/hotspot/share/opto/macro.hpp ! src/hotspot/share/opto/split_if.cpp - test/hotspot/jtreg/compiler/allocation/TestFailedAllocationBadGraph.java Changeset: a3b1c6b0 Author: Jesper Wilhelmsson Date: 2021-12-23 21:17:50 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/a3b1c6b03600da21b00a1f37ea4712096d636b14 Merge ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/share/opto/compile.cpp ! test/jdk/ProblemList.txt ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/share/opto/compile.cpp ! test/jdk/ProblemList.txt Changeset: 4669bcd8 Author: Vicente Romero Date: 2021-12-23 21:26:31 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/4669bcd877c89b63739abd8087ea934c7126fb3f 8279244: test accompaning fix for JDK-8205187 is failing in Windows Reviewed-by: dcubed, mikael ! test/langtools/tools/javac/fatalErrors/NoJavaLangTest.java Changeset: 9d99a377 Author: Daniel Jelinski Committer: Anthony Scarpino Date: 2021-12-24 00:01:46 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9d99a377bfb6ffa890db049aee575e97914fc2a1 8277881: Missing SessionID in TLS1.3 resumption in compatibility mode Reviewed-by: ascarpino ! src/java.base/share/classes/sun/security/ssl/ClientHello.java ! src/java.base/share/classes/sun/security/ssl/SSLConfiguration.java ! test/jdk/javax/net/ssl/SSLSession/ResumeTLS13withSNI.java Changeset: 22c15dda Author: Xin Liu Date: 2021-12-24 00:57:03 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/22c15ddae5ef7431f677edf4df9a403613716def 8279189: Inaccurate comment about class VMThread Reviewed-by: dholmes, kbarrett ! src/hotspot/share/runtime/vmThread.hpp Changeset: d52392c1 Author: Jonathan Gibbons Date: 2021-12-24 01:48:13 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/d52392c15e47dbfbba7eda0739ff8e6f29613b53 8276892: Provide a way to emulate exceptional situations in FileManager when using JavadocTester Reviewed-by: prappo ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets.properties ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/Main.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/Start.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/resources/javadoc.properties ! test/langtools/jdk/javadoc/lib/javadoc/tester/JavadocTester.java + test/langtools/jdk/javadoc/lib/javadoc/tester/TestJavaFileManagerBuilder.java + test/langtools/jdk/javadoc/testTFMBuilder/TestTFMBuilder.java Changeset: 70c6df6b Author: Andrey Turbanov Committer: Sergey Bylokhov Date: 2021-12-24 02:02:39 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/70c6df6be431fe11c5441986ed04040f9ec3b750 8274893: Update java.desktop classes to use try-with-resources Reviewed-by: serb ! src/java.desktop/share/classes/com/sun/imageio/plugins/png/PNGImageReader.java ! src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/Metacity.java ! src/java.desktop/share/classes/com/sun/media/sound/AudioFileSoundbankReader.java ! src/java.desktop/share/classes/com/sun/media/sound/DLSSoundbank.java ! src/java.desktop/share/classes/com/sun/media/sound/JARSoundbankReader.java ! src/java.desktop/share/classes/com/sun/media/sound/ModelByteBuffer.java ! src/java.desktop/share/classes/com/sun/media/sound/ModelByteBufferWavetable.java ! src/java.desktop/share/classes/com/sun/media/sound/SF2Soundbank.java ! src/java.desktop/share/classes/com/sun/media/sound/SoftSynthesizer.java ! src/java.desktop/share/classes/com/sun/media/sound/StandardMidiFileReader.java ! src/java.desktop/share/classes/com/sun/media/sound/StandardMidiFileWriter.java ! src/java.desktop/share/classes/java/awt/Font.java ! src/java.desktop/share/classes/java/awt/Toolkit.java ! src/java.desktop/share/classes/java/beans/Beans.java ! src/java.desktop/share/classes/javax/imageio/ImageIO.java ! src/java.desktop/share/classes/javax/swing/JEditorPane.java ! src/java.desktop/share/classes/javax/swing/UIManager.java ! src/java.desktop/share/classes/javax/swing/text/html/HTMLEditorKit.java ! src/java.desktop/share/classes/javax/swing/text/html/StyleSheet.java ! src/java.desktop/share/classes/sun/awt/DebugSettings.java ! src/java.desktop/share/classes/sun/awt/FontConfiguration.java ! src/java.desktop/share/classes/sun/print/PSPrinterJob.java ! src/java.desktop/unix/classes/sun/font/FcFontConfiguration.java ! src/java.desktop/unix/classes/sun/font/MFontConfiguration.java Changeset: b0794b36 Author: duke Date: 2021-12-24 11:00:49 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/b0794b363a1e47297b5cfd395645c099091fb69c Automatic merge of jdk:master into master Changeset: 58c5b1f2 Author: duke Date: 2021-12-24 11:01:07 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/58c5b1f2d4aaf7f936b850a678393c4e2d21d13a Automatic merge of master into foreign-memaccess+abi ! src/hotspot/share/code/codeCache.cpp ! src/hotspot/share/opto/callGenerator.cpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/runtime/globals.hpp ! test/jdk/ProblemList.txt ! src/hotspot/share/code/codeCache.cpp ! src/hotspot/share/opto/callGenerator.cpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/runtime/globals.hpp ! test/jdk/ProblemList.txt Changeset: 812e426e Author: duke Date: 2021-12-24 11:01:22 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/812e426ee0c10d5cf6e9b3ab5e934b1ad6cd373b Automatic merge of foreign-memaccess+abi into foreign-jextract ! make/autoconf/spec.gmk.in ! test/jdk/tools/launcher/VersionCheck.java ! make/autoconf/spec.gmk.in ! test/jdk/tools/launcher/VersionCheck.java From duke at openjdk.java.net Fri Dec 24 11:12:10 2021 From: duke at openjdk.java.net (duke) Date: Fri, 24 Dec 2021 11:12:10 GMT Subject: git: openjdk/panama-foreign: foreign-memaccess+abi: 85 new changesets Message-ID: <44f79204-e621-4d77-b9b6-645e9c475206@openjdk.org> Changeset: 6412d57a Author: Weijun Wang Date: 2021-12-17 12:14:17 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/6412d57a0a92ba08cc3db085b371ae1f7ba35ad5 8278560: X509KeyManagerImpl::getAliases might return a good key with others Reviewed-by: xuelei ! src/java.base/share/classes/sun/security/ssl/X509KeyManagerImpl.java + test/jdk/sun/security/ssl/X509KeyManager/NoGoodKey.java Changeset: abab1738 Author: Roman Kennke Date: 2021-12-17 13:33:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/abab1738a702648e91f4c3ad91f71b7633914a31 8278568: Consolidate filler objects Reviewed-by: tschatzl, mli, ayang ! src/hotspot/share/gc/parallel/psPromotionLAB.cpp ! src/hotspot/share/gc/parallel/psPromotionLAB.hpp ! src/hotspot/share/gc/shared/collectedHeap.cpp ! src/hotspot/share/gc/shared/collectedHeap.hpp ! src/hotspot/share/gc/shared/space.cpp ! src/hotspot/share/gc/shared/space.hpp ! src/hotspot/share/oops/oop.hpp Changeset: 3607a5cd Author: Coleen Phillimore Date: 2021-12-17 13:42:54 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3607a5cdd9a3013851c8faefd346f04934f897e6 8277216: Examine InstanceKlass::_misc_flags for concurrency issues Reviewed-by: hseigel, dholmes ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/utilities/accessFlags.hpp Changeset: a68f28ce Author: Nils Eliasson Date: 2021-12-17 15:08:45 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/a68f28cea6a726aa57c04a4fc5a665cae3513154 8278909: Unproblemlist AdaptiveBlocking001 Reviewed-by: chagedorn, eosterlund, stefank ! test/hotspot/jtreg/ProblemList-zgc.txt Changeset: e45e0b05 Author: Phil Race Date: 2021-12-17 15:10:03 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e45e0b05b9e8da8da72bf227cede319fa207a551 8278937: JCK test for java_awt/geom/Line2D.Float fails after 8277868 Reviewed-by: jdv, kcr, rriggs ! src/java.desktop/share/classes/java/awt/geom/Line2D.java ! src/java.desktop/share/classes/sun/awt/geom/Curve.java ! src/java.desktop/share/classes/sun/java2d/Spans.java Changeset: 769f14db Author: Harold Seigel Date: 2021-12-17 15:11:16 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/769f14db847813f5a3601e9ec21e6cadbd99ee96 8278384: Bytecodes::result_type() for arraylength returns T_VOID instead of T_INT Reviewed-by: lfoltan, dholmes ! src/hotspot/share/interpreter/bytecodeUtils.cpp ! src/hotspot/share/interpreter/bytecodes.cpp Changeset: b17f8d5b Author: Gilles Duboscq Date: 2021-12-17 15:36:07 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/b17f8d5b6c4d4ec75bb57f1d2009e30332bdb3ce 8278954: Using clang together with devkit on linux doesn't work for building Reviewed-by: erikj ! make/autoconf/flags.m4 Changeset: 0bfc204a Author: Albert Mingkun Yang Date: 2021-12-17 15:45:16 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/0bfc204a78878872f16019bc75dac7844876ed60 8278956: Remove unimplemented PLAB::allocate_aligned Reviewed-by: tschatzl ! src/hotspot/share/gc/shared/plab.hpp Changeset: 022e4f0f Author: Andrey Turbanov Committer: Vicente Romero Date: 2021-12-17 18:52:37 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/022e4f0f1c4862315b34595d6df228a49f67cb2e 8275242: Remove redundant stream() call before forEach in jdk.compiler Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/api/JavacTrees.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/TypeAnnotations.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/AttrRecover.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/InferenceContext.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java Changeset: 905b7639 Author: liach Committer: Mandy Chung Date: 2021-12-17 22:23:33 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/905b7639424a0fa80f81f734f6fdae1b5018a14a 8261404: Class.getReflectionFactory() is not thread-safe Reviewed-by: rriggs, mchung ! src/java.base/share/classes/java/lang/Class.java Changeset: cc44e137 Author: merykitty Committer: Vladimir Kozlov Date: 2021-12-17 23:42:28 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/cc44e137973808436311aaaa50916d051759f705 8278623: compiler/vectorapi/reshape/TestVectorCastAVX512.java after JDK-8259610 Reviewed-by: kvn, chagedorn, psandoz ! test/hotspot/jtreg/ProblemList.txt + test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorCastAVX512BW.java ! test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorReinterpret.java ! test/hotspot/jtreg/compiler/vectorapi/reshape/tests/TestVectorCast.java ! test/hotspot/jtreg/compiler/vectorapi/reshape/tests/TestVectorDoubleExpandShrink.java ! test/hotspot/jtreg/compiler/vectorapi/reshape/tests/TestVectorExpandShrink.java ! test/hotspot/jtreg/compiler/vectorapi/reshape/tests/TestVectorRebracket.java ! test/hotspot/jtreg/compiler/vectorapi/reshape/utils/TestCastMethods.java ! test/hotspot/jtreg/compiler/vectorapi/reshape/utils/UnsafeUtils.java ! test/hotspot/jtreg/compiler/vectorapi/reshape/utils/VectorReshapeHelper.java Changeset: 3c10b5db Author: Guoxiong Li Date: 2021-12-18 04:16:44 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3c10b5db38455b8aed88599f5743fd846bd0913e 8278104: C1 should support the compiler directive 'BreakAtExecute' Reviewed-by: xliu, phh, kvn ! src/hotspot/cpu/aarch64/c1_MacroAssembler_aarch64.cpp ! src/hotspot/cpu/arm/c1_MacroAssembler_arm.cpp ! src/hotspot/cpu/ppc/c1_MacroAssembler_ppc.cpp ! src/hotspot/cpu/s390/c1_MacroAssembler_s390.cpp ! src/hotspot/cpu/x86/c1_MacroAssembler_x86.cpp ! src/hotspot/share/c1/c1_LIRAssembler.cpp ! src/hotspot/share/c1/c1_MacroAssembler.hpp ! src/hotspot/share/compiler/compilerDirectives.cpp Changeset: 6f0e8da6 Author: Doug Simon Date: 2021-12-18 06:48:00 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/6f0e8da6d3bef340299e48977d5e17d05eabe682 8278871: [JVMCI] assert((uint)reason < 2* _trap_hist_limit) failed: oob Reviewed-by: kvn, never, dlong ! src/hotspot/share/jvmci/vmStructs_jvmci.cpp ! src/hotspot/share/oops/methodData.hpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/deoptimization.hpp ! src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotVMConfig.java Changeset: 63e43030 Author: Alex Menkov Date: 2021-12-18 08:08:47 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/63e43030ed1260d14df950342c39a377231a3f40 8278519: serviceability/jvmti/FieldAccessWatch/FieldAccessWatch.java failed "assert(handle != __null) failed: JNI handle should not be null" Reviewed-by: cjplummer, sspitsyn ! test/hotspot/jtreg/serviceability/jvmti/FieldAccessWatch/FieldAccessWatch.java ! test/hotspot/jtreg/serviceability/jvmti/FieldAccessWatch/libFieldAccessWatch.c Changeset: 31fbb872 Author: TejeshR13 Committer: Jayathirth D V Date: 2021-12-20 09:53:22 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/31fbb8723e973d4217c80cccba90b2dceb6fa792 6462028: MaskFormatter API documentation refers to getDisplayValue Reviewed-by: psadhukhan, aivanov, prr ! src/java.desktop/share/classes/javax/swing/text/MaskFormatter.java Changeset: 06206c71 Author: Roland Westrelin Date: 2021-12-20 10:00:14 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/06206c7199e9b49382d5f489ed5733525a95a535 8278949: Cleanups for 8277850 Co-authored-by: John R Rose Reviewed-by: kvn, jrose ! src/hotspot/share/opto/mulnode.cpp ! src/hotspot/share/opto/mulnode.hpp ! test/hotspot/jtreg/compiler/c2/irTests/TestShiftAndMask.java Changeset: 4c78c9ab Author: David Holmes Date: 2021-12-20 10:47:37 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/4c78c9ab80202b426efd8f6cc3533d642ae9ba19 8270929: Obsolete the FilterSpuriousWakeups flag in JDK 19 Reviewed-by: hseigel, rehn ! src/hotspot/os/posix/os_posix.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/globals.hpp Changeset: 8549d8b5 Author: Calvin Cheung Date: 2021-12-20 23:04:40 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8549d8b5697606ef87bb3f72abcf14dd7eb8a151 8277100: Dynamic dump can inadvertently overwrite default CDS archive Reviewed-by: iklam, minqi, dholmes ! src/hotspot/share/runtime/arguments.cpp + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/DumpToDefaultArchive.java Changeset: 51796728 Author: Joe Darcy Date: 2021-12-21 00:25:56 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/517967284cf607c0137e088a33ab5eb98d59542d 8278953: Clarify Class.getDeclaredConstructor specification Reviewed-by: mchung, alanb ! src/java.base/share/classes/java/lang/Class.java Changeset: ff5d4176 Author: Thomas Schatzl Date: 2021-12-21 09:51:21 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ff5d41762d5ba31e88c6cb9207a8ae57f34a69b0 8278893: Parallel: Remove GCWorkerDelayMillis Reviewed-by: ayang, mli ! src/hotspot/share/gc/parallel/parallel_globals.hpp ! src/hotspot/share/gc/parallel/psCardTable.cpp ! src/hotspot/share/gc/parallel/psPromotionManager.inline.hpp Changeset: 29bd7363 Author: Aleksey Shipilev Date: 2021-12-21 14:01:47 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/29bd73638a22d341767a1266723a7d7263e17093 8277893: Arraycopy stress tests Reviewed-by: kvn, mli ! test/hotspot/jtreg/TEST.groups + test/hotspot/jtreg/compiler/arraycopy/stress/AbstractStressArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressBooleanArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressByteArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressCharArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressDoubleArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressFloatArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressIntArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressLongArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressObjectArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressShortArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/TestStressArrayCopy.java Changeset: f4f2f32c Author: Stefan Johansson Date: 2021-12-21 14:03:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f4f2f32cd16158d8d4d2b552cd74531f25c45a29 8278917: Use Prev Bitmap for recording evac failed objects Reviewed-by: ayang, mli, tschatzl ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.hpp ! src/hotspot/share/gc/g1/g1CollectedHeap.inline.hpp ! src/hotspot/share/gc/g1/g1ConcurrentMark.hpp ! src/hotspot/share/gc/g1/g1ConcurrentMark.inline.hpp ! src/hotspot/share/gc/g1/g1EvacFailure.cpp - src/hotspot/share/gc/g1/g1EvacFailureObjectsSet.cpp - src/hotspot/share/gc/g1/g1EvacFailureObjectsSet.hpp - src/hotspot/share/gc/g1/g1EvacFailureObjectsSet.inline.hpp ! src/hotspot/share/gc/g1/g1FullGCCompactTask.cpp ! src/hotspot/share/gc/g1/g1FullGCCompactTask.hpp ! src/hotspot/share/gc/g1/g1ParScanThreadState.cpp ! src/hotspot/share/gc/g1/g1RemSet.cpp ! src/hotspot/share/gc/g1/heapRegion.cpp ! src/hotspot/share/gc/g1/heapRegion.hpp ! src/hotspot/share/gc/g1/heapRegion.inline.hpp Changeset: f90425a1 Author: Roger Riggs Date: 2021-12-21 14:24:44 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f90425a1cbbc686045c87086af586e62f05f6c49 8278087: Deserialization filter and filter factory property error reporting under specified Reviewed-by: lancea, bpb ! src/java.base/share/classes/java/io/ObjectInputFilter.java ! src/java.base/share/classes/java/io/ObjectInputStream.java ! test/jdk/java/io/Serializable/serialFilter/InvalidGlobalFilterTest.java ! test/jdk/java/io/Serializable/serialFilter/SerialFactoryFaults.java Changeset: 8c0bb53f Author: Roger Riggs Date: 2021-12-21 15:16:19 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8c0bb53f5ba6e71b81c9cb99e6f1587150fe531a 8278044: ObjectInputStream methods invoking the OIF.CFG.getSerialFilterFactory() silent about error cases. Reviewed-by: lancea, bpb ! src/java.base/share/classes/java/io/ObjectInputStream.java Changeset: f7309060 Author: Robbin Ehn Date: 2021-12-21 16:12:32 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f7309060ded0edb1e614663572f876d83b77c28e 8278793: Interpreter(x64) intrinsify Thread.currentThread() Reviewed-by: rkennke, dcubed, dholmes ! src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp ! src/hotspot/cpu/x86/templateInterpreterGenerator_x86_64.cpp ! src/hotspot/share/interpreter/abstractInterpreter.cpp ! src/hotspot/share/interpreter/abstractInterpreter.hpp ! src/hotspot/share/interpreter/templateInterpreterGenerator.cpp ! src/hotspot/share/interpreter/templateInterpreterGenerator.hpp Changeset: f31dead6 Author: Daniel Jelinski Committer: Weijun Wang Date: 2021-12-21 18:24:31 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f31dead6c550444a836655ffdf97df8816e2d546 8279043: Some Security Exception Messages Miss Spaces Reviewed-by: weijun ! src/java.base/share/classes/com/sun/crypto/provider/GaloisCounterMode.java ! src/java.base/share/classes/com/sun/crypto/provider/TlsKeyMaterialGenerator.java ! src/java.base/share/classes/javax/crypto/Cipher.java ! src/java.base/share/classes/sun/security/pkcs/PKCS9Attribute.java ! src/java.base/share/classes/sun/security/pkcs12/PKCS12KeyStore.java ! src/java.base/share/classes/sun/security/rsa/RSAPadding.java ! src/java.base/share/classes/sun/security/ssl/CertificateAuthoritiesExtension.java ! src/java.base/share/classes/sun/security/util/DisabledAlgorithmConstraints.java ! src/java.base/share/classes/sun/security/x509/PolicyConstraintsExtension.java ! src/java.base/share/classes/sun/security/x509/PolicyInformation.java ! src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5MechFactory.java ! test/jdk/com/sun/crypto/provider/Cipher/AEAD/GCMBufferTest.java ! test/jdk/com/sun/crypto/provider/Cipher/AEAD/GCMShortBuffer.java ! test/jdk/sun/security/provider/PolicyParser/PrincipalExpansionError.java ! test/jdk/sun/security/ssl/X509TrustManagerImpl/CacertsLimit.java ! test/jdk/sun/security/tools/keytool/fakegen/jdk.crypto.ec/sun/security/ec/ECKeyPairGenerator.java Changeset: 6aeb40cf Author: Albert Mingkun Yang Date: 2021-12-21 20:49:59 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/6aeb40cf2a5cfc827797cd1321c8d96f36ef4f1d 8278396: G1: Initialize the BOT threshold to be region bottom Reviewed-by: tschatzl, sjohanss ! src/hotspot/share/gc/g1/g1BlockOffsetTable.cpp ! src/hotspot/share/gc/g1/g1BlockOffsetTable.hpp ! src/hotspot/share/gc/g1/heapRegion.cpp Changeset: 997b1eea Author: Albert Mingkun Yang Date: 2021-12-21 20:50:46 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/997b1eea6e3c572f905f88f3f5b047a5aa180d1e 8279060: Parallel: Remove unused PSVirtualSpace constructors Reviewed-by: mli, sjohanss, tschatzl ! src/hotspot/share/gc/parallel/psVirtualspace.cpp ! src/hotspot/share/gc/parallel/psVirtualspace.hpp Changeset: f5d7c777 Author: Mark Reinhold Date: 2021-12-17 00:34:03 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f5d7c777bc516fa2e711c19d5281ebf32384b543 8276826: Clarify the ModuleDescriptor.Version specification?s treatment of repeated punctuation characters Reviewed-by: mchung, darcy ! src/java.base/share/classes/java/lang/module/ModuleDescriptor.java Changeset: 8494fec6 Author: Jatin Bhateja Date: 2021-12-17 03:07:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8494fec665bfa51d1702827bd0aa4f4547e67729 8278796: Incorrect behavior of FloatVector.withLane on X86 Reviewed-by: sviswanathan, kvn ! src/hotspot/cpu/x86/x86.ad ! test/jdk/jdk/incubator/vector/Byte128VectorTests.java ! test/jdk/jdk/incubator/vector/Byte256VectorTests.java ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! test/jdk/jdk/incubator/vector/Byte64VectorTests.java ! test/jdk/jdk/incubator/vector/ByteMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Double128VectorTests.java ! test/jdk/jdk/incubator/vector/Double256VectorTests.java ! test/jdk/jdk/incubator/vector/Double512VectorTests.java ! test/jdk/jdk/incubator/vector/Double64VectorTests.java ! test/jdk/jdk/incubator/vector/DoubleMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Float128VectorTests.java ! test/jdk/jdk/incubator/vector/Float256VectorTests.java ! test/jdk/jdk/incubator/vector/Float512VectorTests.java ! test/jdk/jdk/incubator/vector/Float64VectorTests.java ! test/jdk/jdk/incubator/vector/FloatMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Int128VectorTests.java ! test/jdk/jdk/incubator/vector/Int256VectorTests.java ! test/jdk/jdk/incubator/vector/Int512VectorTests.java ! test/jdk/jdk/incubator/vector/Int64VectorTests.java ! test/jdk/jdk/incubator/vector/IntMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Long128VectorTests.java ! test/jdk/jdk/incubator/vector/Long256VectorTests.java ! test/jdk/jdk/incubator/vector/Long512VectorTests.java ! test/jdk/jdk/incubator/vector/Long64VectorTests.java ! test/jdk/jdk/incubator/vector/LongMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Short128VectorTests.java ! test/jdk/jdk/incubator/vector/Short256VectorTests.java ! test/jdk/jdk/incubator/vector/Short512VectorTests.java ! test/jdk/jdk/incubator/vector/Short64VectorTests.java ! test/jdk/jdk/incubator/vector/ShortMaxVectorTests.java ! test/jdk/jdk/incubator/vector/templates/Kernel-With-Op.template ! test/jdk/jdk/incubator/vector/templates/Unit-With-Op.template ! test/jdk/jdk/incubator/vector/templates/Unit-header.template Changeset: bb7efb35 Author: Roland Westrelin Date: 2021-12-17 07:45:44 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/bb7efb3517b0ac66a55607c14aae3aef1f11c892 8278790: Inner loop of long loop nest runs for too few iterations Reviewed-by: chagedorn, neliasso ! src/hotspot/share/opto/loopnode.cpp Changeset: b9a477bf Author: Roland Westrelin Date: 2021-12-17 07:46:47 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/b9a477bf19d9f276f6b1da8984eb56d7bd5fc137 8275638: GraphKit::combine_exception_states fails with "matching stack sizes" assert Reviewed-by: dlong, kvn ! src/hotspot/share/opto/callGenerator.cpp ! src/hotspot/share/opto/graphKit.cpp + test/hotspot/jtreg/compiler/exceptions/TestLateMHInlineExceptions.java Changeset: fffa73c1 Author: Erik Gahlin Date: 2021-12-17 09:49:44 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/fffa73c1ef377eb28371fc4094eea8725850de7d 8269425: 2 jdk/jfr/api/consumer/streaming tests failed to attach Reviewed-by: mgronlun ! test/jdk/jdk/jfr/api/consumer/streaming/TestJVMCrash.java ! test/jdk/jdk/jfr/api/consumer/streaming/TestJVMExit.java ! test/lib/jdk/test/lib/jfr/StreamingUtils.java Changeset: 9cd70906 Author: Naoto Sato Date: 2021-12-17 13:48:26 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9cd709060cf0244ddb71225b55ea4e3e7f41860e 8278587: StringTokenizer(String, String, boolean) documentation bug Backport-of: 8f5fdd864b6f1cf4a2d9d961d8d4118960f0751e ! src/java.base/share/classes/java/util/StringTokenizer.java Changeset: b46f0b0b Author: Igor Veresov Date: 2021-12-17 16:30:40 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/b46f0b0b1f2ada705f8b5aac9b7d8423699437a1 8277447: Hotspot C1 compiler crashes on Kotlin suspend fun with loop Reviewed-by: kvn, neliasso ! src/hotspot/share/c1/c1_Instruction.cpp + test/hotspot/jtreg/compiler/c1/TestC1PhiPlacementPathology.jasm + test/hotspot/jtreg/compiler/c1/TestC1PhiPlacementPathologyMain.java Changeset: 8fbe1724 Author: Artem Semenov Date: 2021-12-17 19:31:51 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8fbe1724e0f783132a65c45503addad9d98a329e 8278604: SwingSet2 table demo does not have accessible description set for images 8278526: [macos] Screen reader reads SwingSet2 JTable row selection as null, dimmed row for last column Reviewed-by: ant, kizune, pbansal ! src/demo/share/jfc/SwingSet2/TableDemo.java Changeset: a5f5d60f Author: Daniel D. Daugherty Date: 2021-12-17 21:24:51 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/a5f5d60f2529bb28eee6d309bfbde904e188e540 8273107: RunThese24H times out with "java.lang.management.ThreadInfo.getLockName()" is null Reviewed-by: rehn, coleenp, eosterlund ! src/hotspot/share/runtime/monitorDeflationThread.cpp ! src/hotspot/share/runtime/synchronizer.cpp ! src/hotspot/share/runtime/synchronizer.hpp ! src/hotspot/share/runtime/vmOperations.cpp ! src/hotspot/share/runtime/vmOperations.hpp ! src/hotspot/share/services/heapDumper.cpp ! src/hotspot/share/services/threadService.cpp ! src/hotspot/share/services/threadService.hpp Changeset: 36676db2 Author: Alexander Matveev Date: 2021-12-17 21:56:55 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/36676db2fdb810f6d9fe7be8a81b86244dbdbf71 8278970: [macos] SigningPackageTest is failed with runtime exception Reviewed-by: herrick, asemenyuk ! test/jdk/tools/jpackage/macosx/SigningPackageTest.java Changeset: deaf75a5 Author: Roland Westrelin Date: 2021-12-20 09:41:56 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/deaf75a58587f80046204de7559ff50b3b770bed 8278413: C2 crash when allocating array of size too large Reviewed-by: neliasso, kvn ! src/hotspot/share/opto/callnode.cpp ! src/hotspot/share/opto/callnode.hpp ! src/hotspot/share/opto/cfgnode.cpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/macro.cpp ! src/hotspot/share/opto/macro.hpp ! src/hotspot/share/opto/split_if.cpp + test/hotspot/jtreg/compiler/allocation/TestFailedAllocationBadGraph.java Changeset: ad128284 Author: Aleksandr Veselov Committer: Anton Tarasov Date: 2021-12-20 11:40:58 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ad1282842c5eefdad151afe6f4db97a09d643546 8278609: [macos] accessibility frame is misplaced on a secondary monitor on macOS Reviewed-by: ant, kizune ! src/java.desktop/macosx/native/libawt_lwawt/awt/a11y/CommonComponentAccessibility.m Changeset: 819f9bd0 Author: Smita Kamath Committer: Sandhya Viswanathan Date: 2021-12-20 20:09:42 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/819f9bd084fa49222a4310fbcf4933005e9f0ca4 8274323: compiler/codegen/aes/TestAESMain.java failed with "Error: invalid offset: -1434443640" after 8273297 Reviewed-by: sviswanathan, kvn ! src/hotspot/cpu/aarch64/matcher_aarch64.hpp ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/arm/matcher_arm.hpp ! src/hotspot/cpu/ppc/matcher_ppc.hpp ! src/hotspot/cpu/s390/matcher_s390.hpp ! src/hotspot/cpu/x86/matcher_x86.hpp ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/graphKit.hpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/runtime.cpp ! test/hotspot/jtreg/ProblemList-Xcomp.txt Changeset: 467f6549 Author: Aleksey Shipilev Date: 2021-12-21 12:33:59 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/467f654916764751746934f80877d49a5f107194 8279011: JFR: JfrChunkWriter incorrectly handles int64_t chunk size as size_t Reviewed-by: mgronlun ! src/hotspot/share/jfr/recorder/repository/jfrChunkWriter.cpp Changeset: db3d6d77 Author: Roger Riggs Date: 2021-12-21 15:42:36 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/db3d6d772411c4e7bc81d6411abb139462e1581f 8278087: Deserialization filter and filter factory property error reporting under specified Backport-of: f90425a1cbbc686045c87086af586e62f05f6c49 ! src/java.base/share/classes/java/io/ObjectInputFilter.java ! src/java.base/share/classes/java/io/ObjectInputStream.java ! test/jdk/java/io/Serializable/serialFilter/InvalidGlobalFilterTest.java ! test/jdk/java/io/Serializable/serialFilter/SerialFactoryFaults.java Changeset: ac7430cf Author: Roger Riggs Date: 2021-12-21 16:31:58 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ac7430cf7efba519c1fd8b1c1b23136bf158f19f 8278044: ObjectInputStream methods invoking the OIF.CFG.getSerialFilterFactory() silent about error cases. Backport-of: 8c0bb53f5ba6e71b81c9cb99e6f1587150fe531a ! src/java.base/share/classes/java/io/ObjectInputStream.java Changeset: 54517fa3 Author: Daniel D. Daugherty Date: 2021-12-21 17:42:26 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/54517fa3d80b50bfa8a4f6b7937b95e379a1dfeb 8279074: ProblemList compiler/codecache/jmx/PoolsIndependenceTest.java on macosx-aarch64 Reviewed-by: ccheung ! test/hotspot/jtreg/ProblemList.txt Changeset: 1128674d Author: Zhengyu Gu Date: 2021-12-21 19:02:01 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/1128674d7f3766dda8869b213e1fc629e44ea7a8 8278627: Shenandoah: TestHeapDump test failed Reviewed-by: shade, rkennke ! src/hotspot/share/gc/shenandoah/shenandoahClosures.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp Changeset: 803cb8a7 Author: Jesper Wilhelmsson Date: 2021-12-21 21:58:05 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/803cb8a76827a21fcf9e033b4ca6a777c509169b Merge ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/share/c1/c1_Instruction.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/library_call.cpp ! test/jdk/jdk/incubator/vector/Byte128VectorTests.java ! test/jdk/jdk/incubator/vector/Byte256VectorTests.java ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! test/jdk/jdk/incubator/vector/Byte64VectorTests.java ! test/jdk/jdk/incubator/vector/Double128VectorTests.java ! test/jdk/jdk/incubator/vector/Double256VectorTests.java ! test/jdk/jdk/incubator/vector/Double512VectorTests.java ! test/jdk/jdk/incubator/vector/Double64VectorTests.java ! test/jdk/jdk/incubator/vector/Float128VectorTests.java ! test/jdk/jdk/incubator/vector/Float256VectorTests.java ! test/jdk/jdk/incubator/vector/Float512VectorTests.java ! test/jdk/jdk/incubator/vector/Float64VectorTests.java ! test/jdk/jdk/incubator/vector/Int128VectorTests.java ! test/jdk/jdk/incubator/vector/Int256VectorTests.java ! test/jdk/jdk/incubator/vector/Int512VectorTests.java ! test/jdk/jdk/incubator/vector/Int64VectorTests.java ! test/jdk/jdk/incubator/vector/Long128VectorTests.java ! test/jdk/jdk/incubator/vector/Long256VectorTests.java ! test/jdk/jdk/incubator/vector/Long512VectorTests.java ! test/jdk/jdk/incubator/vector/Long64VectorTests.java ! test/jdk/jdk/incubator/vector/Short128VectorTests.java ! test/jdk/jdk/incubator/vector/Short256VectorTests.java ! test/jdk/jdk/incubator/vector/Short512VectorTests.java ! test/jdk/jdk/incubator/vector/Short64VectorTests.java ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/share/c1/c1_Instruction.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/library_call.cpp ! test/jdk/jdk/incubator/vector/Byte128VectorTests.java ! test/jdk/jdk/incubator/vector/Byte256VectorTests.java ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! test/jdk/jdk/incubator/vector/Byte64VectorTests.java ! test/jdk/jdk/incubator/vector/Double128VectorTests.java ! test/jdk/jdk/incubator/vector/Double256VectorTests.java ! test/jdk/jdk/incubator/vector/Double512VectorTests.java ! test/jdk/jdk/incubator/vector/Double64VectorTests.java ! test/jdk/jdk/incubator/vector/Float128VectorTests.java ! test/jdk/jdk/incubator/vector/Float256VectorTests.java ! test/jdk/jdk/incubator/vector/Float512VectorTests.java ! test/jdk/jdk/incubator/vector/Float64VectorTests.java ! test/jdk/jdk/incubator/vector/Int128VectorTests.java ! test/jdk/jdk/incubator/vector/Int256VectorTests.java ! test/jdk/jdk/incubator/vector/Int512VectorTests.java ! test/jdk/jdk/incubator/vector/Int64VectorTests.java ! test/jdk/jdk/incubator/vector/Long128VectorTests.java ! test/jdk/jdk/incubator/vector/Long256VectorTests.java ! test/jdk/jdk/incubator/vector/Long512VectorTests.java ! test/jdk/jdk/incubator/vector/Long64VectorTests.java ! test/jdk/jdk/incubator/vector/Short128VectorTests.java ! test/jdk/jdk/incubator/vector/Short256VectorTests.java ! test/jdk/jdk/incubator/vector/Short512VectorTests.java ! test/jdk/jdk/incubator/vector/Short64VectorTests.java Changeset: fb623f1d Author: Weijun Wang Date: 2021-12-21 22:13:04 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/fb623f1d2ee858fbc6edfeaaa702b5fcd832a0aa 8279066: entries.remove(entry) is useless in PKCS12KeyStore Reviewed-by: mullan ! src/java.base/share/classes/sun/security/pkcs12/PKCS12KeyStore.java Changeset: 00c0d108 Author: Chris Plummer Date: 2021-12-21 22:55:09 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/00c0d1087021603f3f09131cb0458ac8b9c110e5 8244670: convert clhsdb "whatis" command from javascript to java Reviewed-by: sspitsyn, kevinw ! src/jdk.hotspot.agent/doc/clhsdb.html ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/CommandProcessor.java ! test/hotspot/jtreg/serviceability/sa/ClhsdbFindPC.java Changeset: 84d3333c Author: Daniel D. Daugherty Date: 2021-12-21 20:39:06 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/84d3333c7a979742021e759766a7290539b569f4 8279081: ProblemList jdk/jfr/event/oldobject/TestLargeRootSet.java on 2 platforms Reviewed-by: azvegint, sspitsyn ! test/jdk/ProblemList.txt Changeset: bf282649 Author: Jesper Wilhelmsson Date: 2021-12-21 23:07:35 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/bf2826499a26363d01a5269bd2f54e9c363d4cdc Merge Changeset: d0ea7c9d Author: Chris Plummer Date: 2021-12-22 03:56:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/d0ea7c9db9cc9ce80b60c2f94c53bb307792fc51 8279024: Remove javascript references from clhsdb.html Reviewed-by: kevinw, sspitsyn ! src/jdk.hotspot.agent/doc/clhsdb.html ! src/jdk.hotspot.agent/doc/index.html Changeset: 3f41fdec Author: Albert Mingkun Yang Date: 2021-12-22 13:44:20 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3f41fdecdb6d131a5afe6e0a39d7414c222fe4fb 8279063: Consolidate push and push_if_necessary in PreservedMarks Reviewed-by: rkennke, mli, tschatzl ! src/hotspot/share/gc/g1/g1FullGCMarker.inline.hpp ! src/hotspot/share/gc/shared/preservedMarks.hpp ! src/hotspot/share/gc/shared/preservedMarks.inline.hpp ! test/hotspot/gtest/gc/shared/test_preservedMarks.cpp Changeset: a6903f80 Author: Yumin Qi Date: 2021-12-22 16:14:59 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/a6903f806a9071b2c6c4dbb190b0041867e5bb80 8279018: CRC calculation in CDS should not include _version and _head_size Reviewed-by: iklam, ccheung ! src/hotspot/share/cds/filemap.cpp ! src/hotspot/share/include/cds.h ! src/hotspot/share/prims/whitebox.cpp ! test/hotspot/jtreg/runtime/cds/appcds/SharedArchiveConsistency.java ! test/lib/jdk/test/lib/cds/CDSArchiveUtils.java ! test/lib/jdk/test/whitebox/WhiteBox.java ! test/lib/sun/hotspot/WhiteBox.java Changeset: 9a478b34 Author: Yumin Qi Date: 2021-12-22 16:17:33 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9a478b347e1ef7aecfc8bbc2e3c5e6ac7c23ba36 8279022: JCmdTestFileSafety.java should check file time stamp for test result Reviewed-by: ccheung ! test/hotspot/jtreg/runtime/cds/appcds/jcmd/JCmdTestFileSafety.java Changeset: 9ee3ccfe Author: Smita Kamath Committer: Sandhya Viswanathan Date: 2021-12-21 22:09:43 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9ee3ccfee2c9cc54ac7dca49fbf35135e627ef18 8279045: Intrinsics missing vzeroupper instruction Reviewed-by: neliasso, sviswanathan, kvn ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp Changeset: 97c5cd7f Author: Jatin Bhateja Date: 2021-12-22 03:17:03 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/97c5cd7facf1d3565038c078d5688c7da15ad14e 8278508: Enable X86 maskAll instruction pattern for 32 bit JVM. Reviewed-by: kvn, sviswanathan ! src/hotspot/cpu/x86/assembler_x86.cpp ! src/hotspot/cpu/x86/assembler_x86.hpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.hpp ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/cpu/x86/x86_32.ad ! src/hotspot/cpu/x86/x86_64.ad ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! test/jdk/jdk/incubator/vector/ByteMaxVectorTests.java ! test/jdk/jdk/incubator/vector/VectorReshapeTests.java Changeset: 73414391 Author: Kevin Walls Date: 2021-12-22 11:36:53 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/734143918de540382b5a0754bb7be1500b6f3596 8279007: jstatd fails to start because SecurityManager is disabled Reviewed-by: alanb, sspitsyn, mullan ! make/modules/jdk.jstatd/Launcher.gmk ! test/jdk/sun/tools/jstatd/JstatdTest.java Changeset: 713fbeb0 Author: Markus Gr?nlund Date: 2021-12-22 12:30:55 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/713fbeb050a8f79d3a662106125c3f14f3952741 8278987: RunThese24H.java failed with EXCEPTION_ACCESS_VIOLATION in __write_sample_info__ Reviewed-by: jbachorik ! src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleCheckpoint.cpp Changeset: e49d4a98 Author: Erik Gahlin Date: 2021-12-22 13:59:20 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e49d4a9870c19f55a1d5473743880b415a8ead3c 8271447: java.nio.file.InvalidPathException: Malformed input or input contains unmappable characters Reviewed-by: mgronlun ! src/jdk.jfr/share/classes/jdk/jfr/internal/management/ChunkFilename.java Changeset: dfb15c3e Author: Erik Gahlin Date: 2021-12-22 14:29:46 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/dfb15c3e343974eb138ca1a8db3364cd2bac70a4 8274315: JFR: One closed state per file or stream Reviewed-by: mgronlun ! src/jdk.jfr/share/classes/jdk/jfr/consumer/RecordingFile.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/AbstractEventStream.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/ChunkParser.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/EventDirectoryStream.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/EventFileStream.java + src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/ParserState.java Changeset: f1fbba23 Author: Jesper Wilhelmsson Date: 2021-12-22 16:46:43 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f1fbba23ebdb28a32977241f8e85b60e10878cbc Merge ! src/hotspot/cpu/x86/assembler_x86.cpp ! src/hotspot/cpu/x86/assembler_x86.hpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.hpp ! src/hotspot/cpu/x86/x86.ad ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! src/hotspot/cpu/x86/assembler_x86.cpp ! src/hotspot/cpu/x86/assembler_x86.hpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.hpp ! src/hotspot/cpu/x86/x86.ad ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java Changeset: d64820df Author: Valerie Peng Date: 2021-12-22 19:50:51 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/d64820dfefc0bac578df43fe58d2bce8577ec94e 8209398: sun/security/pkcs11/KeyStore/SecretKeysBasic.sh failed with "PKCS11Exception: CKR_ATTRIBUTE_SENSITIVE" Reviewed-by: hchao, weijun ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Key.java ! test/jdk/ProblemList.txt Changeset: eaefb1a1 Author: Chris Plummer Date: 2021-12-22 23:02:41 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/eaefb1a1ed9edea440628e3a5c5483ebd52bfcb0 8244669: convert clhsdb "mem" command from javascript to java Reviewed-by: sspitsyn, kevinw, poonam ! src/jdk.hotspot.agent/doc/clhsdb.html ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/CommandProcessor.java ! test/hotspot/jtreg/serviceability/sa/ClhsdbFindPC.java Changeset: ad1dc9c2 Author: Yi Yang Date: 2021-12-23 02:14:52 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ad1dc9c2ae5463363aff20072a3f2ca4ea23acd2 8278125: Some preallocated OOMEs are missing stack trace Co-authored-by: dongyun.tdy Reviewed-by: dholmes, coleenp ! src/hotspot/share/memory/universe.cpp ! src/hotspot/share/memory/universe.hpp ! src/hotspot/share/utilities/exceptions.cpp + test/hotspot/jtreg/runtime/ErrorHandling/GenOutOfMemoryError.java Changeset: 214f98f6 Author: Andrew Leonard Date: 2021-12-23 11:01:26 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/214f98f6b07e312e6f4ded5364a94277114784e7 8278766: Enable OpenJDK build support for reproducible jars and jmods using --date Reviewed-by: erikj ! make/CreateJmods.gmk ! make/InitSupport.gmk ! make/autoconf/basic_tools.m4 ! make/autoconf/boot-jdk.m4 ! make/autoconf/spec.gmk.in ! make/autoconf/util.m4 ! make/common/JarArchive.gmk Changeset: 87cc4e50 Author: Daniel Le Committer: Naoto Sato Date: 2021-12-23 14:11:11 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/87cc4e5009f6b900c62a91dda1c2f98e4821a492 8276302: Locale.filterTags methods ignore actual weight when matching "*" (as if it is 1) Reviewed-by: naoto ! src/java.base/share/classes/sun/util/locale/LocaleMatcher.java ! test/jdk/java/util/Locale/Bug7069824.java Changeset: 558a6824 Author: Jonathan Gibbons Date: 2021-12-23 15:19:55 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/558a6824c6db805a2b220ab13ed95624df515538 8279115: Fix internal doc comment errors. Reviewed-by: mli ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/ConstructorWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/EnumConstantWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/MethodWriter.java Changeset: bc0466c7 Author: Andrew Leonard Date: 2021-12-23 18:03:05 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/bc0466c7ca57f14b1e6285e2a39755d57c8de376 8279182: MakeZipReproducible ZipEntry timestamps not localized to UTC Reviewed-by: erikj ! make/jdk/src/classes/build/tools/makezipreproducible/MakeZipReproducible.java Changeset: ff2ca4f2 Author: Vicente Romero Date: 2021-12-23 19:12:24 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ff2ca4f21b7bd9d5afc6c74d8d369b3a0b8a4f19 8205187: javac/javadoc should not crash if no java.lang; crash message obsolete Reviewed-by: jjg ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties ! test/langtools/tools/javac/diags/examples/NoJavaLang.java ! test/langtools/tools/javac/fatalErrors/NoJavaLangTest.java Changeset: 7aff03ae Author: Xin Liu Date: 2021-12-23 20:25:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7aff03aee1a5cd70638d8bbafeb7765bc7beea45 8267517: async logging for stdout and stderr Reviewed-by: dholmes, ysuenaga ! src/hotspot/share/logging/logAsyncWriter.cpp ! src/hotspot/share/logging/logAsyncWriter.hpp ! src/hotspot/share/logging/logFileOutput.cpp ! src/hotspot/share/logging/logFileOutput.hpp ! src/hotspot/share/logging/logFileStreamOutput.cpp ! src/hotspot/share/logging/logFileStreamOutput.hpp ! test/hotspot/gtest/logging/test_asynclog.cpp Changeset: 9df200f7 Author: Jonathan Gibbons Date: 2021-12-23 21:15:21 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9df200f749e6326f1d4a22cca770284f38c2de8c 8278795: Create test library and tests for langtools snippets Reviewed-by: hannesw + test/langtools/jdk/javadoc/doclet/testDocletExample/TestDocletExample.java + test/langtools/tools/javac/api/snippets/TestJavaxToolsSnippets.java + test/langtools/tools/lib/snippets/SnippetUtils.java Changeset: 2be3e7ef Author: Coleen Phillimore Date: 2021-12-22 17:19:00 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/2be3e7ef1cff1aae6faf1f4f0545d561af48d0ba 8278239: vmTestbase/nsk/jvmti/RedefineClasses/StressRedefine failed with EXCEPTION_ACCESS_VIOLATION at 0x000000000000000d Reviewed-by: kvn, sspitsyn, eosterlund ! src/hotspot/share/code/codeCache.cpp Changeset: 04ee9211 Author: Stuart Marks Date: 2021-12-22 18:56:30 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/04ee9211fcc59178b3bfdfdda5e0def9b0f29ada 8278967: rmiregistry fails to start because SecurityManager is disabled Reviewed-by: alanb, erikj ! make/modules/java.rmi/Launcher.gmk ! test/jdk/tools/launcher/VersionCheck.java Changeset: 9d5ae2e3 Author: Aleksey Shipilev Date: 2021-12-22 20:17:39 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9d5ae2e38074c3df354aeab19ebbab7d4872165a 8279076: C2: Bad AD file when matching SqrtF with UseSSE=0 Reviewed-by: kvn, sviswanathan ! src/hotspot/cpu/x86/x86.ad + test/hotspot/jtreg/compiler/c2/TestSqrt.java Changeset: 730f6708 Author: Erik Gahlin Date: 2021-12-23 15:03:06 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/730f67081dcda37df7fc40eda99ebd39028be15f 8268297: jdk/jfr/api/consumer/streaming/TestLatestEvent.java times out Reviewed-by: mgronlun ! src/hotspot/share/jfr/recorder/repository/jfrChunk.cpp ! test/jdk/ProblemList.txt ! test/jdk/jdk/jfr/api/consumer/streaming/TestLatestEvent.java Changeset: 04ad6689 Author: Aleksey Shipilev Date: 2021-12-23 16:22:10 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/04ad668921abbd71dfbc474eed6f1760f7a541b1 8279204: [BACKOUT] JDK-8278413: C2 crash when allocating array of size too large Reviewed-by: chagedorn, kvn ! src/hotspot/share/opto/callnode.cpp ! src/hotspot/share/opto/callnode.hpp ! src/hotspot/share/opto/cfgnode.cpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/macro.cpp ! src/hotspot/share/opto/macro.hpp ! src/hotspot/share/opto/split_if.cpp - test/hotspot/jtreg/compiler/allocation/TestFailedAllocationBadGraph.java Changeset: a3b1c6b0 Author: Jesper Wilhelmsson Date: 2021-12-23 21:17:50 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/a3b1c6b03600da21b00a1f37ea4712096d636b14 Merge ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/share/opto/compile.cpp ! test/jdk/ProblemList.txt ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/share/opto/compile.cpp ! test/jdk/ProblemList.txt Changeset: 4669bcd8 Author: Vicente Romero Date: 2021-12-23 21:26:31 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/4669bcd877c89b63739abd8087ea934c7126fb3f 8279244: test accompaning fix for JDK-8205187 is failing in Windows Reviewed-by: dcubed, mikael ! test/langtools/tools/javac/fatalErrors/NoJavaLangTest.java Changeset: 9d99a377 Author: Daniel Jelinski Committer: Anthony Scarpino Date: 2021-12-24 00:01:46 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9d99a377bfb6ffa890db049aee575e97914fc2a1 8277881: Missing SessionID in TLS1.3 resumption in compatibility mode Reviewed-by: ascarpino ! src/java.base/share/classes/sun/security/ssl/ClientHello.java ! src/java.base/share/classes/sun/security/ssl/SSLConfiguration.java ! test/jdk/javax/net/ssl/SSLSession/ResumeTLS13withSNI.java Changeset: 22c15dda Author: Xin Liu Date: 2021-12-24 00:57:03 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/22c15ddae5ef7431f677edf4df9a403613716def 8279189: Inaccurate comment about class VMThread Reviewed-by: dholmes, kbarrett ! src/hotspot/share/runtime/vmThread.hpp Changeset: d52392c1 Author: Jonathan Gibbons Date: 2021-12-24 01:48:13 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/d52392c15e47dbfbba7eda0739ff8e6f29613b53 8276892: Provide a way to emulate exceptional situations in FileManager when using JavadocTester Reviewed-by: prappo ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets.properties ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/Main.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/Start.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/resources/javadoc.properties ! test/langtools/jdk/javadoc/lib/javadoc/tester/JavadocTester.java + test/langtools/jdk/javadoc/lib/javadoc/tester/TestJavaFileManagerBuilder.java + test/langtools/jdk/javadoc/testTFMBuilder/TestTFMBuilder.java Changeset: 70c6df6b Author: Andrey Turbanov Committer: Sergey Bylokhov Date: 2021-12-24 02:02:39 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/70c6df6be431fe11c5441986ed04040f9ec3b750 8274893: Update java.desktop classes to use try-with-resources Reviewed-by: serb ! src/java.desktop/share/classes/com/sun/imageio/plugins/png/PNGImageReader.java ! src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/Metacity.java ! src/java.desktop/share/classes/com/sun/media/sound/AudioFileSoundbankReader.java ! src/java.desktop/share/classes/com/sun/media/sound/DLSSoundbank.java ! src/java.desktop/share/classes/com/sun/media/sound/JARSoundbankReader.java ! src/java.desktop/share/classes/com/sun/media/sound/ModelByteBuffer.java ! src/java.desktop/share/classes/com/sun/media/sound/ModelByteBufferWavetable.java ! src/java.desktop/share/classes/com/sun/media/sound/SF2Soundbank.java ! src/java.desktop/share/classes/com/sun/media/sound/SoftSynthesizer.java ! src/java.desktop/share/classes/com/sun/media/sound/StandardMidiFileReader.java ! src/java.desktop/share/classes/com/sun/media/sound/StandardMidiFileWriter.java ! src/java.desktop/share/classes/java/awt/Font.java ! src/java.desktop/share/classes/java/awt/Toolkit.java ! src/java.desktop/share/classes/java/beans/Beans.java ! src/java.desktop/share/classes/javax/imageio/ImageIO.java ! src/java.desktop/share/classes/javax/swing/JEditorPane.java ! src/java.desktop/share/classes/javax/swing/UIManager.java ! src/java.desktop/share/classes/javax/swing/text/html/HTMLEditorKit.java ! src/java.desktop/share/classes/javax/swing/text/html/StyleSheet.java ! src/java.desktop/share/classes/sun/awt/DebugSettings.java ! src/java.desktop/share/classes/sun/awt/FontConfiguration.java ! src/java.desktop/share/classes/sun/print/PSPrinterJob.java ! src/java.desktop/unix/classes/sun/font/FcFontConfiguration.java ! src/java.desktop/unix/classes/sun/font/MFontConfiguration.java Changeset: b0794b36 Author: duke Date: 2021-12-24 11:00:49 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/b0794b363a1e47297b5cfd395645c099091fb69c Automatic merge of jdk:master into master Changeset: 58c5b1f2 Author: duke Date: 2021-12-24 11:01:07 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/58c5b1f2d4aaf7f936b850a678393c4e2d21d13a Automatic merge of master into foreign-memaccess+abi ! src/hotspot/share/code/codeCache.cpp ! src/hotspot/share/opto/callGenerator.cpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/runtime/globals.hpp ! test/jdk/ProblemList.txt ! src/hotspot/share/code/codeCache.cpp ! src/hotspot/share/opto/callGenerator.cpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/runtime/globals.hpp ! test/jdk/ProblemList.txt From duke at openjdk.java.net Fri Dec 24 11:17:14 2021 From: duke at openjdk.java.net (duke) Date: Fri, 24 Dec 2021 11:17:14 GMT Subject: git: openjdk/panama-foreign: foreign-preview: 84 new changesets Message-ID: <114d5b4d-6684-42dd-b0b0-a653ebcd3e6d@openjdk.org> Changeset: 6412d57a Author: Weijun Wang Date: 2021-12-17 12:14:17 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/6412d57a0a92ba08cc3db085b371ae1f7ba35ad5 8278560: X509KeyManagerImpl::getAliases might return a good key with others Reviewed-by: xuelei ! src/java.base/share/classes/sun/security/ssl/X509KeyManagerImpl.java + test/jdk/sun/security/ssl/X509KeyManager/NoGoodKey.java Changeset: abab1738 Author: Roman Kennke Date: 2021-12-17 13:33:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/abab1738a702648e91f4c3ad91f71b7633914a31 8278568: Consolidate filler objects Reviewed-by: tschatzl, mli, ayang ! src/hotspot/share/gc/parallel/psPromotionLAB.cpp ! src/hotspot/share/gc/parallel/psPromotionLAB.hpp ! src/hotspot/share/gc/shared/collectedHeap.cpp ! src/hotspot/share/gc/shared/collectedHeap.hpp ! src/hotspot/share/gc/shared/space.cpp ! src/hotspot/share/gc/shared/space.hpp ! src/hotspot/share/oops/oop.hpp Changeset: 3607a5cd Author: Coleen Phillimore Date: 2021-12-17 13:42:54 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3607a5cdd9a3013851c8faefd346f04934f897e6 8277216: Examine InstanceKlass::_misc_flags for concurrency issues Reviewed-by: hseigel, dholmes ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/utilities/accessFlags.hpp Changeset: a68f28ce Author: Nils Eliasson Date: 2021-12-17 15:08:45 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/a68f28cea6a726aa57c04a4fc5a665cae3513154 8278909: Unproblemlist AdaptiveBlocking001 Reviewed-by: chagedorn, eosterlund, stefank ! test/hotspot/jtreg/ProblemList-zgc.txt Changeset: e45e0b05 Author: Phil Race Date: 2021-12-17 15:10:03 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e45e0b05b9e8da8da72bf227cede319fa207a551 8278937: JCK test for java_awt/geom/Line2D.Float fails after 8277868 Reviewed-by: jdv, kcr, rriggs ! src/java.desktop/share/classes/java/awt/geom/Line2D.java ! src/java.desktop/share/classes/sun/awt/geom/Curve.java ! src/java.desktop/share/classes/sun/java2d/Spans.java Changeset: 769f14db Author: Harold Seigel Date: 2021-12-17 15:11:16 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/769f14db847813f5a3601e9ec21e6cadbd99ee96 8278384: Bytecodes::result_type() for arraylength returns T_VOID instead of T_INT Reviewed-by: lfoltan, dholmes ! src/hotspot/share/interpreter/bytecodeUtils.cpp ! src/hotspot/share/interpreter/bytecodes.cpp Changeset: b17f8d5b Author: Gilles Duboscq Date: 2021-12-17 15:36:07 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/b17f8d5b6c4d4ec75bb57f1d2009e30332bdb3ce 8278954: Using clang together with devkit on linux doesn't work for building Reviewed-by: erikj ! make/autoconf/flags.m4 Changeset: 0bfc204a Author: Albert Mingkun Yang Date: 2021-12-17 15:45:16 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/0bfc204a78878872f16019bc75dac7844876ed60 8278956: Remove unimplemented PLAB::allocate_aligned Reviewed-by: tschatzl ! src/hotspot/share/gc/shared/plab.hpp Changeset: 022e4f0f Author: Andrey Turbanov Committer: Vicente Romero Date: 2021-12-17 18:52:37 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/022e4f0f1c4862315b34595d6df228a49f67cb2e 8275242: Remove redundant stream() call before forEach in jdk.compiler Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/api/JavacTrees.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/TypeAnnotations.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/AttrRecover.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/InferenceContext.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java Changeset: 905b7639 Author: liach Committer: Mandy Chung Date: 2021-12-17 22:23:33 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/905b7639424a0fa80f81f734f6fdae1b5018a14a 8261404: Class.getReflectionFactory() is not thread-safe Reviewed-by: rriggs, mchung ! src/java.base/share/classes/java/lang/Class.java Changeset: cc44e137 Author: merykitty Committer: Vladimir Kozlov Date: 2021-12-17 23:42:28 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/cc44e137973808436311aaaa50916d051759f705 8278623: compiler/vectorapi/reshape/TestVectorCastAVX512.java after JDK-8259610 Reviewed-by: kvn, chagedorn, psandoz ! test/hotspot/jtreg/ProblemList.txt + test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorCastAVX512BW.java ! test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorReinterpret.java ! test/hotspot/jtreg/compiler/vectorapi/reshape/tests/TestVectorCast.java ! test/hotspot/jtreg/compiler/vectorapi/reshape/tests/TestVectorDoubleExpandShrink.java ! test/hotspot/jtreg/compiler/vectorapi/reshape/tests/TestVectorExpandShrink.java ! test/hotspot/jtreg/compiler/vectorapi/reshape/tests/TestVectorRebracket.java ! test/hotspot/jtreg/compiler/vectorapi/reshape/utils/TestCastMethods.java ! test/hotspot/jtreg/compiler/vectorapi/reshape/utils/UnsafeUtils.java ! test/hotspot/jtreg/compiler/vectorapi/reshape/utils/VectorReshapeHelper.java Changeset: 3c10b5db Author: Guoxiong Li Date: 2021-12-18 04:16:44 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3c10b5db38455b8aed88599f5743fd846bd0913e 8278104: C1 should support the compiler directive 'BreakAtExecute' Reviewed-by: xliu, phh, kvn ! src/hotspot/cpu/aarch64/c1_MacroAssembler_aarch64.cpp ! src/hotspot/cpu/arm/c1_MacroAssembler_arm.cpp ! src/hotspot/cpu/ppc/c1_MacroAssembler_ppc.cpp ! src/hotspot/cpu/s390/c1_MacroAssembler_s390.cpp ! src/hotspot/cpu/x86/c1_MacroAssembler_x86.cpp ! src/hotspot/share/c1/c1_LIRAssembler.cpp ! src/hotspot/share/c1/c1_MacroAssembler.hpp ! src/hotspot/share/compiler/compilerDirectives.cpp Changeset: 6f0e8da6 Author: Doug Simon Date: 2021-12-18 06:48:00 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/6f0e8da6d3bef340299e48977d5e17d05eabe682 8278871: [JVMCI] assert((uint)reason < 2* _trap_hist_limit) failed: oob Reviewed-by: kvn, never, dlong ! src/hotspot/share/jvmci/vmStructs_jvmci.cpp ! src/hotspot/share/oops/methodData.hpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/deoptimization.hpp ! src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotVMConfig.java Changeset: 63e43030 Author: Alex Menkov Date: 2021-12-18 08:08:47 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/63e43030ed1260d14df950342c39a377231a3f40 8278519: serviceability/jvmti/FieldAccessWatch/FieldAccessWatch.java failed "assert(handle != __null) failed: JNI handle should not be null" Reviewed-by: cjplummer, sspitsyn ! test/hotspot/jtreg/serviceability/jvmti/FieldAccessWatch/FieldAccessWatch.java ! test/hotspot/jtreg/serviceability/jvmti/FieldAccessWatch/libFieldAccessWatch.c Changeset: 31fbb872 Author: TejeshR13 Committer: Jayathirth D V Date: 2021-12-20 09:53:22 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/31fbb8723e973d4217c80cccba90b2dceb6fa792 6462028: MaskFormatter API documentation refers to getDisplayValue Reviewed-by: psadhukhan, aivanov, prr ! src/java.desktop/share/classes/javax/swing/text/MaskFormatter.java Changeset: 06206c71 Author: Roland Westrelin Date: 2021-12-20 10:00:14 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/06206c7199e9b49382d5f489ed5733525a95a535 8278949: Cleanups for 8277850 Co-authored-by: John R Rose Reviewed-by: kvn, jrose ! src/hotspot/share/opto/mulnode.cpp ! src/hotspot/share/opto/mulnode.hpp ! test/hotspot/jtreg/compiler/c2/irTests/TestShiftAndMask.java Changeset: 4c78c9ab Author: David Holmes Date: 2021-12-20 10:47:37 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/4c78c9ab80202b426efd8f6cc3533d642ae9ba19 8270929: Obsolete the FilterSpuriousWakeups flag in JDK 19 Reviewed-by: hseigel, rehn ! src/hotspot/os/posix/os_posix.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/globals.hpp Changeset: 8549d8b5 Author: Calvin Cheung Date: 2021-12-20 23:04:40 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8549d8b5697606ef87bb3f72abcf14dd7eb8a151 8277100: Dynamic dump can inadvertently overwrite default CDS archive Reviewed-by: iklam, minqi, dholmes ! src/hotspot/share/runtime/arguments.cpp + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/DumpToDefaultArchive.java Changeset: 51796728 Author: Joe Darcy Date: 2021-12-21 00:25:56 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/517967284cf607c0137e088a33ab5eb98d59542d 8278953: Clarify Class.getDeclaredConstructor specification Reviewed-by: mchung, alanb ! src/java.base/share/classes/java/lang/Class.java Changeset: ff5d4176 Author: Thomas Schatzl Date: 2021-12-21 09:51:21 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ff5d41762d5ba31e88c6cb9207a8ae57f34a69b0 8278893: Parallel: Remove GCWorkerDelayMillis Reviewed-by: ayang, mli ! src/hotspot/share/gc/parallel/parallel_globals.hpp ! src/hotspot/share/gc/parallel/psCardTable.cpp ! src/hotspot/share/gc/parallel/psPromotionManager.inline.hpp Changeset: 29bd7363 Author: Aleksey Shipilev Date: 2021-12-21 14:01:47 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/29bd73638a22d341767a1266723a7d7263e17093 8277893: Arraycopy stress tests Reviewed-by: kvn, mli ! test/hotspot/jtreg/TEST.groups + test/hotspot/jtreg/compiler/arraycopy/stress/AbstractStressArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressBooleanArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressByteArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressCharArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressDoubleArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressFloatArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressIntArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressLongArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressObjectArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressShortArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/TestStressArrayCopy.java Changeset: f4f2f32c Author: Stefan Johansson Date: 2021-12-21 14:03:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f4f2f32cd16158d8d4d2b552cd74531f25c45a29 8278917: Use Prev Bitmap for recording evac failed objects Reviewed-by: ayang, mli, tschatzl ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.hpp ! src/hotspot/share/gc/g1/g1CollectedHeap.inline.hpp ! src/hotspot/share/gc/g1/g1ConcurrentMark.hpp ! src/hotspot/share/gc/g1/g1ConcurrentMark.inline.hpp ! src/hotspot/share/gc/g1/g1EvacFailure.cpp - src/hotspot/share/gc/g1/g1EvacFailureObjectsSet.cpp - src/hotspot/share/gc/g1/g1EvacFailureObjectsSet.hpp - src/hotspot/share/gc/g1/g1EvacFailureObjectsSet.inline.hpp ! src/hotspot/share/gc/g1/g1FullGCCompactTask.cpp ! src/hotspot/share/gc/g1/g1FullGCCompactTask.hpp ! src/hotspot/share/gc/g1/g1ParScanThreadState.cpp ! src/hotspot/share/gc/g1/g1RemSet.cpp ! src/hotspot/share/gc/g1/heapRegion.cpp ! src/hotspot/share/gc/g1/heapRegion.hpp ! src/hotspot/share/gc/g1/heapRegion.inline.hpp Changeset: f90425a1 Author: Roger Riggs Date: 2021-12-21 14:24:44 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f90425a1cbbc686045c87086af586e62f05f6c49 8278087: Deserialization filter and filter factory property error reporting under specified Reviewed-by: lancea, bpb ! src/java.base/share/classes/java/io/ObjectInputFilter.java ! src/java.base/share/classes/java/io/ObjectInputStream.java ! test/jdk/java/io/Serializable/serialFilter/InvalidGlobalFilterTest.java ! test/jdk/java/io/Serializable/serialFilter/SerialFactoryFaults.java Changeset: 8c0bb53f Author: Roger Riggs Date: 2021-12-21 15:16:19 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8c0bb53f5ba6e71b81c9cb99e6f1587150fe531a 8278044: ObjectInputStream methods invoking the OIF.CFG.getSerialFilterFactory() silent about error cases. Reviewed-by: lancea, bpb ! src/java.base/share/classes/java/io/ObjectInputStream.java Changeset: f7309060 Author: Robbin Ehn Date: 2021-12-21 16:12:32 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f7309060ded0edb1e614663572f876d83b77c28e 8278793: Interpreter(x64) intrinsify Thread.currentThread() Reviewed-by: rkennke, dcubed, dholmes ! src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp ! src/hotspot/cpu/x86/templateInterpreterGenerator_x86_64.cpp ! src/hotspot/share/interpreter/abstractInterpreter.cpp ! src/hotspot/share/interpreter/abstractInterpreter.hpp ! src/hotspot/share/interpreter/templateInterpreterGenerator.cpp ! src/hotspot/share/interpreter/templateInterpreterGenerator.hpp Changeset: f31dead6 Author: Daniel Jelinski Committer: Weijun Wang Date: 2021-12-21 18:24:31 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f31dead6c550444a836655ffdf97df8816e2d546 8279043: Some Security Exception Messages Miss Spaces Reviewed-by: weijun ! src/java.base/share/classes/com/sun/crypto/provider/GaloisCounterMode.java ! src/java.base/share/classes/com/sun/crypto/provider/TlsKeyMaterialGenerator.java ! src/java.base/share/classes/javax/crypto/Cipher.java ! src/java.base/share/classes/sun/security/pkcs/PKCS9Attribute.java ! src/java.base/share/classes/sun/security/pkcs12/PKCS12KeyStore.java ! src/java.base/share/classes/sun/security/rsa/RSAPadding.java ! src/java.base/share/classes/sun/security/ssl/CertificateAuthoritiesExtension.java ! src/java.base/share/classes/sun/security/util/DisabledAlgorithmConstraints.java ! src/java.base/share/classes/sun/security/x509/PolicyConstraintsExtension.java ! src/java.base/share/classes/sun/security/x509/PolicyInformation.java ! src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5MechFactory.java ! test/jdk/com/sun/crypto/provider/Cipher/AEAD/GCMBufferTest.java ! test/jdk/com/sun/crypto/provider/Cipher/AEAD/GCMShortBuffer.java ! test/jdk/sun/security/provider/PolicyParser/PrincipalExpansionError.java ! test/jdk/sun/security/ssl/X509TrustManagerImpl/CacertsLimit.java ! test/jdk/sun/security/tools/keytool/fakegen/jdk.crypto.ec/sun/security/ec/ECKeyPairGenerator.java Changeset: 6aeb40cf Author: Albert Mingkun Yang Date: 2021-12-21 20:49:59 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/6aeb40cf2a5cfc827797cd1321c8d96f36ef4f1d 8278396: G1: Initialize the BOT threshold to be region bottom Reviewed-by: tschatzl, sjohanss ! src/hotspot/share/gc/g1/g1BlockOffsetTable.cpp ! src/hotspot/share/gc/g1/g1BlockOffsetTable.hpp ! src/hotspot/share/gc/g1/heapRegion.cpp Changeset: 997b1eea Author: Albert Mingkun Yang Date: 2021-12-21 20:50:46 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/997b1eea6e3c572f905f88f3f5b047a5aa180d1e 8279060: Parallel: Remove unused PSVirtualSpace constructors Reviewed-by: mli, sjohanss, tschatzl ! src/hotspot/share/gc/parallel/psVirtualspace.cpp ! src/hotspot/share/gc/parallel/psVirtualspace.hpp Changeset: f5d7c777 Author: Mark Reinhold Date: 2021-12-17 00:34:03 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f5d7c777bc516fa2e711c19d5281ebf32384b543 8276826: Clarify the ModuleDescriptor.Version specification?s treatment of repeated punctuation characters Reviewed-by: mchung, darcy ! src/java.base/share/classes/java/lang/module/ModuleDescriptor.java Changeset: 8494fec6 Author: Jatin Bhateja Date: 2021-12-17 03:07:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8494fec665bfa51d1702827bd0aa4f4547e67729 8278796: Incorrect behavior of FloatVector.withLane on X86 Reviewed-by: sviswanathan, kvn ! src/hotspot/cpu/x86/x86.ad ! test/jdk/jdk/incubator/vector/Byte128VectorTests.java ! test/jdk/jdk/incubator/vector/Byte256VectorTests.java ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! test/jdk/jdk/incubator/vector/Byte64VectorTests.java ! test/jdk/jdk/incubator/vector/ByteMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Double128VectorTests.java ! test/jdk/jdk/incubator/vector/Double256VectorTests.java ! test/jdk/jdk/incubator/vector/Double512VectorTests.java ! test/jdk/jdk/incubator/vector/Double64VectorTests.java ! test/jdk/jdk/incubator/vector/DoubleMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Float128VectorTests.java ! test/jdk/jdk/incubator/vector/Float256VectorTests.java ! test/jdk/jdk/incubator/vector/Float512VectorTests.java ! test/jdk/jdk/incubator/vector/Float64VectorTests.java ! test/jdk/jdk/incubator/vector/FloatMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Int128VectorTests.java ! test/jdk/jdk/incubator/vector/Int256VectorTests.java ! test/jdk/jdk/incubator/vector/Int512VectorTests.java ! test/jdk/jdk/incubator/vector/Int64VectorTests.java ! test/jdk/jdk/incubator/vector/IntMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Long128VectorTests.java ! test/jdk/jdk/incubator/vector/Long256VectorTests.java ! test/jdk/jdk/incubator/vector/Long512VectorTests.java ! test/jdk/jdk/incubator/vector/Long64VectorTests.java ! test/jdk/jdk/incubator/vector/LongMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Short128VectorTests.java ! test/jdk/jdk/incubator/vector/Short256VectorTests.java ! test/jdk/jdk/incubator/vector/Short512VectorTests.java ! test/jdk/jdk/incubator/vector/Short64VectorTests.java ! test/jdk/jdk/incubator/vector/ShortMaxVectorTests.java ! test/jdk/jdk/incubator/vector/templates/Kernel-With-Op.template ! test/jdk/jdk/incubator/vector/templates/Unit-With-Op.template ! test/jdk/jdk/incubator/vector/templates/Unit-header.template Changeset: bb7efb35 Author: Roland Westrelin Date: 2021-12-17 07:45:44 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/bb7efb3517b0ac66a55607c14aae3aef1f11c892 8278790: Inner loop of long loop nest runs for too few iterations Reviewed-by: chagedorn, neliasso ! src/hotspot/share/opto/loopnode.cpp Changeset: b9a477bf Author: Roland Westrelin Date: 2021-12-17 07:46:47 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/b9a477bf19d9f276f6b1da8984eb56d7bd5fc137 8275638: GraphKit::combine_exception_states fails with "matching stack sizes" assert Reviewed-by: dlong, kvn ! src/hotspot/share/opto/callGenerator.cpp ! src/hotspot/share/opto/graphKit.cpp + test/hotspot/jtreg/compiler/exceptions/TestLateMHInlineExceptions.java Changeset: fffa73c1 Author: Erik Gahlin Date: 2021-12-17 09:49:44 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/fffa73c1ef377eb28371fc4094eea8725850de7d 8269425: 2 jdk/jfr/api/consumer/streaming tests failed to attach Reviewed-by: mgronlun ! test/jdk/jdk/jfr/api/consumer/streaming/TestJVMCrash.java ! test/jdk/jdk/jfr/api/consumer/streaming/TestJVMExit.java ! test/lib/jdk/test/lib/jfr/StreamingUtils.java Changeset: 9cd70906 Author: Naoto Sato Date: 2021-12-17 13:48:26 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9cd709060cf0244ddb71225b55ea4e3e7f41860e 8278587: StringTokenizer(String, String, boolean) documentation bug Backport-of: 8f5fdd864b6f1cf4a2d9d961d8d4118960f0751e ! src/java.base/share/classes/java/util/StringTokenizer.java Changeset: b46f0b0b Author: Igor Veresov Date: 2021-12-17 16:30:40 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/b46f0b0b1f2ada705f8b5aac9b7d8423699437a1 8277447: Hotspot C1 compiler crashes on Kotlin suspend fun with loop Reviewed-by: kvn, neliasso ! src/hotspot/share/c1/c1_Instruction.cpp + test/hotspot/jtreg/compiler/c1/TestC1PhiPlacementPathology.jasm + test/hotspot/jtreg/compiler/c1/TestC1PhiPlacementPathologyMain.java Changeset: 8fbe1724 Author: Artem Semenov Date: 2021-12-17 19:31:51 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8fbe1724e0f783132a65c45503addad9d98a329e 8278604: SwingSet2 table demo does not have accessible description set for images 8278526: [macos] Screen reader reads SwingSet2 JTable row selection as null, dimmed row for last column Reviewed-by: ant, kizune, pbansal ! src/demo/share/jfc/SwingSet2/TableDemo.java Changeset: a5f5d60f Author: Daniel D. Daugherty Date: 2021-12-17 21:24:51 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/a5f5d60f2529bb28eee6d309bfbde904e188e540 8273107: RunThese24H times out with "java.lang.management.ThreadInfo.getLockName()" is null Reviewed-by: rehn, coleenp, eosterlund ! src/hotspot/share/runtime/monitorDeflationThread.cpp ! src/hotspot/share/runtime/synchronizer.cpp ! src/hotspot/share/runtime/synchronizer.hpp ! src/hotspot/share/runtime/vmOperations.cpp ! src/hotspot/share/runtime/vmOperations.hpp ! src/hotspot/share/services/heapDumper.cpp ! src/hotspot/share/services/threadService.cpp ! src/hotspot/share/services/threadService.hpp Changeset: 36676db2 Author: Alexander Matveev Date: 2021-12-17 21:56:55 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/36676db2fdb810f6d9fe7be8a81b86244dbdbf71 8278970: [macos] SigningPackageTest is failed with runtime exception Reviewed-by: herrick, asemenyuk ! test/jdk/tools/jpackage/macosx/SigningPackageTest.java Changeset: deaf75a5 Author: Roland Westrelin Date: 2021-12-20 09:41:56 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/deaf75a58587f80046204de7559ff50b3b770bed 8278413: C2 crash when allocating array of size too large Reviewed-by: neliasso, kvn ! src/hotspot/share/opto/callnode.cpp ! src/hotspot/share/opto/callnode.hpp ! src/hotspot/share/opto/cfgnode.cpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/macro.cpp ! src/hotspot/share/opto/macro.hpp ! src/hotspot/share/opto/split_if.cpp + test/hotspot/jtreg/compiler/allocation/TestFailedAllocationBadGraph.java Changeset: ad128284 Author: Aleksandr Veselov Committer: Anton Tarasov Date: 2021-12-20 11:40:58 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ad1282842c5eefdad151afe6f4db97a09d643546 8278609: [macos] accessibility frame is misplaced on a secondary monitor on macOS Reviewed-by: ant, kizune ! src/java.desktop/macosx/native/libawt_lwawt/awt/a11y/CommonComponentAccessibility.m Changeset: 819f9bd0 Author: Smita Kamath Committer: Sandhya Viswanathan Date: 2021-12-20 20:09:42 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/819f9bd084fa49222a4310fbcf4933005e9f0ca4 8274323: compiler/codegen/aes/TestAESMain.java failed with "Error: invalid offset: -1434443640" after 8273297 Reviewed-by: sviswanathan, kvn ! src/hotspot/cpu/aarch64/matcher_aarch64.hpp ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/arm/matcher_arm.hpp ! src/hotspot/cpu/ppc/matcher_ppc.hpp ! src/hotspot/cpu/s390/matcher_s390.hpp ! src/hotspot/cpu/x86/matcher_x86.hpp ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/graphKit.hpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/runtime.cpp ! test/hotspot/jtreg/ProblemList-Xcomp.txt Changeset: 467f6549 Author: Aleksey Shipilev Date: 2021-12-21 12:33:59 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/467f654916764751746934f80877d49a5f107194 8279011: JFR: JfrChunkWriter incorrectly handles int64_t chunk size as size_t Reviewed-by: mgronlun ! src/hotspot/share/jfr/recorder/repository/jfrChunkWriter.cpp Changeset: db3d6d77 Author: Roger Riggs Date: 2021-12-21 15:42:36 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/db3d6d772411c4e7bc81d6411abb139462e1581f 8278087: Deserialization filter and filter factory property error reporting under specified Backport-of: f90425a1cbbc686045c87086af586e62f05f6c49 ! src/java.base/share/classes/java/io/ObjectInputFilter.java ! src/java.base/share/classes/java/io/ObjectInputStream.java ! test/jdk/java/io/Serializable/serialFilter/InvalidGlobalFilterTest.java ! test/jdk/java/io/Serializable/serialFilter/SerialFactoryFaults.java Changeset: ac7430cf Author: Roger Riggs Date: 2021-12-21 16:31:58 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ac7430cf7efba519c1fd8b1c1b23136bf158f19f 8278044: ObjectInputStream methods invoking the OIF.CFG.getSerialFilterFactory() silent about error cases. Backport-of: 8c0bb53f5ba6e71b81c9cb99e6f1587150fe531a ! src/java.base/share/classes/java/io/ObjectInputStream.java Changeset: 54517fa3 Author: Daniel D. Daugherty Date: 2021-12-21 17:42:26 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/54517fa3d80b50bfa8a4f6b7937b95e379a1dfeb 8279074: ProblemList compiler/codecache/jmx/PoolsIndependenceTest.java on macosx-aarch64 Reviewed-by: ccheung ! test/hotspot/jtreg/ProblemList.txt Changeset: 1128674d Author: Zhengyu Gu Date: 2021-12-21 19:02:01 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/1128674d7f3766dda8869b213e1fc629e44ea7a8 8278627: Shenandoah: TestHeapDump test failed Reviewed-by: shade, rkennke ! src/hotspot/share/gc/shenandoah/shenandoahClosures.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp Changeset: 803cb8a7 Author: Jesper Wilhelmsson Date: 2021-12-21 21:58:05 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/803cb8a76827a21fcf9e033b4ca6a777c509169b Merge ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/share/c1/c1_Instruction.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/library_call.cpp ! test/jdk/jdk/incubator/vector/Byte128VectorTests.java ! test/jdk/jdk/incubator/vector/Byte256VectorTests.java ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! test/jdk/jdk/incubator/vector/Byte64VectorTests.java ! test/jdk/jdk/incubator/vector/Double128VectorTests.java ! test/jdk/jdk/incubator/vector/Double256VectorTests.java ! test/jdk/jdk/incubator/vector/Double512VectorTests.java ! test/jdk/jdk/incubator/vector/Double64VectorTests.java ! test/jdk/jdk/incubator/vector/Float128VectorTests.java ! test/jdk/jdk/incubator/vector/Float256VectorTests.java ! test/jdk/jdk/incubator/vector/Float512VectorTests.java ! test/jdk/jdk/incubator/vector/Float64VectorTests.java ! test/jdk/jdk/incubator/vector/Int128VectorTests.java ! test/jdk/jdk/incubator/vector/Int256VectorTests.java ! test/jdk/jdk/incubator/vector/Int512VectorTests.java ! test/jdk/jdk/incubator/vector/Int64VectorTests.java ! test/jdk/jdk/incubator/vector/Long128VectorTests.java ! test/jdk/jdk/incubator/vector/Long256VectorTests.java ! test/jdk/jdk/incubator/vector/Long512VectorTests.java ! test/jdk/jdk/incubator/vector/Long64VectorTests.java ! test/jdk/jdk/incubator/vector/Short128VectorTests.java ! test/jdk/jdk/incubator/vector/Short256VectorTests.java ! test/jdk/jdk/incubator/vector/Short512VectorTests.java ! test/jdk/jdk/incubator/vector/Short64VectorTests.java ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/share/c1/c1_Instruction.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/library_call.cpp ! test/jdk/jdk/incubator/vector/Byte128VectorTests.java ! test/jdk/jdk/incubator/vector/Byte256VectorTests.java ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! test/jdk/jdk/incubator/vector/Byte64VectorTests.java ! test/jdk/jdk/incubator/vector/Double128VectorTests.java ! test/jdk/jdk/incubator/vector/Double256VectorTests.java ! test/jdk/jdk/incubator/vector/Double512VectorTests.java ! test/jdk/jdk/incubator/vector/Double64VectorTests.java ! test/jdk/jdk/incubator/vector/Float128VectorTests.java ! test/jdk/jdk/incubator/vector/Float256VectorTests.java ! test/jdk/jdk/incubator/vector/Float512VectorTests.java ! test/jdk/jdk/incubator/vector/Float64VectorTests.java ! test/jdk/jdk/incubator/vector/Int128VectorTests.java ! test/jdk/jdk/incubator/vector/Int256VectorTests.java ! test/jdk/jdk/incubator/vector/Int512VectorTests.java ! test/jdk/jdk/incubator/vector/Int64VectorTests.java ! test/jdk/jdk/incubator/vector/Long128VectorTests.java ! test/jdk/jdk/incubator/vector/Long256VectorTests.java ! test/jdk/jdk/incubator/vector/Long512VectorTests.java ! test/jdk/jdk/incubator/vector/Long64VectorTests.java ! test/jdk/jdk/incubator/vector/Short128VectorTests.java ! test/jdk/jdk/incubator/vector/Short256VectorTests.java ! test/jdk/jdk/incubator/vector/Short512VectorTests.java ! test/jdk/jdk/incubator/vector/Short64VectorTests.java Changeset: fb623f1d Author: Weijun Wang Date: 2021-12-21 22:13:04 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/fb623f1d2ee858fbc6edfeaaa702b5fcd832a0aa 8279066: entries.remove(entry) is useless in PKCS12KeyStore Reviewed-by: mullan ! src/java.base/share/classes/sun/security/pkcs12/PKCS12KeyStore.java Changeset: 00c0d108 Author: Chris Plummer Date: 2021-12-21 22:55:09 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/00c0d1087021603f3f09131cb0458ac8b9c110e5 8244670: convert clhsdb "whatis" command from javascript to java Reviewed-by: sspitsyn, kevinw ! src/jdk.hotspot.agent/doc/clhsdb.html ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/CommandProcessor.java ! test/hotspot/jtreg/serviceability/sa/ClhsdbFindPC.java Changeset: 84d3333c Author: Daniel D. Daugherty Date: 2021-12-21 20:39:06 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/84d3333c7a979742021e759766a7290539b569f4 8279081: ProblemList jdk/jfr/event/oldobject/TestLargeRootSet.java on 2 platforms Reviewed-by: azvegint, sspitsyn ! test/jdk/ProblemList.txt Changeset: bf282649 Author: Jesper Wilhelmsson Date: 2021-12-21 23:07:35 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/bf2826499a26363d01a5269bd2f54e9c363d4cdc Merge Changeset: d0ea7c9d Author: Chris Plummer Date: 2021-12-22 03:56:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/d0ea7c9db9cc9ce80b60c2f94c53bb307792fc51 8279024: Remove javascript references from clhsdb.html Reviewed-by: kevinw, sspitsyn ! src/jdk.hotspot.agent/doc/clhsdb.html ! src/jdk.hotspot.agent/doc/index.html Changeset: 3f41fdec Author: Albert Mingkun Yang Date: 2021-12-22 13:44:20 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3f41fdecdb6d131a5afe6e0a39d7414c222fe4fb 8279063: Consolidate push and push_if_necessary in PreservedMarks Reviewed-by: rkennke, mli, tschatzl ! src/hotspot/share/gc/g1/g1FullGCMarker.inline.hpp ! src/hotspot/share/gc/shared/preservedMarks.hpp ! src/hotspot/share/gc/shared/preservedMarks.inline.hpp ! test/hotspot/gtest/gc/shared/test_preservedMarks.cpp Changeset: a6903f80 Author: Yumin Qi Date: 2021-12-22 16:14:59 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/a6903f806a9071b2c6c4dbb190b0041867e5bb80 8279018: CRC calculation in CDS should not include _version and _head_size Reviewed-by: iklam, ccheung ! src/hotspot/share/cds/filemap.cpp ! src/hotspot/share/include/cds.h ! src/hotspot/share/prims/whitebox.cpp ! test/hotspot/jtreg/runtime/cds/appcds/SharedArchiveConsistency.java ! test/lib/jdk/test/lib/cds/CDSArchiveUtils.java ! test/lib/jdk/test/whitebox/WhiteBox.java ! test/lib/sun/hotspot/WhiteBox.java Changeset: 9a478b34 Author: Yumin Qi Date: 2021-12-22 16:17:33 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9a478b347e1ef7aecfc8bbc2e3c5e6ac7c23ba36 8279022: JCmdTestFileSafety.java should check file time stamp for test result Reviewed-by: ccheung ! test/hotspot/jtreg/runtime/cds/appcds/jcmd/JCmdTestFileSafety.java Changeset: 9ee3ccfe Author: Smita Kamath Committer: Sandhya Viswanathan Date: 2021-12-21 22:09:43 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9ee3ccfee2c9cc54ac7dca49fbf35135e627ef18 8279045: Intrinsics missing vzeroupper instruction Reviewed-by: neliasso, sviswanathan, kvn ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp Changeset: 97c5cd7f Author: Jatin Bhateja Date: 2021-12-22 03:17:03 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/97c5cd7facf1d3565038c078d5688c7da15ad14e 8278508: Enable X86 maskAll instruction pattern for 32 bit JVM. Reviewed-by: kvn, sviswanathan ! src/hotspot/cpu/x86/assembler_x86.cpp ! src/hotspot/cpu/x86/assembler_x86.hpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.hpp ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/cpu/x86/x86_32.ad ! src/hotspot/cpu/x86/x86_64.ad ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! test/jdk/jdk/incubator/vector/ByteMaxVectorTests.java ! test/jdk/jdk/incubator/vector/VectorReshapeTests.java Changeset: 73414391 Author: Kevin Walls Date: 2021-12-22 11:36:53 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/734143918de540382b5a0754bb7be1500b6f3596 8279007: jstatd fails to start because SecurityManager is disabled Reviewed-by: alanb, sspitsyn, mullan ! make/modules/jdk.jstatd/Launcher.gmk ! test/jdk/sun/tools/jstatd/JstatdTest.java Changeset: 713fbeb0 Author: Markus Gr?nlund Date: 2021-12-22 12:30:55 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/713fbeb050a8f79d3a662106125c3f14f3952741 8278987: RunThese24H.java failed with EXCEPTION_ACCESS_VIOLATION in __write_sample_info__ Reviewed-by: jbachorik ! src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleCheckpoint.cpp Changeset: e49d4a98 Author: Erik Gahlin Date: 2021-12-22 13:59:20 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e49d4a9870c19f55a1d5473743880b415a8ead3c 8271447: java.nio.file.InvalidPathException: Malformed input or input contains unmappable characters Reviewed-by: mgronlun ! src/jdk.jfr/share/classes/jdk/jfr/internal/management/ChunkFilename.java Changeset: dfb15c3e Author: Erik Gahlin Date: 2021-12-22 14:29:46 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/dfb15c3e343974eb138ca1a8db3364cd2bac70a4 8274315: JFR: One closed state per file or stream Reviewed-by: mgronlun ! src/jdk.jfr/share/classes/jdk/jfr/consumer/RecordingFile.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/AbstractEventStream.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/ChunkParser.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/EventDirectoryStream.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/EventFileStream.java + src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/ParserState.java Changeset: f1fbba23 Author: Jesper Wilhelmsson Date: 2021-12-22 16:46:43 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f1fbba23ebdb28a32977241f8e85b60e10878cbc Merge ! src/hotspot/cpu/x86/assembler_x86.cpp ! src/hotspot/cpu/x86/assembler_x86.hpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.hpp ! src/hotspot/cpu/x86/x86.ad ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! src/hotspot/cpu/x86/assembler_x86.cpp ! src/hotspot/cpu/x86/assembler_x86.hpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.hpp ! src/hotspot/cpu/x86/x86.ad ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java Changeset: d64820df Author: Valerie Peng Date: 2021-12-22 19:50:51 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/d64820dfefc0bac578df43fe58d2bce8577ec94e 8209398: sun/security/pkcs11/KeyStore/SecretKeysBasic.sh failed with "PKCS11Exception: CKR_ATTRIBUTE_SENSITIVE" Reviewed-by: hchao, weijun ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Key.java ! test/jdk/ProblemList.txt Changeset: eaefb1a1 Author: Chris Plummer Date: 2021-12-22 23:02:41 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/eaefb1a1ed9edea440628e3a5c5483ebd52bfcb0 8244669: convert clhsdb "mem" command from javascript to java Reviewed-by: sspitsyn, kevinw, poonam ! src/jdk.hotspot.agent/doc/clhsdb.html ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/CommandProcessor.java ! test/hotspot/jtreg/serviceability/sa/ClhsdbFindPC.java Changeset: ad1dc9c2 Author: Yi Yang Date: 2021-12-23 02:14:52 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ad1dc9c2ae5463363aff20072a3f2ca4ea23acd2 8278125: Some preallocated OOMEs are missing stack trace Co-authored-by: dongyun.tdy Reviewed-by: dholmes, coleenp ! src/hotspot/share/memory/universe.cpp ! src/hotspot/share/memory/universe.hpp ! src/hotspot/share/utilities/exceptions.cpp + test/hotspot/jtreg/runtime/ErrorHandling/GenOutOfMemoryError.java Changeset: 214f98f6 Author: Andrew Leonard Date: 2021-12-23 11:01:26 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/214f98f6b07e312e6f4ded5364a94277114784e7 8278766: Enable OpenJDK build support for reproducible jars and jmods using --date Reviewed-by: erikj ! make/CreateJmods.gmk ! make/InitSupport.gmk ! make/autoconf/basic_tools.m4 ! make/autoconf/boot-jdk.m4 ! make/autoconf/spec.gmk.in ! make/autoconf/util.m4 ! make/common/JarArchive.gmk Changeset: 87cc4e50 Author: Daniel Le Committer: Naoto Sato Date: 2021-12-23 14:11:11 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/87cc4e5009f6b900c62a91dda1c2f98e4821a492 8276302: Locale.filterTags methods ignore actual weight when matching "*" (as if it is 1) Reviewed-by: naoto ! src/java.base/share/classes/sun/util/locale/LocaleMatcher.java ! test/jdk/java/util/Locale/Bug7069824.java Changeset: 558a6824 Author: Jonathan Gibbons Date: 2021-12-23 15:19:55 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/558a6824c6db805a2b220ab13ed95624df515538 8279115: Fix internal doc comment errors. Reviewed-by: mli ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/ConstructorWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/EnumConstantWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/MethodWriter.java Changeset: bc0466c7 Author: Andrew Leonard Date: 2021-12-23 18:03:05 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/bc0466c7ca57f14b1e6285e2a39755d57c8de376 8279182: MakeZipReproducible ZipEntry timestamps not localized to UTC Reviewed-by: erikj ! make/jdk/src/classes/build/tools/makezipreproducible/MakeZipReproducible.java Changeset: ff2ca4f2 Author: Vicente Romero Date: 2021-12-23 19:12:24 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ff2ca4f21b7bd9d5afc6c74d8d369b3a0b8a4f19 8205187: javac/javadoc should not crash if no java.lang; crash message obsolete Reviewed-by: jjg ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties ! test/langtools/tools/javac/diags/examples/NoJavaLang.java ! test/langtools/tools/javac/fatalErrors/NoJavaLangTest.java Changeset: 7aff03ae Author: Xin Liu Date: 2021-12-23 20:25:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7aff03aee1a5cd70638d8bbafeb7765bc7beea45 8267517: async logging for stdout and stderr Reviewed-by: dholmes, ysuenaga ! src/hotspot/share/logging/logAsyncWriter.cpp ! src/hotspot/share/logging/logAsyncWriter.hpp ! src/hotspot/share/logging/logFileOutput.cpp ! src/hotspot/share/logging/logFileOutput.hpp ! src/hotspot/share/logging/logFileStreamOutput.cpp ! src/hotspot/share/logging/logFileStreamOutput.hpp ! test/hotspot/gtest/logging/test_asynclog.cpp Changeset: 9df200f7 Author: Jonathan Gibbons Date: 2021-12-23 21:15:21 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9df200f749e6326f1d4a22cca770284f38c2de8c 8278795: Create test library and tests for langtools snippets Reviewed-by: hannesw + test/langtools/jdk/javadoc/doclet/testDocletExample/TestDocletExample.java + test/langtools/tools/javac/api/snippets/TestJavaxToolsSnippets.java + test/langtools/tools/lib/snippets/SnippetUtils.java Changeset: 2be3e7ef Author: Coleen Phillimore Date: 2021-12-22 17:19:00 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/2be3e7ef1cff1aae6faf1f4f0545d561af48d0ba 8278239: vmTestbase/nsk/jvmti/RedefineClasses/StressRedefine failed with EXCEPTION_ACCESS_VIOLATION at 0x000000000000000d Reviewed-by: kvn, sspitsyn, eosterlund ! src/hotspot/share/code/codeCache.cpp Changeset: 04ee9211 Author: Stuart Marks Date: 2021-12-22 18:56:30 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/04ee9211fcc59178b3bfdfdda5e0def9b0f29ada 8278967: rmiregistry fails to start because SecurityManager is disabled Reviewed-by: alanb, erikj ! make/modules/java.rmi/Launcher.gmk ! test/jdk/tools/launcher/VersionCheck.java Changeset: 9d5ae2e3 Author: Aleksey Shipilev Date: 2021-12-22 20:17:39 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9d5ae2e38074c3df354aeab19ebbab7d4872165a 8279076: C2: Bad AD file when matching SqrtF with UseSSE=0 Reviewed-by: kvn, sviswanathan ! src/hotspot/cpu/x86/x86.ad + test/hotspot/jtreg/compiler/c2/TestSqrt.java Changeset: 730f6708 Author: Erik Gahlin Date: 2021-12-23 15:03:06 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/730f67081dcda37df7fc40eda99ebd39028be15f 8268297: jdk/jfr/api/consumer/streaming/TestLatestEvent.java times out Reviewed-by: mgronlun ! src/hotspot/share/jfr/recorder/repository/jfrChunk.cpp ! test/jdk/ProblemList.txt ! test/jdk/jdk/jfr/api/consumer/streaming/TestLatestEvent.java Changeset: 04ad6689 Author: Aleksey Shipilev Date: 2021-12-23 16:22:10 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/04ad668921abbd71dfbc474eed6f1760f7a541b1 8279204: [BACKOUT] JDK-8278413: C2 crash when allocating array of size too large Reviewed-by: chagedorn, kvn ! src/hotspot/share/opto/callnode.cpp ! src/hotspot/share/opto/callnode.hpp ! src/hotspot/share/opto/cfgnode.cpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/macro.cpp ! src/hotspot/share/opto/macro.hpp ! src/hotspot/share/opto/split_if.cpp - test/hotspot/jtreg/compiler/allocation/TestFailedAllocationBadGraph.java Changeset: a3b1c6b0 Author: Jesper Wilhelmsson Date: 2021-12-23 21:17:50 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/a3b1c6b03600da21b00a1f37ea4712096d636b14 Merge ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/share/opto/compile.cpp ! test/jdk/ProblemList.txt ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/share/opto/compile.cpp ! test/jdk/ProblemList.txt Changeset: 4669bcd8 Author: Vicente Romero Date: 2021-12-23 21:26:31 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/4669bcd877c89b63739abd8087ea934c7126fb3f 8279244: test accompaning fix for JDK-8205187 is failing in Windows Reviewed-by: dcubed, mikael ! test/langtools/tools/javac/fatalErrors/NoJavaLangTest.java Changeset: 9d99a377 Author: Daniel Jelinski Committer: Anthony Scarpino Date: 2021-12-24 00:01:46 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9d99a377bfb6ffa890db049aee575e97914fc2a1 8277881: Missing SessionID in TLS1.3 resumption in compatibility mode Reviewed-by: ascarpino ! src/java.base/share/classes/sun/security/ssl/ClientHello.java ! src/java.base/share/classes/sun/security/ssl/SSLConfiguration.java ! test/jdk/javax/net/ssl/SSLSession/ResumeTLS13withSNI.java Changeset: 22c15dda Author: Xin Liu Date: 2021-12-24 00:57:03 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/22c15ddae5ef7431f677edf4df9a403613716def 8279189: Inaccurate comment about class VMThread Reviewed-by: dholmes, kbarrett ! src/hotspot/share/runtime/vmThread.hpp Changeset: d52392c1 Author: Jonathan Gibbons Date: 2021-12-24 01:48:13 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/d52392c15e47dbfbba7eda0739ff8e6f29613b53 8276892: Provide a way to emulate exceptional situations in FileManager when using JavadocTester Reviewed-by: prappo ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets.properties ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/Main.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/Start.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/resources/javadoc.properties ! test/langtools/jdk/javadoc/lib/javadoc/tester/JavadocTester.java + test/langtools/jdk/javadoc/lib/javadoc/tester/TestJavaFileManagerBuilder.java + test/langtools/jdk/javadoc/testTFMBuilder/TestTFMBuilder.java Changeset: 70c6df6b Author: Andrey Turbanov Committer: Sergey Bylokhov Date: 2021-12-24 02:02:39 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/70c6df6be431fe11c5441986ed04040f9ec3b750 8274893: Update java.desktop classes to use try-with-resources Reviewed-by: serb ! src/java.desktop/share/classes/com/sun/imageio/plugins/png/PNGImageReader.java ! src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/Metacity.java ! src/java.desktop/share/classes/com/sun/media/sound/AudioFileSoundbankReader.java ! src/java.desktop/share/classes/com/sun/media/sound/DLSSoundbank.java ! src/java.desktop/share/classes/com/sun/media/sound/JARSoundbankReader.java ! src/java.desktop/share/classes/com/sun/media/sound/ModelByteBuffer.java ! src/java.desktop/share/classes/com/sun/media/sound/ModelByteBufferWavetable.java ! src/java.desktop/share/classes/com/sun/media/sound/SF2Soundbank.java ! src/java.desktop/share/classes/com/sun/media/sound/SoftSynthesizer.java ! src/java.desktop/share/classes/com/sun/media/sound/StandardMidiFileReader.java ! src/java.desktop/share/classes/com/sun/media/sound/StandardMidiFileWriter.java ! src/java.desktop/share/classes/java/awt/Font.java ! src/java.desktop/share/classes/java/awt/Toolkit.java ! src/java.desktop/share/classes/java/beans/Beans.java ! src/java.desktop/share/classes/javax/imageio/ImageIO.java ! src/java.desktop/share/classes/javax/swing/JEditorPane.java ! src/java.desktop/share/classes/javax/swing/UIManager.java ! src/java.desktop/share/classes/javax/swing/text/html/HTMLEditorKit.java ! src/java.desktop/share/classes/javax/swing/text/html/StyleSheet.java ! src/java.desktop/share/classes/sun/awt/DebugSettings.java ! src/java.desktop/share/classes/sun/awt/FontConfiguration.java ! src/java.desktop/share/classes/sun/print/PSPrinterJob.java ! src/java.desktop/unix/classes/sun/font/FcFontConfiguration.java ! src/java.desktop/unix/classes/sun/font/MFontConfiguration.java Changeset: b0794b36 Author: duke Date: 2021-12-24 11:00:49 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/b0794b363a1e47297b5cfd395645c099091fb69c Automatic merge of jdk:master into master From duke at openjdk.java.net Fri Dec 24 11:22:15 2021 From: duke at openjdk.java.net (duke) Date: Fri, 24 Dec 2021 11:22:15 GMT Subject: git: openjdk/panama-foreign: master: 84 new changesets Message-ID: Changeset: 6412d57a Author: Weijun Wang Date: 2021-12-17 12:14:17 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/6412d57a0a92ba08cc3db085b371ae1f7ba35ad5 8278560: X509KeyManagerImpl::getAliases might return a good key with others Reviewed-by: xuelei ! src/java.base/share/classes/sun/security/ssl/X509KeyManagerImpl.java + test/jdk/sun/security/ssl/X509KeyManager/NoGoodKey.java Changeset: abab1738 Author: Roman Kennke Date: 2021-12-17 13:33:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/abab1738a702648e91f4c3ad91f71b7633914a31 8278568: Consolidate filler objects Reviewed-by: tschatzl, mli, ayang ! src/hotspot/share/gc/parallel/psPromotionLAB.cpp ! src/hotspot/share/gc/parallel/psPromotionLAB.hpp ! src/hotspot/share/gc/shared/collectedHeap.cpp ! src/hotspot/share/gc/shared/collectedHeap.hpp ! src/hotspot/share/gc/shared/space.cpp ! src/hotspot/share/gc/shared/space.hpp ! src/hotspot/share/oops/oop.hpp Changeset: 3607a5cd Author: Coleen Phillimore Date: 2021-12-17 13:42:54 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3607a5cdd9a3013851c8faefd346f04934f897e6 8277216: Examine InstanceKlass::_misc_flags for concurrency issues Reviewed-by: hseigel, dholmes ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/utilities/accessFlags.hpp Changeset: a68f28ce Author: Nils Eliasson Date: 2021-12-17 15:08:45 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/a68f28cea6a726aa57c04a4fc5a665cae3513154 8278909: Unproblemlist AdaptiveBlocking001 Reviewed-by: chagedorn, eosterlund, stefank ! test/hotspot/jtreg/ProblemList-zgc.txt Changeset: e45e0b05 Author: Phil Race Date: 2021-12-17 15:10:03 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e45e0b05b9e8da8da72bf227cede319fa207a551 8278937: JCK test for java_awt/geom/Line2D.Float fails after 8277868 Reviewed-by: jdv, kcr, rriggs ! src/java.desktop/share/classes/java/awt/geom/Line2D.java ! src/java.desktop/share/classes/sun/awt/geom/Curve.java ! src/java.desktop/share/classes/sun/java2d/Spans.java Changeset: 769f14db Author: Harold Seigel Date: 2021-12-17 15:11:16 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/769f14db847813f5a3601e9ec21e6cadbd99ee96 8278384: Bytecodes::result_type() for arraylength returns T_VOID instead of T_INT Reviewed-by: lfoltan, dholmes ! src/hotspot/share/interpreter/bytecodeUtils.cpp ! src/hotspot/share/interpreter/bytecodes.cpp Changeset: b17f8d5b Author: Gilles Duboscq Date: 2021-12-17 15:36:07 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/b17f8d5b6c4d4ec75bb57f1d2009e30332bdb3ce 8278954: Using clang together with devkit on linux doesn't work for building Reviewed-by: erikj ! make/autoconf/flags.m4 Changeset: 0bfc204a Author: Albert Mingkun Yang Date: 2021-12-17 15:45:16 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/0bfc204a78878872f16019bc75dac7844876ed60 8278956: Remove unimplemented PLAB::allocate_aligned Reviewed-by: tschatzl ! src/hotspot/share/gc/shared/plab.hpp Changeset: 022e4f0f Author: Andrey Turbanov Committer: Vicente Romero Date: 2021-12-17 18:52:37 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/022e4f0f1c4862315b34595d6df228a49f67cb2e 8275242: Remove redundant stream() call before forEach in jdk.compiler Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/api/JavacTrees.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/TypeAnnotations.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/AttrRecover.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/InferenceContext.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java Changeset: 905b7639 Author: liach Committer: Mandy Chung Date: 2021-12-17 22:23:33 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/905b7639424a0fa80f81f734f6fdae1b5018a14a 8261404: Class.getReflectionFactory() is not thread-safe Reviewed-by: rriggs, mchung ! src/java.base/share/classes/java/lang/Class.java Changeset: cc44e137 Author: merykitty Committer: Vladimir Kozlov Date: 2021-12-17 23:42:28 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/cc44e137973808436311aaaa50916d051759f705 8278623: compiler/vectorapi/reshape/TestVectorCastAVX512.java after JDK-8259610 Reviewed-by: kvn, chagedorn, psandoz ! test/hotspot/jtreg/ProblemList.txt + test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorCastAVX512BW.java ! test/hotspot/jtreg/compiler/vectorapi/reshape/TestVectorReinterpret.java ! test/hotspot/jtreg/compiler/vectorapi/reshape/tests/TestVectorCast.java ! test/hotspot/jtreg/compiler/vectorapi/reshape/tests/TestVectorDoubleExpandShrink.java ! test/hotspot/jtreg/compiler/vectorapi/reshape/tests/TestVectorExpandShrink.java ! test/hotspot/jtreg/compiler/vectorapi/reshape/tests/TestVectorRebracket.java ! test/hotspot/jtreg/compiler/vectorapi/reshape/utils/TestCastMethods.java ! test/hotspot/jtreg/compiler/vectorapi/reshape/utils/UnsafeUtils.java ! test/hotspot/jtreg/compiler/vectorapi/reshape/utils/VectorReshapeHelper.java Changeset: 3c10b5db Author: Guoxiong Li Date: 2021-12-18 04:16:44 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3c10b5db38455b8aed88599f5743fd846bd0913e 8278104: C1 should support the compiler directive 'BreakAtExecute' Reviewed-by: xliu, phh, kvn ! src/hotspot/cpu/aarch64/c1_MacroAssembler_aarch64.cpp ! src/hotspot/cpu/arm/c1_MacroAssembler_arm.cpp ! src/hotspot/cpu/ppc/c1_MacroAssembler_ppc.cpp ! src/hotspot/cpu/s390/c1_MacroAssembler_s390.cpp ! src/hotspot/cpu/x86/c1_MacroAssembler_x86.cpp ! src/hotspot/share/c1/c1_LIRAssembler.cpp ! src/hotspot/share/c1/c1_MacroAssembler.hpp ! src/hotspot/share/compiler/compilerDirectives.cpp Changeset: 6f0e8da6 Author: Doug Simon Date: 2021-12-18 06:48:00 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/6f0e8da6d3bef340299e48977d5e17d05eabe682 8278871: [JVMCI] assert((uint)reason < 2* _trap_hist_limit) failed: oob Reviewed-by: kvn, never, dlong ! src/hotspot/share/jvmci/vmStructs_jvmci.cpp ! src/hotspot/share/oops/methodData.hpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/deoptimization.hpp ! src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotVMConfig.java Changeset: 63e43030 Author: Alex Menkov Date: 2021-12-18 08:08:47 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/63e43030ed1260d14df950342c39a377231a3f40 8278519: serviceability/jvmti/FieldAccessWatch/FieldAccessWatch.java failed "assert(handle != __null) failed: JNI handle should not be null" Reviewed-by: cjplummer, sspitsyn ! test/hotspot/jtreg/serviceability/jvmti/FieldAccessWatch/FieldAccessWatch.java ! test/hotspot/jtreg/serviceability/jvmti/FieldAccessWatch/libFieldAccessWatch.c Changeset: 31fbb872 Author: TejeshR13 Committer: Jayathirth D V Date: 2021-12-20 09:53:22 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/31fbb8723e973d4217c80cccba90b2dceb6fa792 6462028: MaskFormatter API documentation refers to getDisplayValue Reviewed-by: psadhukhan, aivanov, prr ! src/java.desktop/share/classes/javax/swing/text/MaskFormatter.java Changeset: 06206c71 Author: Roland Westrelin Date: 2021-12-20 10:00:14 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/06206c7199e9b49382d5f489ed5733525a95a535 8278949: Cleanups for 8277850 Co-authored-by: John R Rose Reviewed-by: kvn, jrose ! src/hotspot/share/opto/mulnode.cpp ! src/hotspot/share/opto/mulnode.hpp ! test/hotspot/jtreg/compiler/c2/irTests/TestShiftAndMask.java Changeset: 4c78c9ab Author: David Holmes Date: 2021-12-20 10:47:37 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/4c78c9ab80202b426efd8f6cc3533d642ae9ba19 8270929: Obsolete the FilterSpuriousWakeups flag in JDK 19 Reviewed-by: hseigel, rehn ! src/hotspot/os/posix/os_posix.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/globals.hpp Changeset: 8549d8b5 Author: Calvin Cheung Date: 2021-12-20 23:04:40 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8549d8b5697606ef87bb3f72abcf14dd7eb8a151 8277100: Dynamic dump can inadvertently overwrite default CDS archive Reviewed-by: iklam, minqi, dholmes ! src/hotspot/share/runtime/arguments.cpp + test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/DumpToDefaultArchive.java Changeset: 51796728 Author: Joe Darcy Date: 2021-12-21 00:25:56 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/517967284cf607c0137e088a33ab5eb98d59542d 8278953: Clarify Class.getDeclaredConstructor specification Reviewed-by: mchung, alanb ! src/java.base/share/classes/java/lang/Class.java Changeset: ff5d4176 Author: Thomas Schatzl Date: 2021-12-21 09:51:21 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ff5d41762d5ba31e88c6cb9207a8ae57f34a69b0 8278893: Parallel: Remove GCWorkerDelayMillis Reviewed-by: ayang, mli ! src/hotspot/share/gc/parallel/parallel_globals.hpp ! src/hotspot/share/gc/parallel/psCardTable.cpp ! src/hotspot/share/gc/parallel/psPromotionManager.inline.hpp Changeset: 29bd7363 Author: Aleksey Shipilev Date: 2021-12-21 14:01:47 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/29bd73638a22d341767a1266723a7d7263e17093 8277893: Arraycopy stress tests Reviewed-by: kvn, mli ! test/hotspot/jtreg/TEST.groups + test/hotspot/jtreg/compiler/arraycopy/stress/AbstractStressArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressBooleanArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressByteArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressCharArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressDoubleArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressFloatArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressIntArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressLongArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressObjectArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/StressShortArrayCopy.java + test/hotspot/jtreg/compiler/arraycopy/stress/TestStressArrayCopy.java Changeset: f4f2f32c Author: Stefan Johansson Date: 2021-12-21 14:03:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f4f2f32cd16158d8d4d2b552cd74531f25c45a29 8278917: Use Prev Bitmap for recording evac failed objects Reviewed-by: ayang, mli, tschatzl ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.hpp ! src/hotspot/share/gc/g1/g1CollectedHeap.inline.hpp ! src/hotspot/share/gc/g1/g1ConcurrentMark.hpp ! src/hotspot/share/gc/g1/g1ConcurrentMark.inline.hpp ! src/hotspot/share/gc/g1/g1EvacFailure.cpp - src/hotspot/share/gc/g1/g1EvacFailureObjectsSet.cpp - src/hotspot/share/gc/g1/g1EvacFailureObjectsSet.hpp - src/hotspot/share/gc/g1/g1EvacFailureObjectsSet.inline.hpp ! src/hotspot/share/gc/g1/g1FullGCCompactTask.cpp ! src/hotspot/share/gc/g1/g1FullGCCompactTask.hpp ! src/hotspot/share/gc/g1/g1ParScanThreadState.cpp ! src/hotspot/share/gc/g1/g1RemSet.cpp ! src/hotspot/share/gc/g1/heapRegion.cpp ! src/hotspot/share/gc/g1/heapRegion.hpp ! src/hotspot/share/gc/g1/heapRegion.inline.hpp Changeset: f90425a1 Author: Roger Riggs Date: 2021-12-21 14:24:44 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f90425a1cbbc686045c87086af586e62f05f6c49 8278087: Deserialization filter and filter factory property error reporting under specified Reviewed-by: lancea, bpb ! src/java.base/share/classes/java/io/ObjectInputFilter.java ! src/java.base/share/classes/java/io/ObjectInputStream.java ! test/jdk/java/io/Serializable/serialFilter/InvalidGlobalFilterTest.java ! test/jdk/java/io/Serializable/serialFilter/SerialFactoryFaults.java Changeset: 8c0bb53f Author: Roger Riggs Date: 2021-12-21 15:16:19 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8c0bb53f5ba6e71b81c9cb99e6f1587150fe531a 8278044: ObjectInputStream methods invoking the OIF.CFG.getSerialFilterFactory() silent about error cases. Reviewed-by: lancea, bpb ! src/java.base/share/classes/java/io/ObjectInputStream.java Changeset: f7309060 Author: Robbin Ehn Date: 2021-12-21 16:12:32 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f7309060ded0edb1e614663572f876d83b77c28e 8278793: Interpreter(x64) intrinsify Thread.currentThread() Reviewed-by: rkennke, dcubed, dholmes ! src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp ! src/hotspot/cpu/x86/templateInterpreterGenerator_x86_64.cpp ! src/hotspot/share/interpreter/abstractInterpreter.cpp ! src/hotspot/share/interpreter/abstractInterpreter.hpp ! src/hotspot/share/interpreter/templateInterpreterGenerator.cpp ! src/hotspot/share/interpreter/templateInterpreterGenerator.hpp Changeset: f31dead6 Author: Daniel Jelinski Committer: Weijun Wang Date: 2021-12-21 18:24:31 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f31dead6c550444a836655ffdf97df8816e2d546 8279043: Some Security Exception Messages Miss Spaces Reviewed-by: weijun ! src/java.base/share/classes/com/sun/crypto/provider/GaloisCounterMode.java ! src/java.base/share/classes/com/sun/crypto/provider/TlsKeyMaterialGenerator.java ! src/java.base/share/classes/javax/crypto/Cipher.java ! src/java.base/share/classes/sun/security/pkcs/PKCS9Attribute.java ! src/java.base/share/classes/sun/security/pkcs12/PKCS12KeyStore.java ! src/java.base/share/classes/sun/security/rsa/RSAPadding.java ! src/java.base/share/classes/sun/security/ssl/CertificateAuthoritiesExtension.java ! src/java.base/share/classes/sun/security/util/DisabledAlgorithmConstraints.java ! src/java.base/share/classes/sun/security/x509/PolicyConstraintsExtension.java ! src/java.base/share/classes/sun/security/x509/PolicyInformation.java ! src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5MechFactory.java ! test/jdk/com/sun/crypto/provider/Cipher/AEAD/GCMBufferTest.java ! test/jdk/com/sun/crypto/provider/Cipher/AEAD/GCMShortBuffer.java ! test/jdk/sun/security/provider/PolicyParser/PrincipalExpansionError.java ! test/jdk/sun/security/ssl/X509TrustManagerImpl/CacertsLimit.java ! test/jdk/sun/security/tools/keytool/fakegen/jdk.crypto.ec/sun/security/ec/ECKeyPairGenerator.java Changeset: 6aeb40cf Author: Albert Mingkun Yang Date: 2021-12-21 20:49:59 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/6aeb40cf2a5cfc827797cd1321c8d96f36ef4f1d 8278396: G1: Initialize the BOT threshold to be region bottom Reviewed-by: tschatzl, sjohanss ! src/hotspot/share/gc/g1/g1BlockOffsetTable.cpp ! src/hotspot/share/gc/g1/g1BlockOffsetTable.hpp ! src/hotspot/share/gc/g1/heapRegion.cpp Changeset: 997b1eea Author: Albert Mingkun Yang Date: 2021-12-21 20:50:46 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/997b1eea6e3c572f905f88f3f5b047a5aa180d1e 8279060: Parallel: Remove unused PSVirtualSpace constructors Reviewed-by: mli, sjohanss, tschatzl ! src/hotspot/share/gc/parallel/psVirtualspace.cpp ! src/hotspot/share/gc/parallel/psVirtualspace.hpp Changeset: f5d7c777 Author: Mark Reinhold Date: 2021-12-17 00:34:03 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f5d7c777bc516fa2e711c19d5281ebf32384b543 8276826: Clarify the ModuleDescriptor.Version specification?s treatment of repeated punctuation characters Reviewed-by: mchung, darcy ! src/java.base/share/classes/java/lang/module/ModuleDescriptor.java Changeset: 8494fec6 Author: Jatin Bhateja Date: 2021-12-17 03:07:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8494fec665bfa51d1702827bd0aa4f4547e67729 8278796: Incorrect behavior of FloatVector.withLane on X86 Reviewed-by: sviswanathan, kvn ! src/hotspot/cpu/x86/x86.ad ! test/jdk/jdk/incubator/vector/Byte128VectorTests.java ! test/jdk/jdk/incubator/vector/Byte256VectorTests.java ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! test/jdk/jdk/incubator/vector/Byte64VectorTests.java ! test/jdk/jdk/incubator/vector/ByteMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Double128VectorTests.java ! test/jdk/jdk/incubator/vector/Double256VectorTests.java ! test/jdk/jdk/incubator/vector/Double512VectorTests.java ! test/jdk/jdk/incubator/vector/Double64VectorTests.java ! test/jdk/jdk/incubator/vector/DoubleMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Float128VectorTests.java ! test/jdk/jdk/incubator/vector/Float256VectorTests.java ! test/jdk/jdk/incubator/vector/Float512VectorTests.java ! test/jdk/jdk/incubator/vector/Float64VectorTests.java ! test/jdk/jdk/incubator/vector/FloatMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Int128VectorTests.java ! test/jdk/jdk/incubator/vector/Int256VectorTests.java ! test/jdk/jdk/incubator/vector/Int512VectorTests.java ! test/jdk/jdk/incubator/vector/Int64VectorTests.java ! test/jdk/jdk/incubator/vector/IntMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Long128VectorTests.java ! test/jdk/jdk/incubator/vector/Long256VectorTests.java ! test/jdk/jdk/incubator/vector/Long512VectorTests.java ! test/jdk/jdk/incubator/vector/Long64VectorTests.java ! test/jdk/jdk/incubator/vector/LongMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Short128VectorTests.java ! test/jdk/jdk/incubator/vector/Short256VectorTests.java ! test/jdk/jdk/incubator/vector/Short512VectorTests.java ! test/jdk/jdk/incubator/vector/Short64VectorTests.java ! test/jdk/jdk/incubator/vector/ShortMaxVectorTests.java ! test/jdk/jdk/incubator/vector/templates/Kernel-With-Op.template ! test/jdk/jdk/incubator/vector/templates/Unit-With-Op.template ! test/jdk/jdk/incubator/vector/templates/Unit-header.template Changeset: bb7efb35 Author: Roland Westrelin Date: 2021-12-17 07:45:44 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/bb7efb3517b0ac66a55607c14aae3aef1f11c892 8278790: Inner loop of long loop nest runs for too few iterations Reviewed-by: chagedorn, neliasso ! src/hotspot/share/opto/loopnode.cpp Changeset: b9a477bf Author: Roland Westrelin Date: 2021-12-17 07:46:47 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/b9a477bf19d9f276f6b1da8984eb56d7bd5fc137 8275638: GraphKit::combine_exception_states fails with "matching stack sizes" assert Reviewed-by: dlong, kvn ! src/hotspot/share/opto/callGenerator.cpp ! src/hotspot/share/opto/graphKit.cpp + test/hotspot/jtreg/compiler/exceptions/TestLateMHInlineExceptions.java Changeset: fffa73c1 Author: Erik Gahlin Date: 2021-12-17 09:49:44 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/fffa73c1ef377eb28371fc4094eea8725850de7d 8269425: 2 jdk/jfr/api/consumer/streaming tests failed to attach Reviewed-by: mgronlun ! test/jdk/jdk/jfr/api/consumer/streaming/TestJVMCrash.java ! test/jdk/jdk/jfr/api/consumer/streaming/TestJVMExit.java ! test/lib/jdk/test/lib/jfr/StreamingUtils.java Changeset: 9cd70906 Author: Naoto Sato Date: 2021-12-17 13:48:26 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9cd709060cf0244ddb71225b55ea4e3e7f41860e 8278587: StringTokenizer(String, String, boolean) documentation bug Backport-of: 8f5fdd864b6f1cf4a2d9d961d8d4118960f0751e ! src/java.base/share/classes/java/util/StringTokenizer.java Changeset: b46f0b0b Author: Igor Veresov Date: 2021-12-17 16:30:40 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/b46f0b0b1f2ada705f8b5aac9b7d8423699437a1 8277447: Hotspot C1 compiler crashes on Kotlin suspend fun with loop Reviewed-by: kvn, neliasso ! src/hotspot/share/c1/c1_Instruction.cpp + test/hotspot/jtreg/compiler/c1/TestC1PhiPlacementPathology.jasm + test/hotspot/jtreg/compiler/c1/TestC1PhiPlacementPathologyMain.java Changeset: 8fbe1724 Author: Artem Semenov Date: 2021-12-17 19:31:51 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/8fbe1724e0f783132a65c45503addad9d98a329e 8278604: SwingSet2 table demo does not have accessible description set for images 8278526: [macos] Screen reader reads SwingSet2 JTable row selection as null, dimmed row for last column Reviewed-by: ant, kizune, pbansal ! src/demo/share/jfc/SwingSet2/TableDemo.java Changeset: a5f5d60f Author: Daniel D. Daugherty Date: 2021-12-17 21:24:51 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/a5f5d60f2529bb28eee6d309bfbde904e188e540 8273107: RunThese24H times out with "java.lang.management.ThreadInfo.getLockName()" is null Reviewed-by: rehn, coleenp, eosterlund ! src/hotspot/share/runtime/monitorDeflationThread.cpp ! src/hotspot/share/runtime/synchronizer.cpp ! src/hotspot/share/runtime/synchronizer.hpp ! src/hotspot/share/runtime/vmOperations.cpp ! src/hotspot/share/runtime/vmOperations.hpp ! src/hotspot/share/services/heapDumper.cpp ! src/hotspot/share/services/threadService.cpp ! src/hotspot/share/services/threadService.hpp Changeset: 36676db2 Author: Alexander Matveev Date: 2021-12-17 21:56:55 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/36676db2fdb810f6d9fe7be8a81b86244dbdbf71 8278970: [macos] SigningPackageTest is failed with runtime exception Reviewed-by: herrick, asemenyuk ! test/jdk/tools/jpackage/macosx/SigningPackageTest.java Changeset: deaf75a5 Author: Roland Westrelin Date: 2021-12-20 09:41:56 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/deaf75a58587f80046204de7559ff50b3b770bed 8278413: C2 crash when allocating array of size too large Reviewed-by: neliasso, kvn ! src/hotspot/share/opto/callnode.cpp ! src/hotspot/share/opto/callnode.hpp ! src/hotspot/share/opto/cfgnode.cpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/macro.cpp ! src/hotspot/share/opto/macro.hpp ! src/hotspot/share/opto/split_if.cpp + test/hotspot/jtreg/compiler/allocation/TestFailedAllocationBadGraph.java Changeset: ad128284 Author: Aleksandr Veselov Committer: Anton Tarasov Date: 2021-12-20 11:40:58 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ad1282842c5eefdad151afe6f4db97a09d643546 8278609: [macos] accessibility frame is misplaced on a secondary monitor on macOS Reviewed-by: ant, kizune ! src/java.desktop/macosx/native/libawt_lwawt/awt/a11y/CommonComponentAccessibility.m Changeset: 819f9bd0 Author: Smita Kamath Committer: Sandhya Viswanathan Date: 2021-12-20 20:09:42 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/819f9bd084fa49222a4310fbcf4933005e9f0ca4 8274323: compiler/codegen/aes/TestAESMain.java failed with "Error: invalid offset: -1434443640" after 8273297 Reviewed-by: sviswanathan, kvn ! src/hotspot/cpu/aarch64/matcher_aarch64.hpp ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/arm/matcher_arm.hpp ! src/hotspot/cpu/ppc/matcher_ppc.hpp ! src/hotspot/cpu/s390/matcher_s390.hpp ! src/hotspot/cpu/x86/matcher_x86.hpp ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/graphKit.hpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/runtime.cpp ! test/hotspot/jtreg/ProblemList-Xcomp.txt Changeset: 467f6549 Author: Aleksey Shipilev Date: 2021-12-21 12:33:59 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/467f654916764751746934f80877d49a5f107194 8279011: JFR: JfrChunkWriter incorrectly handles int64_t chunk size as size_t Reviewed-by: mgronlun ! src/hotspot/share/jfr/recorder/repository/jfrChunkWriter.cpp Changeset: db3d6d77 Author: Roger Riggs Date: 2021-12-21 15:42:36 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/db3d6d772411c4e7bc81d6411abb139462e1581f 8278087: Deserialization filter and filter factory property error reporting under specified Backport-of: f90425a1cbbc686045c87086af586e62f05f6c49 ! src/java.base/share/classes/java/io/ObjectInputFilter.java ! src/java.base/share/classes/java/io/ObjectInputStream.java ! test/jdk/java/io/Serializable/serialFilter/InvalidGlobalFilterTest.java ! test/jdk/java/io/Serializable/serialFilter/SerialFactoryFaults.java Changeset: ac7430cf Author: Roger Riggs Date: 2021-12-21 16:31:58 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ac7430cf7efba519c1fd8b1c1b23136bf158f19f 8278044: ObjectInputStream methods invoking the OIF.CFG.getSerialFilterFactory() silent about error cases. Backport-of: 8c0bb53f5ba6e71b81c9cb99e6f1587150fe531a ! src/java.base/share/classes/java/io/ObjectInputStream.java Changeset: 54517fa3 Author: Daniel D. Daugherty Date: 2021-12-21 17:42:26 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/54517fa3d80b50bfa8a4f6b7937b95e379a1dfeb 8279074: ProblemList compiler/codecache/jmx/PoolsIndependenceTest.java on macosx-aarch64 Reviewed-by: ccheung ! test/hotspot/jtreg/ProblemList.txt Changeset: 1128674d Author: Zhengyu Gu Date: 2021-12-21 19:02:01 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/1128674d7f3766dda8869b213e1fc629e44ea7a8 8278627: Shenandoah: TestHeapDump test failed Reviewed-by: shade, rkennke ! src/hotspot/share/gc/shenandoah/shenandoahClosures.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp Changeset: 803cb8a7 Author: Jesper Wilhelmsson Date: 2021-12-21 21:58:05 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/803cb8a76827a21fcf9e033b4ca6a777c509169b Merge ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/share/c1/c1_Instruction.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/library_call.cpp ! test/jdk/jdk/incubator/vector/Byte128VectorTests.java ! test/jdk/jdk/incubator/vector/Byte256VectorTests.java ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! test/jdk/jdk/incubator/vector/Byte64VectorTests.java ! test/jdk/jdk/incubator/vector/Double128VectorTests.java ! test/jdk/jdk/incubator/vector/Double256VectorTests.java ! test/jdk/jdk/incubator/vector/Double512VectorTests.java ! test/jdk/jdk/incubator/vector/Double64VectorTests.java ! test/jdk/jdk/incubator/vector/Float128VectorTests.java ! test/jdk/jdk/incubator/vector/Float256VectorTests.java ! test/jdk/jdk/incubator/vector/Float512VectorTests.java ! test/jdk/jdk/incubator/vector/Float64VectorTests.java ! test/jdk/jdk/incubator/vector/Int128VectorTests.java ! test/jdk/jdk/incubator/vector/Int256VectorTests.java ! test/jdk/jdk/incubator/vector/Int512VectorTests.java ! test/jdk/jdk/incubator/vector/Int64VectorTests.java ! test/jdk/jdk/incubator/vector/Long128VectorTests.java ! test/jdk/jdk/incubator/vector/Long256VectorTests.java ! test/jdk/jdk/incubator/vector/Long512VectorTests.java ! test/jdk/jdk/incubator/vector/Long64VectorTests.java ! test/jdk/jdk/incubator/vector/Short128VectorTests.java ! test/jdk/jdk/incubator/vector/Short256VectorTests.java ! test/jdk/jdk/incubator/vector/Short512VectorTests.java ! test/jdk/jdk/incubator/vector/Short64VectorTests.java ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/share/c1/c1_Instruction.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/library_call.cpp ! test/jdk/jdk/incubator/vector/Byte128VectorTests.java ! test/jdk/jdk/incubator/vector/Byte256VectorTests.java ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! test/jdk/jdk/incubator/vector/Byte64VectorTests.java ! test/jdk/jdk/incubator/vector/Double128VectorTests.java ! test/jdk/jdk/incubator/vector/Double256VectorTests.java ! test/jdk/jdk/incubator/vector/Double512VectorTests.java ! test/jdk/jdk/incubator/vector/Double64VectorTests.java ! test/jdk/jdk/incubator/vector/Float128VectorTests.java ! test/jdk/jdk/incubator/vector/Float256VectorTests.java ! test/jdk/jdk/incubator/vector/Float512VectorTests.java ! test/jdk/jdk/incubator/vector/Float64VectorTests.java ! test/jdk/jdk/incubator/vector/Int128VectorTests.java ! test/jdk/jdk/incubator/vector/Int256VectorTests.java ! test/jdk/jdk/incubator/vector/Int512VectorTests.java ! test/jdk/jdk/incubator/vector/Int64VectorTests.java ! test/jdk/jdk/incubator/vector/Long128VectorTests.java ! test/jdk/jdk/incubator/vector/Long256VectorTests.java ! test/jdk/jdk/incubator/vector/Long512VectorTests.java ! test/jdk/jdk/incubator/vector/Long64VectorTests.java ! test/jdk/jdk/incubator/vector/Short128VectorTests.java ! test/jdk/jdk/incubator/vector/Short256VectorTests.java ! test/jdk/jdk/incubator/vector/Short512VectorTests.java ! test/jdk/jdk/incubator/vector/Short64VectorTests.java Changeset: fb623f1d Author: Weijun Wang Date: 2021-12-21 22:13:04 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/fb623f1d2ee858fbc6edfeaaa702b5fcd832a0aa 8279066: entries.remove(entry) is useless in PKCS12KeyStore Reviewed-by: mullan ! src/java.base/share/classes/sun/security/pkcs12/PKCS12KeyStore.java Changeset: 00c0d108 Author: Chris Plummer Date: 2021-12-21 22:55:09 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/00c0d1087021603f3f09131cb0458ac8b9c110e5 8244670: convert clhsdb "whatis" command from javascript to java Reviewed-by: sspitsyn, kevinw ! src/jdk.hotspot.agent/doc/clhsdb.html ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/CommandProcessor.java ! test/hotspot/jtreg/serviceability/sa/ClhsdbFindPC.java Changeset: 84d3333c Author: Daniel D. Daugherty Date: 2021-12-21 20:39:06 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/84d3333c7a979742021e759766a7290539b569f4 8279081: ProblemList jdk/jfr/event/oldobject/TestLargeRootSet.java on 2 platforms Reviewed-by: azvegint, sspitsyn ! test/jdk/ProblemList.txt Changeset: bf282649 Author: Jesper Wilhelmsson Date: 2021-12-21 23:07:35 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/bf2826499a26363d01a5269bd2f54e9c363d4cdc Merge Changeset: d0ea7c9d Author: Chris Plummer Date: 2021-12-22 03:56:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/d0ea7c9db9cc9ce80b60c2f94c53bb307792fc51 8279024: Remove javascript references from clhsdb.html Reviewed-by: kevinw, sspitsyn ! src/jdk.hotspot.agent/doc/clhsdb.html ! src/jdk.hotspot.agent/doc/index.html Changeset: 3f41fdec Author: Albert Mingkun Yang Date: 2021-12-22 13:44:20 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/3f41fdecdb6d131a5afe6e0a39d7414c222fe4fb 8279063: Consolidate push and push_if_necessary in PreservedMarks Reviewed-by: rkennke, mli, tschatzl ! src/hotspot/share/gc/g1/g1FullGCMarker.inline.hpp ! src/hotspot/share/gc/shared/preservedMarks.hpp ! src/hotspot/share/gc/shared/preservedMarks.inline.hpp ! test/hotspot/gtest/gc/shared/test_preservedMarks.cpp Changeset: a6903f80 Author: Yumin Qi Date: 2021-12-22 16:14:59 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/a6903f806a9071b2c6c4dbb190b0041867e5bb80 8279018: CRC calculation in CDS should not include _version and _head_size Reviewed-by: iklam, ccheung ! src/hotspot/share/cds/filemap.cpp ! src/hotspot/share/include/cds.h ! src/hotspot/share/prims/whitebox.cpp ! test/hotspot/jtreg/runtime/cds/appcds/SharedArchiveConsistency.java ! test/lib/jdk/test/lib/cds/CDSArchiveUtils.java ! test/lib/jdk/test/whitebox/WhiteBox.java ! test/lib/sun/hotspot/WhiteBox.java Changeset: 9a478b34 Author: Yumin Qi Date: 2021-12-22 16:17:33 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9a478b347e1ef7aecfc8bbc2e3c5e6ac7c23ba36 8279022: JCmdTestFileSafety.java should check file time stamp for test result Reviewed-by: ccheung ! test/hotspot/jtreg/runtime/cds/appcds/jcmd/JCmdTestFileSafety.java Changeset: 9ee3ccfe Author: Smita Kamath Committer: Sandhya Viswanathan Date: 2021-12-21 22:09:43 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9ee3ccfee2c9cc54ac7dca49fbf35135e627ef18 8279045: Intrinsics missing vzeroupper instruction Reviewed-by: neliasso, sviswanathan, kvn ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp Changeset: 97c5cd7f Author: Jatin Bhateja Date: 2021-12-22 03:17:03 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/97c5cd7facf1d3565038c078d5688c7da15ad14e 8278508: Enable X86 maskAll instruction pattern for 32 bit JVM. Reviewed-by: kvn, sviswanathan ! src/hotspot/cpu/x86/assembler_x86.cpp ! src/hotspot/cpu/x86/assembler_x86.hpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.hpp ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/cpu/x86/x86_32.ad ! src/hotspot/cpu/x86/x86_64.ad ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! test/jdk/jdk/incubator/vector/ByteMaxVectorTests.java ! test/jdk/jdk/incubator/vector/VectorReshapeTests.java Changeset: 73414391 Author: Kevin Walls Date: 2021-12-22 11:36:53 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/734143918de540382b5a0754bb7be1500b6f3596 8279007: jstatd fails to start because SecurityManager is disabled Reviewed-by: alanb, sspitsyn, mullan ! make/modules/jdk.jstatd/Launcher.gmk ! test/jdk/sun/tools/jstatd/JstatdTest.java Changeset: 713fbeb0 Author: Markus Gr?nlund Date: 2021-12-22 12:30:55 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/713fbeb050a8f79d3a662106125c3f14f3952741 8278987: RunThese24H.java failed with EXCEPTION_ACCESS_VIOLATION in __write_sample_info__ Reviewed-by: jbachorik ! src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleCheckpoint.cpp Changeset: e49d4a98 Author: Erik Gahlin Date: 2021-12-22 13:59:20 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/e49d4a9870c19f55a1d5473743880b415a8ead3c 8271447: java.nio.file.InvalidPathException: Malformed input or input contains unmappable characters Reviewed-by: mgronlun ! src/jdk.jfr/share/classes/jdk/jfr/internal/management/ChunkFilename.java Changeset: dfb15c3e Author: Erik Gahlin Date: 2021-12-22 14:29:46 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/dfb15c3e343974eb138ca1a8db3364cd2bac70a4 8274315: JFR: One closed state per file or stream Reviewed-by: mgronlun ! src/jdk.jfr/share/classes/jdk/jfr/consumer/RecordingFile.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/AbstractEventStream.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/ChunkParser.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/EventDirectoryStream.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/EventFileStream.java + src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/ParserState.java Changeset: f1fbba23 Author: Jesper Wilhelmsson Date: 2021-12-22 16:46:43 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/f1fbba23ebdb28a32977241f8e85b60e10878cbc Merge ! src/hotspot/cpu/x86/assembler_x86.cpp ! src/hotspot/cpu/x86/assembler_x86.hpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.hpp ! src/hotspot/cpu/x86/x86.ad ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! src/hotspot/cpu/x86/assembler_x86.cpp ! src/hotspot/cpu/x86/assembler_x86.hpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp ! src/hotspot/cpu/x86/c2_MacroAssembler_x86.hpp ! src/hotspot/cpu/x86/x86.ad ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java Changeset: d64820df Author: Valerie Peng Date: 2021-12-22 19:50:51 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/d64820dfefc0bac578df43fe58d2bce8577ec94e 8209398: sun/security/pkcs11/KeyStore/SecretKeysBasic.sh failed with "PKCS11Exception: CKR_ATTRIBUTE_SENSITIVE" Reviewed-by: hchao, weijun ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Key.java ! test/jdk/ProblemList.txt Changeset: eaefb1a1 Author: Chris Plummer Date: 2021-12-22 23:02:41 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/eaefb1a1ed9edea440628e3a5c5483ebd52bfcb0 8244669: convert clhsdb "mem" command from javascript to java Reviewed-by: sspitsyn, kevinw, poonam ! src/jdk.hotspot.agent/doc/clhsdb.html ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/CommandProcessor.java ! test/hotspot/jtreg/serviceability/sa/ClhsdbFindPC.java Changeset: ad1dc9c2 Author: Yi Yang Date: 2021-12-23 02:14:52 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ad1dc9c2ae5463363aff20072a3f2ca4ea23acd2 8278125: Some preallocated OOMEs are missing stack trace Co-authored-by: dongyun.tdy Reviewed-by: dholmes, coleenp ! src/hotspot/share/memory/universe.cpp ! src/hotspot/share/memory/universe.hpp ! src/hotspot/share/utilities/exceptions.cpp + test/hotspot/jtreg/runtime/ErrorHandling/GenOutOfMemoryError.java Changeset: 214f98f6 Author: Andrew Leonard Date: 2021-12-23 11:01:26 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/214f98f6b07e312e6f4ded5364a94277114784e7 8278766: Enable OpenJDK build support for reproducible jars and jmods using --date Reviewed-by: erikj ! make/CreateJmods.gmk ! make/InitSupport.gmk ! make/autoconf/basic_tools.m4 ! make/autoconf/boot-jdk.m4 ! make/autoconf/spec.gmk.in ! make/autoconf/util.m4 ! make/common/JarArchive.gmk Changeset: 87cc4e50 Author: Daniel Le Committer: Naoto Sato Date: 2021-12-23 14:11:11 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/87cc4e5009f6b900c62a91dda1c2f98e4821a492 8276302: Locale.filterTags methods ignore actual weight when matching "*" (as if it is 1) Reviewed-by: naoto ! src/java.base/share/classes/sun/util/locale/LocaleMatcher.java ! test/jdk/java/util/Locale/Bug7069824.java Changeset: 558a6824 Author: Jonathan Gibbons Date: 2021-12-23 15:19:55 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/558a6824c6db805a2b220ab13ed95624df515538 8279115: Fix internal doc comment errors. Reviewed-by: mli ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/ConstructorWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/EnumConstantWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/MethodWriter.java Changeset: bc0466c7 Author: Andrew Leonard Date: 2021-12-23 18:03:05 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/bc0466c7ca57f14b1e6285e2a39755d57c8de376 8279182: MakeZipReproducible ZipEntry timestamps not localized to UTC Reviewed-by: erikj ! make/jdk/src/classes/build/tools/makezipreproducible/MakeZipReproducible.java Changeset: ff2ca4f2 Author: Vicente Romero Date: 2021-12-23 19:12:24 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/ff2ca4f21b7bd9d5afc6c74d8d369b3a0b8a4f19 8205187: javac/javadoc should not crash if no java.lang; crash message obsolete Reviewed-by: jjg ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties ! test/langtools/tools/javac/diags/examples/NoJavaLang.java ! test/langtools/tools/javac/fatalErrors/NoJavaLangTest.java Changeset: 7aff03ae Author: Xin Liu Date: 2021-12-23 20:25:08 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7aff03aee1a5cd70638d8bbafeb7765bc7beea45 8267517: async logging for stdout and stderr Reviewed-by: dholmes, ysuenaga ! src/hotspot/share/logging/logAsyncWriter.cpp ! src/hotspot/share/logging/logAsyncWriter.hpp ! src/hotspot/share/logging/logFileOutput.cpp ! src/hotspot/share/logging/logFileOutput.hpp ! src/hotspot/share/logging/logFileStreamOutput.cpp ! src/hotspot/share/logging/logFileStreamOutput.hpp ! test/hotspot/gtest/logging/test_asynclog.cpp Changeset: 9df200f7 Author: Jonathan Gibbons Date: 2021-12-23 21:15:21 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9df200f749e6326f1d4a22cca770284f38c2de8c 8278795: Create test library and tests for langtools snippets Reviewed-by: hannesw + test/langtools/jdk/javadoc/doclet/testDocletExample/TestDocletExample.java + test/langtools/tools/javac/api/snippets/TestJavaxToolsSnippets.java + test/langtools/tools/lib/snippets/SnippetUtils.java Changeset: 2be3e7ef Author: Coleen Phillimore Date: 2021-12-22 17:19:00 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/2be3e7ef1cff1aae6faf1f4f0545d561af48d0ba 8278239: vmTestbase/nsk/jvmti/RedefineClasses/StressRedefine failed with EXCEPTION_ACCESS_VIOLATION at 0x000000000000000d Reviewed-by: kvn, sspitsyn, eosterlund ! src/hotspot/share/code/codeCache.cpp Changeset: 04ee9211 Author: Stuart Marks Date: 2021-12-22 18:56:30 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/04ee9211fcc59178b3bfdfdda5e0def9b0f29ada 8278967: rmiregistry fails to start because SecurityManager is disabled Reviewed-by: alanb, erikj ! make/modules/java.rmi/Launcher.gmk ! test/jdk/tools/launcher/VersionCheck.java Changeset: 9d5ae2e3 Author: Aleksey Shipilev Date: 2021-12-22 20:17:39 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9d5ae2e38074c3df354aeab19ebbab7d4872165a 8279076: C2: Bad AD file when matching SqrtF with UseSSE=0 Reviewed-by: kvn, sviswanathan ! src/hotspot/cpu/x86/x86.ad + test/hotspot/jtreg/compiler/c2/TestSqrt.java Changeset: 730f6708 Author: Erik Gahlin Date: 2021-12-23 15:03:06 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/730f67081dcda37df7fc40eda99ebd39028be15f 8268297: jdk/jfr/api/consumer/streaming/TestLatestEvent.java times out Reviewed-by: mgronlun ! src/hotspot/share/jfr/recorder/repository/jfrChunk.cpp ! test/jdk/ProblemList.txt ! test/jdk/jdk/jfr/api/consumer/streaming/TestLatestEvent.java Changeset: 04ad6689 Author: Aleksey Shipilev Date: 2021-12-23 16:22:10 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/04ad668921abbd71dfbc474eed6f1760f7a541b1 8279204: [BACKOUT] JDK-8278413: C2 crash when allocating array of size too large Reviewed-by: chagedorn, kvn ! src/hotspot/share/opto/callnode.cpp ! src/hotspot/share/opto/callnode.hpp ! src/hotspot/share/opto/cfgnode.cpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/macro.cpp ! src/hotspot/share/opto/macro.hpp ! src/hotspot/share/opto/split_if.cpp - test/hotspot/jtreg/compiler/allocation/TestFailedAllocationBadGraph.java Changeset: a3b1c6b0 Author: Jesper Wilhelmsson Date: 2021-12-23 21:17:50 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/a3b1c6b03600da21b00a1f37ea4712096d636b14 Merge ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/share/opto/compile.cpp ! test/jdk/ProblemList.txt ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/share/opto/compile.cpp ! test/jdk/ProblemList.txt Changeset: 4669bcd8 Author: Vicente Romero Date: 2021-12-23 21:26:31 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/4669bcd877c89b63739abd8087ea934c7126fb3f 8279244: test accompaning fix for JDK-8205187 is failing in Windows Reviewed-by: dcubed, mikael ! test/langtools/tools/javac/fatalErrors/NoJavaLangTest.java Changeset: 9d99a377 Author: Daniel Jelinski Committer: Anthony Scarpino Date: 2021-12-24 00:01:46 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/9d99a377bfb6ffa890db049aee575e97914fc2a1 8277881: Missing SessionID in TLS1.3 resumption in compatibility mode Reviewed-by: ascarpino ! src/java.base/share/classes/sun/security/ssl/ClientHello.java ! src/java.base/share/classes/sun/security/ssl/SSLConfiguration.java ! test/jdk/javax/net/ssl/SSLSession/ResumeTLS13withSNI.java Changeset: 22c15dda Author: Xin Liu Date: 2021-12-24 00:57:03 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/22c15ddae5ef7431f677edf4df9a403613716def 8279189: Inaccurate comment about class VMThread Reviewed-by: dholmes, kbarrett ! src/hotspot/share/runtime/vmThread.hpp Changeset: d52392c1 Author: Jonathan Gibbons Date: 2021-12-24 01:48:13 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/d52392c15e47dbfbba7eda0739ff8e6f29613b53 8276892: Provide a way to emulate exceptional situations in FileManager when using JavadocTester Reviewed-by: prappo ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets.properties ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/Main.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/Start.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/resources/javadoc.properties ! test/langtools/jdk/javadoc/lib/javadoc/tester/JavadocTester.java + test/langtools/jdk/javadoc/lib/javadoc/tester/TestJavaFileManagerBuilder.java + test/langtools/jdk/javadoc/testTFMBuilder/TestTFMBuilder.java Changeset: 70c6df6b Author: Andrey Turbanov Committer: Sergey Bylokhov Date: 2021-12-24 02:02:39 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/70c6df6be431fe11c5441986ed04040f9ec3b750 8274893: Update java.desktop classes to use try-with-resources Reviewed-by: serb ! src/java.desktop/share/classes/com/sun/imageio/plugins/png/PNGImageReader.java ! src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/Metacity.java ! src/java.desktop/share/classes/com/sun/media/sound/AudioFileSoundbankReader.java ! src/java.desktop/share/classes/com/sun/media/sound/DLSSoundbank.java ! src/java.desktop/share/classes/com/sun/media/sound/JARSoundbankReader.java ! src/java.desktop/share/classes/com/sun/media/sound/ModelByteBuffer.java ! src/java.desktop/share/classes/com/sun/media/sound/ModelByteBufferWavetable.java ! src/java.desktop/share/classes/com/sun/media/sound/SF2Soundbank.java ! src/java.desktop/share/classes/com/sun/media/sound/SoftSynthesizer.java ! src/java.desktop/share/classes/com/sun/media/sound/StandardMidiFileReader.java ! src/java.desktop/share/classes/com/sun/media/sound/StandardMidiFileWriter.java ! src/java.desktop/share/classes/java/awt/Font.java ! src/java.desktop/share/classes/java/awt/Toolkit.java ! src/java.desktop/share/classes/java/beans/Beans.java ! src/java.desktop/share/classes/javax/imageio/ImageIO.java ! src/java.desktop/share/classes/javax/swing/JEditorPane.java ! src/java.desktop/share/classes/javax/swing/UIManager.java ! src/java.desktop/share/classes/javax/swing/text/html/HTMLEditorKit.java ! src/java.desktop/share/classes/javax/swing/text/html/StyleSheet.java ! src/java.desktop/share/classes/sun/awt/DebugSettings.java ! src/java.desktop/share/classes/sun/awt/FontConfiguration.java ! src/java.desktop/share/classes/sun/print/PSPrinterJob.java ! src/java.desktop/unix/classes/sun/font/FcFontConfiguration.java ! src/java.desktop/unix/classes/sun/font/MFontConfiguration.java Changeset: b0794b36 Author: duke Date: 2021-12-24 11:00:49 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/b0794b363a1e47297b5cfd395645c099091fb69c Automatic merge of jdk:master into master From eliu at openjdk.java.net Tue Dec 28 01:59:47 2021 From: eliu at openjdk.java.net (Eric Liu) Date: Tue, 28 Dec 2021 01:59:47 GMT Subject: [vectorIntrinsics] RFR: Merge panama-vector:master Message-ID: Conflicts were resolved in src/hotspot/cpu/aarch64/aarch64_sve.ad src/hotspot/cpu/aarch64/aarch64_sve_ad.m4 src/hotspot/cpu/x86/assembler_x86.hpp src/hotspot/cpu/x86/x86.ad test/hotspot/gtest/aarch64/asmtest.out.h test/jdk/jdk/incubator/vector/config.sh ------------- Commit messages: - Merge panama-vector:master - Merge - 8271202: C1: assert(false) failed: live_in set of first block must be empty - 8279195: Document the -XX:+NeverActAsServerClassMachine flag - 8278889: AArch64: [vectorapi] VectorMaskLoadStoreTest.testMaskCast() test fail - 8279134: Fix Amazon copyright in various files - 8274893: Update java.desktop classes to use try-with-resources - 8276892: Provide a way to emulate exceptional situations in FileManager when using JavadocTester - 8279189: Inaccurate comment about class VMThread - 8277881: Missing SessionID in TLS1.3 resumption in compatibility mode - ... and 419 more: https://git.openjdk.java.net/panama-vector/compare/a4f3250e...3635cdc1 The webrevs contain the adjustments done while merging with regards to each parent branch: - vectorIntrinsics: https://webrevs.openjdk.java.net/?repo=panama-vector&pr=170&range=00.0 - panama-vector:master: https://webrevs.openjdk.java.net/?repo=panama-vector&pr=170&range=00.1 Changes: https://git.openjdk.java.net/panama-vector/pull/170/files Stats: 64562 lines in 1729 files changed: 41903 ins; 13058 del; 9601 mod Patch: https://git.openjdk.java.net/panama-vector/pull/170.diff Fetch: git fetch https://git.openjdk.java.net/panama-vector pull/170/head:pull/170 PR: https://git.openjdk.java.net/panama-vector/pull/170 From jbhateja at openjdk.java.net Tue Dec 28 10:28:39 2021 From: jbhateja at openjdk.java.net (Jatin Bhateja) Date: Tue, 28 Dec 2021 10:28:39 GMT Subject: [vectorIntrinsics] RFR: Merge panama-vector:master In-Reply-To: References: Message-ID: On Tue, 28 Dec 2021 01:52:28 GMT, Eric Liu wrote: > Conflicts were resolved in > > src/hotspot/cpu/aarch64/aarch64_sve.ad > src/hotspot/cpu/aarch64/aarch64_sve_ad.m4 > src/hotspot/cpu/x86/assembler_x86.hpp > src/hotspot/cpu/x86/x86.ad > test/hotspot/gtest/aarch64/asmtest.out.h > test/jdk/jdk/incubator/vector/config.sh Marked as reviewed by jbhateja (Committer). ------------- PR: https://git.openjdk.java.net/panama-vector/pull/170 From me at m-k.mx Tue Dec 28 12:06:00 2021 From: me at m-k.mx (Maxim Karpov) Date: Tue, 28 Dec 2021 13:06:00 +0100 Subject: Feedback about an experiment to embed Python interpreter with FFI API Message-ID: Hi, Recently I'm tried to experiment with FFI API by implementing a library for embedding a Python interpreter inside of a Java program. Such library could be a very powerful tool for closing a gap between the vast amount of mathematical libraries in Python (like numpy, scipy, various ML libraries and like that) and vast amount of general purpose libraries in Java (like Netty and Akka). Due to it's dynamic nature and rather simplistic and slow GC, Python is not particulary well-suited for developing large-scale applications (we easily hit 50ms GC pauses under load and inability to do any refactors even on a medium-scale project). Java, on other hand, lacks any ecosystem of scientific libraries - after all, Java is primarily intended for building applications, and is excellent exactly for that purpose. So writing application in Java and using Python code as a set of computational kernels would be especially beneficial. During the development, it turned out that tooling support is equally as important as runtime support. So this feedback will not touch FFI API itself. Python has many elaborate structures, so JNI programming model is beneficial here because it lets GCC to handle all those structures automatically, and wrapping every structure with 50 members by hand is a laborous task. So the experiment failed, but FFI API is not to blame here, and definitely situation will improve as tooling improves. The topic I want to talk about is a small flag `--enable-native-access=X` that looks harmless and useful at first glance. tl,dr: it is neither harmless nor useful. The reasoning that "user must opt-in to use unsafe APIs" implies that: (1) unsafe APIs are something illegal and should be avoided; (2) user has competencies to make such decisions; (3) user has other choice than use unsafe APIs. From my point of view, all three assumptions are false. When you call unsafe API, you usually do that because you don't have other options, just like embedding Python interpreter: you want not just any Python interpreter, you want Cython library ecosystem which exists only with that specific native interpreter and requires specific unsafe native calls to interact with. You don't have an option to avoid unsafe native API. At least this option is inseparable from avoiding Python itself. And now you a forced to insert `--enable-native-access=MODULE` every time you use PROGRAM. Not every time you write a code (like Scala feature flags for certain dangerous features), but every time you deploy an application. This breaks library encapsulation (you can't just "bring and use" the library). Want to use Python in project A? Go ahead and patch launcher scripts that were otherwise perfectly good. Want to use Python in project B? Well, you know what to do, go ahead and patch launcher scripts. Some of your libraies transitively used native code? You just got a new quest: find which module did it. There are many libraries which (currently) exists as native-only and probably will remain in that state for a long time. WebP image decoder (backed by libwebp.so), H.264 video decoder (backed by libavcodec), Python. With this approach, they are becoming "second-class citizens" that are facing deployment difficulties just because they use large existing codebases that will never be ported to Java. Never. You will forever have to add `--allow-native-access=X` every time you use them. So, the second assumption: users are competent to make such decisions. No, they aren't. In server world, when people want to install some application, they will even tweak kernel sysctls, not to mention JVM command line flags. Does it make application any safer or secure? No. You choose applications to deploy and use by their business features, not by the API they use. If deployment requires some specific flags - they will be either included in default launcher scripts or copy-pasted without any examination. Windows Vista experienced that with UAC: turns out that asking for consent for no reason just makes user to give their consent for no reason. It does not make the system any safer or more secure. Malicious (or poorly written) program or application can do much more to crash the JVM or whole OS. Throwing an Error without a stack trace, calling System.exit or just doing `rm -rf /` or `rm -rf ${HOME}`, just to name a few. So, what else should we expect? --enable-system-exit? --enable-file-io? --enable-process-builder? --enable-override-stack-trace? Java has long story of trying to isolate untrusted code from a system which ended with a SecurityManager being terminally deprecated. When you have untrusted code in your class path (hello, JNDI!) - you are in much larger troubles than unrestricted native access. Even regular file I/O is dangerous. For fault-tolerant systems the right way to achieve fault tolerance with native access involved is to separate distinct processes and let OS do it's job. No flags will help there. Programs crash, yes. We live in real world where nothing is perfect. High-level programs give high-level crashes, low-level programs give low- level crashes. Note that when saying "crashes", I talk about unexpected malfunctions, not about something like FileNotFoundException that is expected to come from file routines. Yes, low-level crashes cannot be caught and usually shut down whole JVM. Most of high-level crashes are not better in any way and fail the environment in which they occur: request, thread, processing job or whole application. But feature flag is required even for well-debugged program "just because", and does not help at all for buggy programs. Third assumption is already outlined, but just to repeat. If someone wants to run a specific application - they will do it. Same applies for app development - if you want to use the library, you usually want it for a specific reasons. Feature flag just discourage usage of all native libraries just for being inherently unsafe. Moreover, it pushes the final decision to an entity which usually has no power to choose APIs used by an application. They just need to run it. The constructive part: what will be more helpful and much less burdensome? I would say that much better alternative to a feature flag is just to record all modules (or classes) which do native access, either by FFI or (in future) by JNI. Then just include list of such modules or classes in crash dump. Straightforward: the VM has crashed, but classes A, B or C might be an issue since they used native access. Try to removing these classes first before reporting any bugs. No deployment burden, no breaking of compatibilty by introducing new restrictions and much more helpful crash dumps. Hope that this feature flag will be transformed to a helpful retrospecive debugging tool instead of restrictive "yes, i want to run program" consent. Feature flag in it's current implementation is no different from requiring a government license to use knife at kitchen since knives are so unsafe and someone can accidentally hurt itself. Otherwise, FFI API is great and surely will be very useful in many cases where JNI is an overkill. Just don't introduce deployment burden with useless feature gates. Or at least invert the logic for rare people that really need to control which parts of system have native access capability. E.g. deny native access only if some flag like --enable-native-access- control is set and module is not explicitly permitted. With best hopes, Maxim Karpov. From pedro.lamarao at prodist.com.br Tue Dec 28 13:11:58 2021 From: pedro.lamarao at prodist.com.br (=?UTF-8?Q?Pedro_Lamar=C3=A3o?=) Date: Tue, 28 Dec 2021 10:11:58 -0300 Subject: Feedback about an experiment to embed Python interpreter with FFI API In-Reply-To: References: Message-ID: Em ter., 28 de dez. de 2021 ?s 09:07, Maxim Karpov escreveu: > Malicious (or poorly written) program or application can do much more to > crash the JVM or whole OS. Throwing an Error without a stack trace, calling > System.exit or just doing `rm -rf /` or `rm -rf ${HOME}`, just to name a > few. So, what else should we expect? --enable-system-exit? > --enable-file-io? > --enable-process-builder? --enable-override-stack-trace? Yes, please! It is easy enough for application provider's to prepare launch scripts with everything necessary to run. The inconvenience is not imposed on the user of the application but the user of the programming environment. To alleviate this person from the inconvenience of explicitly enabling unsafety leads to the effective negation of the protections. Example: https://www.infoq.com/news/2021/11/rudra-rust-safety/ -- Pedro Lamar?o From eliu at openjdk.java.net Tue Dec 28 13:30:09 2021 From: eliu at openjdk.java.net (Eric Liu) Date: Tue, 28 Dec 2021 13:30:09 GMT Subject: [vectorIntrinsics] RFR: Merge panama-vector:master [v2] In-Reply-To: References: Message-ID: <2mLpgcEdp2_Rb0XFpad18X6o9YWtWBobcUXbRcj6zhg=.c107ccbd-f616-4c19-baea-7c6abc523a0f@github.com> > Conflicts were resolved in > > src/hotspot/cpu/aarch64/aarch64_sve.ad > src/hotspot/cpu/aarch64/aarch64_sve_ad.m4 > src/hotspot/cpu/x86/assembler_x86.hpp > src/hotspot/cpu/x86/x86.ad > test/hotspot/gtest/aarch64/asmtest.out.h > test/jdk/jdk/incubator/vector/config.sh Eric Liu has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 798 commits: - Merge panama-vector:master Conflicts were resolved in src/hotspot/cpu/aarch64/aarch64_sve.ad src/hotspot/cpu/aarch64/aarch64_sve_ad.m4 src/hotspot/cpu/x86/assembler_x86.hpp src/hotspot/cpu/x86/x86.ad test/hotspot/gtest/aarch64/asmtest.out.h test/jdk/jdk/incubator/vector/config.sh Change-Id: I7c25771498e4b1cbd70b74b3511fc0ed08418742 - Merge panama-vector:master Reviewed-by: njian - Update asmtest.out.h due to incorrect merge Reviewed-by: eliu - Merge panama-vector:vectorIntrinsics+compress Reviewed-by: jbhateja - Compress JavaDoc. Reviewed-by: sviswanathan - Merge panama-vector:vectorIntrinsics Reviewed-by: eliu - 8276083: Incremental patch to further optimize new compress/expand APIs over X86 Reviewed-by: psandoz - 8275231: Intrinsify VectorMask.compress API for X86 target. Reviewed-by: sviswanathan - Merge panama-vector:vectorIntrinsics Reviewed-by: sviswanathan - 8275255: AArch64: Backend support for compress VectorAPI Reviewed-by: njian - ... and 788 more: https://git.openjdk.java.net/panama-vector/compare/4f607f2a...3635cdc1 ------------- Changes: https://git.openjdk.java.net/panama-vector/pull/170/files Webrev: https://webrevs.openjdk.java.net/?repo=panama-vector&pr=170&range=01 Stats: 75945 lines in 195 files changed: 75815 ins; 33 del; 97 mod Patch: https://git.openjdk.java.net/panama-vector/pull/170.diff Fetch: git fetch https://git.openjdk.java.net/panama-vector pull/170/head:pull/170 PR: https://git.openjdk.java.net/panama-vector/pull/170 From eliu at openjdk.java.net Tue Dec 28 13:30:11 2021 From: eliu at openjdk.java.net (Eric Liu) Date: Tue, 28 Dec 2021 13:30:11 GMT Subject: [vectorIntrinsics] Integrated: Merge panama-vector:master In-Reply-To: References: Message-ID: On Tue, 28 Dec 2021 01:52:28 GMT, Eric Liu wrote: > Conflicts were resolved in > > src/hotspot/cpu/aarch64/aarch64_sve.ad > src/hotspot/cpu/aarch64/aarch64_sve_ad.m4 > src/hotspot/cpu/x86/assembler_x86.hpp > src/hotspot/cpu/x86/x86.ad > test/hotspot/gtest/aarch64/asmtest.out.h > test/jdk/jdk/incubator/vector/config.sh This pull request has now been integrated. Changeset: 36d6356d Author: Eric Liu URL: https://git.openjdk.java.net/panama-vector/commit/36d6356d32e0fd08da2780f2bd6042cf5db50eb4 Stats: 64562 lines in 1729 files changed: 41903 ins; 13058 del; 9601 mod Merge panama-vector:master Reviewed-by: jbhateja ------------- PR: https://git.openjdk.java.net/panama-vector/pull/170 From eliu at openjdk.java.net Tue Dec 28 14:06:05 2021 From: eliu at openjdk.java.net (Eric Liu) Date: Tue, 28 Dec 2021 14:06:05 GMT Subject: [vectorIntrinsics] RFR: 8278468: AArch64: [vectorapi] SVE backend support for CompressM and CompressV(B/H) Message-ID: This patch adds the backend rules for CompressM and CompressV on BYTE and SHORT types. The basic idea is to use SVE compact instruction which supports INT type. The general process for vector compression is as below: 1. Split and extend the vector into INT type. 2. Compresse the extended vectors by COMPACT(S) and narrow the results back to original type. 3. Merge the results by concatenating the compressed elements together. The generated code by "ShortVector.compress" is as follows: mov z19.h, #0 sunpklo z17.s, z16.h punpklo p0.h, p1.b compact z17.s, p0, z17.s uzp1 z17.h, z17.h, z19.h cntp x8, p7, p0.s punpkhi p0.h, p1.b sunpkhi z18.s, z16.h compact z18.s, p0, z18.s uzp1 z18.h, z18.h, z19.h neg x8, x8 index z19.h, w8, #1 tbl z18.h, {z18.h}, z19.h orr z17.d, z17.d, z18.d The performance has a significant improvement in my test machines. ------------- Commit messages: - 8278468: AArch64: [vectorapi] SVE backend support for CompressM and CompressV(B/H) Changes: https://git.openjdk.java.net/panama-vector/pull/171/files Webrev: https://webrevs.openjdk.java.net/?repo=panama-vector&pr=171&range=00 Issue: https://bugs.openjdk.java.net/browse/JDK-8278468 Stats: 276 lines in 8 files changed: 245 ins; 4 del; 27 mod Patch: https://git.openjdk.java.net/panama-vector/pull/171.diff Fetch: git fetch https://git.openjdk.java.net/panama-vector pull/171/head:pull/171 PR: https://git.openjdk.java.net/panama-vector/pull/171 From me at m-k.mx Tue Dec 28 14:43:21 2021 From: me at m-k.mx (Maxim Karpov) Date: Tue, 28 Dec 2021 15:43:21 +0100 Subject: Feedback about an experiment to embed Python interpreter with FFI API In-Reply-To: References: Message-ID: <5c8899da-a671-c2c1-026a-1e529c1ec41f@m-k.mx> You are directing the inconvenience to a wrong place and wrong people. And comparison with Rust is not a valid comparison exactly for that reason. When you want to write unsafe code in Rust, you must explicitly enable it _in source file_. When you want to use unsafe native code in Java, you must explicitly enable it _every time you deploy code with it_. This makes a HUGE difference, because former affects only source file with unsafe code (and creates inconvenience for library authors), and latter affects ALL transitive uses of library (and creates inconvenience for everyone). If tomorrow, say, Google will release library which uses unsafe native, all USERS will have enable flag to allow the library to work. The fact that Google did extensive testing and library is production ready will not matter - every USER of that library will be pushed to enable strange feature flags just because. And it will transitively affect anyone who will use that library. Everyone will have to change their deployment files just because. Creating extra inconvenience for USERS does not relates to safety at all. I'm completely fine if unsafe features are guarded with SOURCE CODE feature flags, just to mark them explicitly in source code. But not with command-line arguments or other means that break library encapsulation. For example, Scala works this way - to use advanced features you have to import something like `scala.language.experimental.macros`. 28.12.2021 14:11, Pedro Lamar?o wriites: > Em ter., 28 de dez. de 2021 ?s 09:07, Maxim Karpov escreveu: > > Malicious (or poorly written) program or application can do much > more to > crash the JVM or whole OS. Throwing an Error without a stack > trace, calling > System.exit or just doing `rm -rf /` or `rm -rf ${HOME}`, just to > name a > few. So, what else should we expect? --enable-system-exit? > --enable-file-io? > --enable-process-builder? --enable-override-stack-trace? > > > Yes, please! > It is easy enough for application provider's to prepare launch scripts > with everything necessary to run. > The inconvenience is not imposed on the user of the application but > the user of the programming environment. > To alleviate?this person from the inconvenience of explicitly enabling > unsafety leads to the effective negation of the protections. > Example: https://www.infoq.com/news/2021/11/rudra-rust-safety/ > > -- > Pedro Lamar?o From fw at deneb.enyo.de Wed Dec 29 16:27:21 2021 From: fw at deneb.enyo.de (Florian Weimer) Date: Wed, 29 Dec 2021 17:27:21 +0100 Subject: Feedback about an experiment to embed Python interpreter with FFI API In-Reply-To: (Maxim Karpov's message of "Tue, 28 Dec 2021 13:06:00 +0100") References: Message-ID: <87wnjn4brq.fsf@mid.deneb.enyo.de> * Maxim Karpov: > The topic I want to talk about is a small flag `--enable-native-access=X` > that looks harmless and useful at first glance. tl,dr: it is neither > harmless nor useful. The reasoning that "user must opt-in to use unsafe > APIs" implies that: (1) unsafe APIs are something illegal and should be > avoided; (2) user has competencies to make such decisions; (3) user has > other choice than use unsafe APIs. From my point of view, all three > assumptions are false. I wanted to bring this up as well. I get the desire not to look at the bogus VM crash reports caused by incorrect code. Maybe some tainting framework could be used instead. Modules which have used FFI would show up in the crash reports, and if they indicate that they do not export a safe interfaces, other modules importing their interfaces would be listed, too. From mail at smogura.eu Wed Dec 29 17:00:57 2021 From: mail at smogura.eu (Rado Smogura) Date: Wed, 29 Dec 2021 18:00:57 +0100 Subject: Feedback about an experiment to embed Python interpreter with FFI API In-Reply-To: <87wnjn4brq.fsf@mid.deneb.enyo.de> References: <87wnjn4brq.fsf@mid.deneb.enyo.de> Message-ID: Hi, +1 It can be hard to use it in serverless / functions environments (at some point of time... as now most stuck with JDK 11 anyway). BR, Rado On 29.12.2021 17:27, Florian Weimer wrote: > * Maxim Karpov: > >> The topic I want to talk about is a small flag `--enable-native-access=X` >> that looks harmless and useful at first glance. tl,dr: it is neither >> harmless nor useful. The reasoning that "user must opt-in to use unsafe >> APIs" implies that: (1) unsafe APIs are something illegal and should be >> avoided; (2) user has competencies to make such decisions; (3) user has >> other choice than use unsafe APIs. From my point of view, all three >> assumptions are false. > I wanted to bring this up as well. I get the desire not to look at > the bogus VM crash reports caused by incorrect code. Maybe some > tainting framework could be used instead. Modules which have used FFI > would show up in the crash reports, and if they indicate that they do > not export a safe interfaces, other modules importing their interfaces > would be listed, too. From njian at openjdk.java.net Thu Dec 30 02:37:32 2021 From: njian at openjdk.java.net (Ningsheng Jian) Date: Thu, 30 Dec 2021 02:37:32 GMT Subject: [vectorIntrinsics] RFR: 8278468: AArch64: [vectorapi] SVE backend support for CompressM and CompressV(B/H) In-Reply-To: References: Message-ID: On Tue, 28 Dec 2021 14:00:08 GMT, Eric Liu wrote: > This patch adds the backend rules for CompressM and CompressV on BYTE > and SHORT types. The basic idea is to use SVE compact instruction which > supports INT type. The general process for vector compression is as > below: > > 1. Split and extend the vector into INT type. > 2. Compresse the extended vectors by COMPACT(S) and narrow the > results back to original type. > 3. Merge the results by concatenating the compressed elements together. > > The generated code by "ShortVector.compress" is as follows: > > > mov z19.h, #0 > sunpklo z17.s, z16.h > punpklo p0.h, p1.b > compact z17.s, p0, z17.s > uzp1 z17.h, z17.h, z19.h > cntp x8, p7, p0.s > punpkhi p0.h, p1.b > sunpkhi z18.s, z16.h > compact z18.s, p0, z18.s > uzp1 z18.h, z18.h, z19.h > neg x8, x8 > index z19.h, w8, #1 > tbl z18.h, {z18.h}, z19.h > orr z17.d, z17.d, z18.d > > > The performance has a significant improvement in my test machines. I've reviewed this patch internally. ------------- Marked as reviewed by njian (Committer). PR: https://git.openjdk.java.net/panama-vector/pull/171 From eliu at openjdk.java.net Thu Dec 30 14:16:42 2021 From: eliu at openjdk.java.net (Eric Liu) Date: Thu, 30 Dec 2021 14:16:42 GMT Subject: [vectorIntrinsics] Integrated: 8278468: AArch64: [vectorapi] SVE backend support for CompressM and CompressV(B/H) In-Reply-To: References: Message-ID: On Tue, 28 Dec 2021 14:00:08 GMT, Eric Liu wrote: > This patch adds the backend rules for CompressM and CompressV on BYTE > and SHORT types. The basic idea is to use SVE compact instruction which > supports INT type. The general process for vector compression is as > below: > > 1. Split and extend the vector into INT type. > 2. Compresse the extended vectors by COMPACT(S) and narrow the > results back to original type. > 3. Merge the results by concatenating the compressed elements together. > > The generated code by "ShortVector.compress" is as follows: > > > mov z19.h, #0 > sunpklo z17.s, z16.h > punpklo p0.h, p1.b > compact z17.s, p0, z17.s > uzp1 z17.h, z17.h, z19.h > cntp x8, p7, p0.s > punpkhi p0.h, p1.b > sunpkhi z18.s, z16.h > compact z18.s, p0, z18.s > uzp1 z18.h, z18.h, z19.h > neg x8, x8 > index z19.h, w8, #1 > tbl z18.h, {z18.h}, z19.h > orr z17.d, z17.d, z18.d > > > The performance has a significant improvement in my test machines. This pull request has now been integrated. Changeset: bf5e00d9 Author: Eric Liu URL: https://git.openjdk.java.net/panama-vector/commit/bf5e00d9fd20a17106e7b3615c22b5cbe20b031d Stats: 276 lines in 8 files changed: 245 ins; 4 del; 27 mod 8278468: AArch64: [vectorapi] SVE backend support for CompressM and CompressV(B/H) Reviewed-by: njian ------------- PR: https://git.openjdk.java.net/panama-vector/pull/171 From duke at openjdk.java.net Fri Dec 31 11:01:55 2021 From: duke at openjdk.java.net (duke) Date: Fri, 31 Dec 2021 11:01:55 GMT Subject: git: openjdk/panama-foreign: foreign-memaccess+abi: 8 new changesets Message-ID: Changeset: 7fea1032 Author: Sergey Bylokhov Date: 2021-12-26 22:10:54 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7fea10327ed27fcf8eae474ca5b15c3b4bafff2a 8279134: Fix Amazon copyright in various files Reviewed-by: xliu, phh ! src/hotspot/cpu/aarch64/spin_wait_aarch64.hpp ! src/hotspot/share/gc/g1/g1OldGenAllocationTracker.cpp ! src/hotspot/share/gc/g1/g1OldGenAllocationTracker.hpp ! test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitAArch64.java ! test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitAArch64DefaultFlags.java ! test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitNoneAArch64.java ! test/hotspot/jtreg/runtime/Thread/TestSpinPause.java ! test/hotspot/jtreg/serviceability/dcmd/compiler/CodeHeapAnalyticsMethodNames.java ! test/jdk/java/io/File/LastModifiedTest.java ! test/jdk/java/security/KeyFactory/KeyFactoryGetKeySpecForInvalidSpec.java ! test/jdk/sun/security/pkcs11/rsa/TestP11KeyFactoryGetRSAKeySpec.java ! test/jdk/sun/security/ssl/SSLSocketImpl/SSLSocketShouldThrowSocketException.java ! test/micro/org/openjdk/bench/java/lang/ThreadOnSpinWait.java ! test/micro/org/openjdk/bench/java/lang/ThreadOnSpinWaitProducerConsumer.java Changeset: 6588bedc Author: Eric Liu Committer: Vladimir Kozlov Date: 2021-12-24 03:10:41 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/6588bedc19ab42cec9e5bb6f13be14fb4dc5a655 8278889: AArch64: [vectorapi] VectorMaskLoadStoreTest.testMaskCast() test fail Reviewed-by: njian, kvn ! src/hotspot/cpu/aarch64/aarch64_sve.ad ! src/hotspot/cpu/aarch64/aarch64_sve_ad.m4 ! src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.hpp ! test/hotspot/gtest/aarch64/aarch64-asmtest.py ! test/hotspot/gtest/aarch64/asmtest.out.h ! test/jdk/jdk/incubator/vector/Byte128VectorTests.java ! test/jdk/jdk/incubator/vector/Byte256VectorTests.java ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! test/jdk/jdk/incubator/vector/Byte64VectorTests.java ! test/jdk/jdk/incubator/vector/ByteMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Double128VectorTests.java ! test/jdk/jdk/incubator/vector/Double256VectorTests.java ! test/jdk/jdk/incubator/vector/Double512VectorTests.java ! test/jdk/jdk/incubator/vector/Double64VectorTests.java ! test/jdk/jdk/incubator/vector/DoubleMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Float128VectorTests.java ! test/jdk/jdk/incubator/vector/Float256VectorTests.java ! test/jdk/jdk/incubator/vector/Float512VectorTests.java ! test/jdk/jdk/incubator/vector/Float64VectorTests.java ! test/jdk/jdk/incubator/vector/FloatMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Int128VectorTests.java ! test/jdk/jdk/incubator/vector/Int256VectorTests.java ! test/jdk/jdk/incubator/vector/Int512VectorTests.java ! test/jdk/jdk/incubator/vector/Int64VectorTests.java ! test/jdk/jdk/incubator/vector/IntMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Long128VectorTests.java ! test/jdk/jdk/incubator/vector/Long256VectorTests.java ! test/jdk/jdk/incubator/vector/Long512VectorTests.java ! test/jdk/jdk/incubator/vector/Long64VectorTests.java ! test/jdk/jdk/incubator/vector/LongMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Short128VectorTests.java ! test/jdk/jdk/incubator/vector/Short256VectorTests.java ! test/jdk/jdk/incubator/vector/Short512VectorTests.java ! test/jdk/jdk/incubator/vector/Short64VectorTests.java ! test/jdk/jdk/incubator/vector/ShortMaxVectorTests.java ! test/jdk/jdk/incubator/vector/templates/Unit-Miscellaneous.template Changeset: 2945b786 Author: Vladimir Kozlov Date: 2021-12-24 22:32:16 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/2945b786ba6b60cc33153bb1d40ac7a0918dadbe 8279195: Document the -XX:+NeverActAsServerClassMachine flag Reviewed-by: dholmes ! src/java.base/share/man/java.1 Changeset: 54b800d5 Author: Igor Veresov Date: 2021-12-25 05:38:12 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/54b800d56d6bc86676722ad96e87b8344606bcb7 8271202: C1: assert(false) failed: live_in set of first block must be empty Co-authored-by: Martin Doerr Reviewed-by: vlivanov, kvn ! src/hotspot/share/c1/c1_LIRGenerator.cpp + test/hotspot/jtreg/compiler/c1/Test8271202.java Changeset: 4f607f2a Author: Jesper Wilhelmsson Date: 2021-12-27 01:22:11 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/4f607f2adac3798c16a62e902ba9ce0df3ab1add Merge ! src/java.base/share/man/java.1 ! test/hotspot/gtest/aarch64/aarch64-asmtest.py ! test/hotspot/gtest/aarch64/asmtest.out.h ! test/jdk/jdk/incubator/vector/Byte128VectorTests.java ! test/jdk/jdk/incubator/vector/Byte256VectorTests.java ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! test/jdk/jdk/incubator/vector/Byte64VectorTests.java ! test/jdk/jdk/incubator/vector/Double128VectorTests.java ! test/jdk/jdk/incubator/vector/Double256VectorTests.java ! test/jdk/jdk/incubator/vector/Double512VectorTests.java ! test/jdk/jdk/incubator/vector/Double64VectorTests.java ! test/jdk/jdk/incubator/vector/Float128VectorTests.java ! test/jdk/jdk/incubator/vector/Float256VectorTests.java ! test/jdk/jdk/incubator/vector/Float512VectorTests.java ! test/jdk/jdk/incubator/vector/Float64VectorTests.java ! test/jdk/jdk/incubator/vector/Int128VectorTests.java ! test/jdk/jdk/incubator/vector/Int256VectorTests.java ! test/jdk/jdk/incubator/vector/Int512VectorTests.java ! test/jdk/jdk/incubator/vector/Int64VectorTests.java ! test/jdk/jdk/incubator/vector/Long128VectorTests.java ! test/jdk/jdk/incubator/vector/Long256VectorTests.java ! test/jdk/jdk/incubator/vector/Long512VectorTests.java ! test/jdk/jdk/incubator/vector/Long64VectorTests.java ! test/jdk/jdk/incubator/vector/Short128VectorTests.java ! test/jdk/jdk/incubator/vector/Short256VectorTests.java ! test/jdk/jdk/incubator/vector/Short512VectorTests.java ! test/jdk/jdk/incubator/vector/Short64VectorTests.java ! test/jdk/jdk/incubator/vector/templates/Unit-Miscellaneous.template ! src/java.base/share/man/java.1 ! test/hotspot/gtest/aarch64/aarch64-asmtest.py ! test/hotspot/gtest/aarch64/asmtest.out.h ! test/jdk/jdk/incubator/vector/Byte128VectorTests.java ! test/jdk/jdk/incubator/vector/Byte256VectorTests.java ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! test/jdk/jdk/incubator/vector/Byte64VectorTests.java ! test/jdk/jdk/incubator/vector/Double128VectorTests.java ! test/jdk/jdk/incubator/vector/Double256VectorTests.java ! test/jdk/jdk/incubator/vector/Double512VectorTests.java ! test/jdk/jdk/incubator/vector/Double64VectorTests.java ! test/jdk/jdk/incubator/vector/Float128VectorTests.java ! test/jdk/jdk/incubator/vector/Float256VectorTests.java ! test/jdk/jdk/incubator/vector/Float512VectorTests.java ! test/jdk/jdk/incubator/vector/Float64VectorTests.java ! test/jdk/jdk/incubator/vector/Int128VectorTests.java ! test/jdk/jdk/incubator/vector/Int256VectorTests.java ! test/jdk/jdk/incubator/vector/Int512VectorTests.java ! test/jdk/jdk/incubator/vector/Int64VectorTests.java ! test/jdk/jdk/incubator/vector/Long128VectorTests.java ! test/jdk/jdk/incubator/vector/Long256VectorTests.java ! test/jdk/jdk/incubator/vector/Long512VectorTests.java ! test/jdk/jdk/incubator/vector/Long64VectorTests.java ! test/jdk/jdk/incubator/vector/Short128VectorTests.java ! test/jdk/jdk/incubator/vector/Short256VectorTests.java ! test/jdk/jdk/incubator/vector/Short512VectorTests.java ! test/jdk/jdk/incubator/vector/Short64VectorTests.java ! test/jdk/jdk/incubator/vector/templates/Unit-Miscellaneous.template Changeset: 299022df Author: Sergey Nazarkin Committer: Alexey Bakhtin Date: 2021-12-28 11:29:12 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/299022dfacbcb49e3bc5beca8ff9b1fca1101493 8279225: [arm32] C1 longs comparison operation destroys argument registers Reviewed-by: haosun, aph ! src/hotspot/cpu/arm/c1_LIRAssembler_arm.cpp Changeset: 20b47439 Author: duke Date: 2021-12-31 11:00:49 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/20b474395c731d8af9a0d62016731aa09f4e5989 Automatic merge of jdk:master into master Changeset: 638f0f9b Author: duke Date: 2021-12-31 11:01:04 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/638f0f9b0f7434dbac1c65f0b50d5c2de6aa7960 Automatic merge of master into foreign-memaccess+abi From duke at openjdk.java.net Fri Dec 31 11:02:25 2021 From: duke at openjdk.java.net (duke) Date: Fri, 31 Dec 2021 11:02:25 GMT Subject: git: openjdk/panama-foreign: master: 7 new changesets Message-ID: <4cd395b7-f8b4-469c-bb6b-25df19469157@openjdk.org> Changeset: 7fea1032 Author: Sergey Bylokhov Date: 2021-12-26 22:10:54 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7fea10327ed27fcf8eae474ca5b15c3b4bafff2a 8279134: Fix Amazon copyright in various files Reviewed-by: xliu, phh ! src/hotspot/cpu/aarch64/spin_wait_aarch64.hpp ! src/hotspot/share/gc/g1/g1OldGenAllocationTracker.cpp ! src/hotspot/share/gc/g1/g1OldGenAllocationTracker.hpp ! test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitAArch64.java ! test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitAArch64DefaultFlags.java ! test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitNoneAArch64.java ! test/hotspot/jtreg/runtime/Thread/TestSpinPause.java ! test/hotspot/jtreg/serviceability/dcmd/compiler/CodeHeapAnalyticsMethodNames.java ! test/jdk/java/io/File/LastModifiedTest.java ! test/jdk/java/security/KeyFactory/KeyFactoryGetKeySpecForInvalidSpec.java ! test/jdk/sun/security/pkcs11/rsa/TestP11KeyFactoryGetRSAKeySpec.java ! test/jdk/sun/security/ssl/SSLSocketImpl/SSLSocketShouldThrowSocketException.java ! test/micro/org/openjdk/bench/java/lang/ThreadOnSpinWait.java ! test/micro/org/openjdk/bench/java/lang/ThreadOnSpinWaitProducerConsumer.java Changeset: 6588bedc Author: Eric Liu Committer: Vladimir Kozlov Date: 2021-12-24 03:10:41 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/6588bedc19ab42cec9e5bb6f13be14fb4dc5a655 8278889: AArch64: [vectorapi] VectorMaskLoadStoreTest.testMaskCast() test fail Reviewed-by: njian, kvn ! src/hotspot/cpu/aarch64/aarch64_sve.ad ! src/hotspot/cpu/aarch64/aarch64_sve_ad.m4 ! src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.hpp ! test/hotspot/gtest/aarch64/aarch64-asmtest.py ! test/hotspot/gtest/aarch64/asmtest.out.h ! test/jdk/jdk/incubator/vector/Byte128VectorTests.java ! test/jdk/jdk/incubator/vector/Byte256VectorTests.java ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! test/jdk/jdk/incubator/vector/Byte64VectorTests.java ! test/jdk/jdk/incubator/vector/ByteMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Double128VectorTests.java ! test/jdk/jdk/incubator/vector/Double256VectorTests.java ! test/jdk/jdk/incubator/vector/Double512VectorTests.java ! test/jdk/jdk/incubator/vector/Double64VectorTests.java ! test/jdk/jdk/incubator/vector/DoubleMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Float128VectorTests.java ! test/jdk/jdk/incubator/vector/Float256VectorTests.java ! test/jdk/jdk/incubator/vector/Float512VectorTests.java ! test/jdk/jdk/incubator/vector/Float64VectorTests.java ! test/jdk/jdk/incubator/vector/FloatMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Int128VectorTests.java ! test/jdk/jdk/incubator/vector/Int256VectorTests.java ! test/jdk/jdk/incubator/vector/Int512VectorTests.java ! test/jdk/jdk/incubator/vector/Int64VectorTests.java ! test/jdk/jdk/incubator/vector/IntMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Long128VectorTests.java ! test/jdk/jdk/incubator/vector/Long256VectorTests.java ! test/jdk/jdk/incubator/vector/Long512VectorTests.java ! test/jdk/jdk/incubator/vector/Long64VectorTests.java ! test/jdk/jdk/incubator/vector/LongMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Short128VectorTests.java ! test/jdk/jdk/incubator/vector/Short256VectorTests.java ! test/jdk/jdk/incubator/vector/Short512VectorTests.java ! test/jdk/jdk/incubator/vector/Short64VectorTests.java ! test/jdk/jdk/incubator/vector/ShortMaxVectorTests.java ! test/jdk/jdk/incubator/vector/templates/Unit-Miscellaneous.template Changeset: 2945b786 Author: Vladimir Kozlov Date: 2021-12-24 22:32:16 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/2945b786ba6b60cc33153bb1d40ac7a0918dadbe 8279195: Document the -XX:+NeverActAsServerClassMachine flag Reviewed-by: dholmes ! src/java.base/share/man/java.1 Changeset: 54b800d5 Author: Igor Veresov Date: 2021-12-25 05:38:12 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/54b800d56d6bc86676722ad96e87b8344606bcb7 8271202: C1: assert(false) failed: live_in set of first block must be empty Co-authored-by: Martin Doerr Reviewed-by: vlivanov, kvn ! src/hotspot/share/c1/c1_LIRGenerator.cpp + test/hotspot/jtreg/compiler/c1/Test8271202.java Changeset: 4f607f2a Author: Jesper Wilhelmsson Date: 2021-12-27 01:22:11 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/4f607f2adac3798c16a62e902ba9ce0df3ab1add Merge ! src/java.base/share/man/java.1 ! test/hotspot/gtest/aarch64/aarch64-asmtest.py ! test/hotspot/gtest/aarch64/asmtest.out.h ! test/jdk/jdk/incubator/vector/Byte128VectorTests.java ! test/jdk/jdk/incubator/vector/Byte256VectorTests.java ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! test/jdk/jdk/incubator/vector/Byte64VectorTests.java ! test/jdk/jdk/incubator/vector/Double128VectorTests.java ! test/jdk/jdk/incubator/vector/Double256VectorTests.java ! test/jdk/jdk/incubator/vector/Double512VectorTests.java ! test/jdk/jdk/incubator/vector/Double64VectorTests.java ! test/jdk/jdk/incubator/vector/Float128VectorTests.java ! test/jdk/jdk/incubator/vector/Float256VectorTests.java ! test/jdk/jdk/incubator/vector/Float512VectorTests.java ! test/jdk/jdk/incubator/vector/Float64VectorTests.java ! test/jdk/jdk/incubator/vector/Int128VectorTests.java ! test/jdk/jdk/incubator/vector/Int256VectorTests.java ! test/jdk/jdk/incubator/vector/Int512VectorTests.java ! test/jdk/jdk/incubator/vector/Int64VectorTests.java ! test/jdk/jdk/incubator/vector/Long128VectorTests.java ! test/jdk/jdk/incubator/vector/Long256VectorTests.java ! test/jdk/jdk/incubator/vector/Long512VectorTests.java ! test/jdk/jdk/incubator/vector/Long64VectorTests.java ! test/jdk/jdk/incubator/vector/Short128VectorTests.java ! test/jdk/jdk/incubator/vector/Short256VectorTests.java ! test/jdk/jdk/incubator/vector/Short512VectorTests.java ! test/jdk/jdk/incubator/vector/Short64VectorTests.java ! test/jdk/jdk/incubator/vector/templates/Unit-Miscellaneous.template ! src/java.base/share/man/java.1 ! test/hotspot/gtest/aarch64/aarch64-asmtest.py ! test/hotspot/gtest/aarch64/asmtest.out.h ! test/jdk/jdk/incubator/vector/Byte128VectorTests.java ! test/jdk/jdk/incubator/vector/Byte256VectorTests.java ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! test/jdk/jdk/incubator/vector/Byte64VectorTests.java ! test/jdk/jdk/incubator/vector/Double128VectorTests.java ! test/jdk/jdk/incubator/vector/Double256VectorTests.java ! test/jdk/jdk/incubator/vector/Double512VectorTests.java ! test/jdk/jdk/incubator/vector/Double64VectorTests.java ! test/jdk/jdk/incubator/vector/Float128VectorTests.java ! test/jdk/jdk/incubator/vector/Float256VectorTests.java ! test/jdk/jdk/incubator/vector/Float512VectorTests.java ! test/jdk/jdk/incubator/vector/Float64VectorTests.java ! test/jdk/jdk/incubator/vector/Int128VectorTests.java ! test/jdk/jdk/incubator/vector/Int256VectorTests.java ! test/jdk/jdk/incubator/vector/Int512VectorTests.java ! test/jdk/jdk/incubator/vector/Int64VectorTests.java ! test/jdk/jdk/incubator/vector/Long128VectorTests.java ! test/jdk/jdk/incubator/vector/Long256VectorTests.java ! test/jdk/jdk/incubator/vector/Long512VectorTests.java ! test/jdk/jdk/incubator/vector/Long64VectorTests.java ! test/jdk/jdk/incubator/vector/Short128VectorTests.java ! test/jdk/jdk/incubator/vector/Short256VectorTests.java ! test/jdk/jdk/incubator/vector/Short512VectorTests.java ! test/jdk/jdk/incubator/vector/Short64VectorTests.java ! test/jdk/jdk/incubator/vector/templates/Unit-Miscellaneous.template Changeset: 299022df Author: Sergey Nazarkin Committer: Alexey Bakhtin Date: 2021-12-28 11:29:12 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/299022dfacbcb49e3bc5beca8ff9b1fca1101493 8279225: [arm32] C1 longs comparison operation destroys argument registers Reviewed-by: haosun, aph ! src/hotspot/cpu/arm/c1_LIRAssembler_arm.cpp Changeset: 20b47439 Author: duke Date: 2021-12-31 11:00:49 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/20b474395c731d8af9a0d62016731aa09f4e5989 Automatic merge of jdk:master into master From duke at openjdk.java.net Fri Dec 31 11:04:11 2021 From: duke at openjdk.java.net (duke) Date: Fri, 31 Dec 2021 11:04:11 GMT Subject: git: openjdk/panama-foreign: foreign-jextract: 9 new changesets Message-ID: Changeset: 7fea1032 Author: Sergey Bylokhov Date: 2021-12-26 22:10:54 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7fea10327ed27fcf8eae474ca5b15c3b4bafff2a 8279134: Fix Amazon copyright in various files Reviewed-by: xliu, phh ! src/hotspot/cpu/aarch64/spin_wait_aarch64.hpp ! src/hotspot/share/gc/g1/g1OldGenAllocationTracker.cpp ! src/hotspot/share/gc/g1/g1OldGenAllocationTracker.hpp ! test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitAArch64.java ! test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitAArch64DefaultFlags.java ! test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitNoneAArch64.java ! test/hotspot/jtreg/runtime/Thread/TestSpinPause.java ! test/hotspot/jtreg/serviceability/dcmd/compiler/CodeHeapAnalyticsMethodNames.java ! test/jdk/java/io/File/LastModifiedTest.java ! test/jdk/java/security/KeyFactory/KeyFactoryGetKeySpecForInvalidSpec.java ! test/jdk/sun/security/pkcs11/rsa/TestP11KeyFactoryGetRSAKeySpec.java ! test/jdk/sun/security/ssl/SSLSocketImpl/SSLSocketShouldThrowSocketException.java ! test/micro/org/openjdk/bench/java/lang/ThreadOnSpinWait.java ! test/micro/org/openjdk/bench/java/lang/ThreadOnSpinWaitProducerConsumer.java Changeset: 6588bedc Author: Eric Liu Committer: Vladimir Kozlov Date: 2021-12-24 03:10:41 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/6588bedc19ab42cec9e5bb6f13be14fb4dc5a655 8278889: AArch64: [vectorapi] VectorMaskLoadStoreTest.testMaskCast() test fail Reviewed-by: njian, kvn ! src/hotspot/cpu/aarch64/aarch64_sve.ad ! src/hotspot/cpu/aarch64/aarch64_sve_ad.m4 ! src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.hpp ! test/hotspot/gtest/aarch64/aarch64-asmtest.py ! test/hotspot/gtest/aarch64/asmtest.out.h ! test/jdk/jdk/incubator/vector/Byte128VectorTests.java ! test/jdk/jdk/incubator/vector/Byte256VectorTests.java ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! test/jdk/jdk/incubator/vector/Byte64VectorTests.java ! test/jdk/jdk/incubator/vector/ByteMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Double128VectorTests.java ! test/jdk/jdk/incubator/vector/Double256VectorTests.java ! test/jdk/jdk/incubator/vector/Double512VectorTests.java ! test/jdk/jdk/incubator/vector/Double64VectorTests.java ! test/jdk/jdk/incubator/vector/DoubleMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Float128VectorTests.java ! test/jdk/jdk/incubator/vector/Float256VectorTests.java ! test/jdk/jdk/incubator/vector/Float512VectorTests.java ! test/jdk/jdk/incubator/vector/Float64VectorTests.java ! test/jdk/jdk/incubator/vector/FloatMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Int128VectorTests.java ! test/jdk/jdk/incubator/vector/Int256VectorTests.java ! test/jdk/jdk/incubator/vector/Int512VectorTests.java ! test/jdk/jdk/incubator/vector/Int64VectorTests.java ! test/jdk/jdk/incubator/vector/IntMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Long128VectorTests.java ! test/jdk/jdk/incubator/vector/Long256VectorTests.java ! test/jdk/jdk/incubator/vector/Long512VectorTests.java ! test/jdk/jdk/incubator/vector/Long64VectorTests.java ! test/jdk/jdk/incubator/vector/LongMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Short128VectorTests.java ! test/jdk/jdk/incubator/vector/Short256VectorTests.java ! test/jdk/jdk/incubator/vector/Short512VectorTests.java ! test/jdk/jdk/incubator/vector/Short64VectorTests.java ! test/jdk/jdk/incubator/vector/ShortMaxVectorTests.java ! test/jdk/jdk/incubator/vector/templates/Unit-Miscellaneous.template Changeset: 2945b786 Author: Vladimir Kozlov Date: 2021-12-24 22:32:16 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/2945b786ba6b60cc33153bb1d40ac7a0918dadbe 8279195: Document the -XX:+NeverActAsServerClassMachine flag Reviewed-by: dholmes ! src/java.base/share/man/java.1 Changeset: 54b800d5 Author: Igor Veresov Date: 2021-12-25 05:38:12 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/54b800d56d6bc86676722ad96e87b8344606bcb7 8271202: C1: assert(false) failed: live_in set of first block must be empty Co-authored-by: Martin Doerr Reviewed-by: vlivanov, kvn ! src/hotspot/share/c1/c1_LIRGenerator.cpp + test/hotspot/jtreg/compiler/c1/Test8271202.java Changeset: 4f607f2a Author: Jesper Wilhelmsson Date: 2021-12-27 01:22:11 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/4f607f2adac3798c16a62e902ba9ce0df3ab1add Merge ! src/java.base/share/man/java.1 ! test/hotspot/gtest/aarch64/aarch64-asmtest.py ! test/hotspot/gtest/aarch64/asmtest.out.h ! test/jdk/jdk/incubator/vector/Byte128VectorTests.java ! test/jdk/jdk/incubator/vector/Byte256VectorTests.java ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! test/jdk/jdk/incubator/vector/Byte64VectorTests.java ! test/jdk/jdk/incubator/vector/Double128VectorTests.java ! test/jdk/jdk/incubator/vector/Double256VectorTests.java ! test/jdk/jdk/incubator/vector/Double512VectorTests.java ! test/jdk/jdk/incubator/vector/Double64VectorTests.java ! test/jdk/jdk/incubator/vector/Float128VectorTests.java ! test/jdk/jdk/incubator/vector/Float256VectorTests.java ! test/jdk/jdk/incubator/vector/Float512VectorTests.java ! test/jdk/jdk/incubator/vector/Float64VectorTests.java ! test/jdk/jdk/incubator/vector/Int128VectorTests.java ! test/jdk/jdk/incubator/vector/Int256VectorTests.java ! test/jdk/jdk/incubator/vector/Int512VectorTests.java ! test/jdk/jdk/incubator/vector/Int64VectorTests.java ! test/jdk/jdk/incubator/vector/Long128VectorTests.java ! test/jdk/jdk/incubator/vector/Long256VectorTests.java ! test/jdk/jdk/incubator/vector/Long512VectorTests.java ! test/jdk/jdk/incubator/vector/Long64VectorTests.java ! test/jdk/jdk/incubator/vector/Short128VectorTests.java ! test/jdk/jdk/incubator/vector/Short256VectorTests.java ! test/jdk/jdk/incubator/vector/Short512VectorTests.java ! test/jdk/jdk/incubator/vector/Short64VectorTests.java ! test/jdk/jdk/incubator/vector/templates/Unit-Miscellaneous.template ! src/java.base/share/man/java.1 ! test/hotspot/gtest/aarch64/aarch64-asmtest.py ! test/hotspot/gtest/aarch64/asmtest.out.h ! test/jdk/jdk/incubator/vector/Byte128VectorTests.java ! test/jdk/jdk/incubator/vector/Byte256VectorTests.java ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! test/jdk/jdk/incubator/vector/Byte64VectorTests.java ! test/jdk/jdk/incubator/vector/Double128VectorTests.java ! test/jdk/jdk/incubator/vector/Double256VectorTests.java ! test/jdk/jdk/incubator/vector/Double512VectorTests.java ! test/jdk/jdk/incubator/vector/Double64VectorTests.java ! test/jdk/jdk/incubator/vector/Float128VectorTests.java ! test/jdk/jdk/incubator/vector/Float256VectorTests.java ! test/jdk/jdk/incubator/vector/Float512VectorTests.java ! test/jdk/jdk/incubator/vector/Float64VectorTests.java ! test/jdk/jdk/incubator/vector/Int128VectorTests.java ! test/jdk/jdk/incubator/vector/Int256VectorTests.java ! test/jdk/jdk/incubator/vector/Int512VectorTests.java ! test/jdk/jdk/incubator/vector/Int64VectorTests.java ! test/jdk/jdk/incubator/vector/Long128VectorTests.java ! test/jdk/jdk/incubator/vector/Long256VectorTests.java ! test/jdk/jdk/incubator/vector/Long512VectorTests.java ! test/jdk/jdk/incubator/vector/Long64VectorTests.java ! test/jdk/jdk/incubator/vector/Short128VectorTests.java ! test/jdk/jdk/incubator/vector/Short256VectorTests.java ! test/jdk/jdk/incubator/vector/Short512VectorTests.java ! test/jdk/jdk/incubator/vector/Short64VectorTests.java ! test/jdk/jdk/incubator/vector/templates/Unit-Miscellaneous.template Changeset: 299022df Author: Sergey Nazarkin Committer: Alexey Bakhtin Date: 2021-12-28 11:29:12 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/299022dfacbcb49e3bc5beca8ff9b1fca1101493 8279225: [arm32] C1 longs comparison operation destroys argument registers Reviewed-by: haosun, aph ! src/hotspot/cpu/arm/c1_LIRAssembler_arm.cpp Changeset: 20b47439 Author: duke Date: 2021-12-31 11:00:49 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/20b474395c731d8af9a0d62016731aa09f4e5989 Automatic merge of jdk:master into master Changeset: 638f0f9b Author: duke Date: 2021-12-31 11:01:04 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/638f0f9b0f7434dbac1c65f0b50d5c2de6aa7960 Automatic merge of master into foreign-memaccess+abi Changeset: 10504ad4 Author: duke Date: 2021-12-31 11:01:20 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/10504ad44e92f0961b871724d9b885da19bb0587 Automatic merge of foreign-memaccess+abi into foreign-jextract From duke at openjdk.java.net Fri Dec 31 11:04:41 2021 From: duke at openjdk.java.net (duke) Date: Fri, 31 Dec 2021 11:04:41 GMT Subject: git: openjdk/panama-foreign: foreign-preview: 7 new changesets Message-ID: <4874d5d5-27b8-445f-9100-748a7113a87e@openjdk.org> Changeset: 7fea1032 Author: Sergey Bylokhov Date: 2021-12-26 22:10:54 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/7fea10327ed27fcf8eae474ca5b15c3b4bafff2a 8279134: Fix Amazon copyright in various files Reviewed-by: xliu, phh ! src/hotspot/cpu/aarch64/spin_wait_aarch64.hpp ! src/hotspot/share/gc/g1/g1OldGenAllocationTracker.cpp ! src/hotspot/share/gc/g1/g1OldGenAllocationTracker.hpp ! test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitAArch64.java ! test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitAArch64DefaultFlags.java ! test/hotspot/jtreg/compiler/onSpinWait/TestOnSpinWaitNoneAArch64.java ! test/hotspot/jtreg/runtime/Thread/TestSpinPause.java ! test/hotspot/jtreg/serviceability/dcmd/compiler/CodeHeapAnalyticsMethodNames.java ! test/jdk/java/io/File/LastModifiedTest.java ! test/jdk/java/security/KeyFactory/KeyFactoryGetKeySpecForInvalidSpec.java ! test/jdk/sun/security/pkcs11/rsa/TestP11KeyFactoryGetRSAKeySpec.java ! test/jdk/sun/security/ssl/SSLSocketImpl/SSLSocketShouldThrowSocketException.java ! test/micro/org/openjdk/bench/java/lang/ThreadOnSpinWait.java ! test/micro/org/openjdk/bench/java/lang/ThreadOnSpinWaitProducerConsumer.java Changeset: 6588bedc Author: Eric Liu Committer: Vladimir Kozlov Date: 2021-12-24 03:10:41 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/6588bedc19ab42cec9e5bb6f13be14fb4dc5a655 8278889: AArch64: [vectorapi] VectorMaskLoadStoreTest.testMaskCast() test fail Reviewed-by: njian, kvn ! src/hotspot/cpu/aarch64/aarch64_sve.ad ! src/hotspot/cpu/aarch64/aarch64_sve_ad.m4 ! src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.hpp ! test/hotspot/gtest/aarch64/aarch64-asmtest.py ! test/hotspot/gtest/aarch64/asmtest.out.h ! test/jdk/jdk/incubator/vector/Byte128VectorTests.java ! test/jdk/jdk/incubator/vector/Byte256VectorTests.java ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! test/jdk/jdk/incubator/vector/Byte64VectorTests.java ! test/jdk/jdk/incubator/vector/ByteMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Double128VectorTests.java ! test/jdk/jdk/incubator/vector/Double256VectorTests.java ! test/jdk/jdk/incubator/vector/Double512VectorTests.java ! test/jdk/jdk/incubator/vector/Double64VectorTests.java ! test/jdk/jdk/incubator/vector/DoubleMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Float128VectorTests.java ! test/jdk/jdk/incubator/vector/Float256VectorTests.java ! test/jdk/jdk/incubator/vector/Float512VectorTests.java ! test/jdk/jdk/incubator/vector/Float64VectorTests.java ! test/jdk/jdk/incubator/vector/FloatMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Int128VectorTests.java ! test/jdk/jdk/incubator/vector/Int256VectorTests.java ! test/jdk/jdk/incubator/vector/Int512VectorTests.java ! test/jdk/jdk/incubator/vector/Int64VectorTests.java ! test/jdk/jdk/incubator/vector/IntMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Long128VectorTests.java ! test/jdk/jdk/incubator/vector/Long256VectorTests.java ! test/jdk/jdk/incubator/vector/Long512VectorTests.java ! test/jdk/jdk/incubator/vector/Long64VectorTests.java ! test/jdk/jdk/incubator/vector/LongMaxVectorTests.java ! test/jdk/jdk/incubator/vector/Short128VectorTests.java ! test/jdk/jdk/incubator/vector/Short256VectorTests.java ! test/jdk/jdk/incubator/vector/Short512VectorTests.java ! test/jdk/jdk/incubator/vector/Short64VectorTests.java ! test/jdk/jdk/incubator/vector/ShortMaxVectorTests.java ! test/jdk/jdk/incubator/vector/templates/Unit-Miscellaneous.template Changeset: 2945b786 Author: Vladimir Kozlov Date: 2021-12-24 22:32:16 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/2945b786ba6b60cc33153bb1d40ac7a0918dadbe 8279195: Document the -XX:+NeverActAsServerClassMachine flag Reviewed-by: dholmes ! src/java.base/share/man/java.1 Changeset: 54b800d5 Author: Igor Veresov Date: 2021-12-25 05:38:12 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/54b800d56d6bc86676722ad96e87b8344606bcb7 8271202: C1: assert(false) failed: live_in set of first block must be empty Co-authored-by: Martin Doerr Reviewed-by: vlivanov, kvn ! src/hotspot/share/c1/c1_LIRGenerator.cpp + test/hotspot/jtreg/compiler/c1/Test8271202.java Changeset: 4f607f2a Author: Jesper Wilhelmsson Date: 2021-12-27 01:22:11 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/4f607f2adac3798c16a62e902ba9ce0df3ab1add Merge ! src/java.base/share/man/java.1 ! test/hotspot/gtest/aarch64/aarch64-asmtest.py ! test/hotspot/gtest/aarch64/asmtest.out.h ! test/jdk/jdk/incubator/vector/Byte128VectorTests.java ! test/jdk/jdk/incubator/vector/Byte256VectorTests.java ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! test/jdk/jdk/incubator/vector/Byte64VectorTests.java ! test/jdk/jdk/incubator/vector/Double128VectorTests.java ! test/jdk/jdk/incubator/vector/Double256VectorTests.java ! test/jdk/jdk/incubator/vector/Double512VectorTests.java ! test/jdk/jdk/incubator/vector/Double64VectorTests.java ! test/jdk/jdk/incubator/vector/Float128VectorTests.java ! test/jdk/jdk/incubator/vector/Float256VectorTests.java ! test/jdk/jdk/incubator/vector/Float512VectorTests.java ! test/jdk/jdk/incubator/vector/Float64VectorTests.java ! test/jdk/jdk/incubator/vector/Int128VectorTests.java ! test/jdk/jdk/incubator/vector/Int256VectorTests.java ! test/jdk/jdk/incubator/vector/Int512VectorTests.java ! test/jdk/jdk/incubator/vector/Int64VectorTests.java ! test/jdk/jdk/incubator/vector/Long128VectorTests.java ! test/jdk/jdk/incubator/vector/Long256VectorTests.java ! test/jdk/jdk/incubator/vector/Long512VectorTests.java ! test/jdk/jdk/incubator/vector/Long64VectorTests.java ! test/jdk/jdk/incubator/vector/Short128VectorTests.java ! test/jdk/jdk/incubator/vector/Short256VectorTests.java ! test/jdk/jdk/incubator/vector/Short512VectorTests.java ! test/jdk/jdk/incubator/vector/Short64VectorTests.java ! test/jdk/jdk/incubator/vector/templates/Unit-Miscellaneous.template ! src/java.base/share/man/java.1 ! test/hotspot/gtest/aarch64/aarch64-asmtest.py ! test/hotspot/gtest/aarch64/asmtest.out.h ! test/jdk/jdk/incubator/vector/Byte128VectorTests.java ! test/jdk/jdk/incubator/vector/Byte256VectorTests.java ! test/jdk/jdk/incubator/vector/Byte512VectorTests.java ! test/jdk/jdk/incubator/vector/Byte64VectorTests.java ! test/jdk/jdk/incubator/vector/Double128VectorTests.java ! test/jdk/jdk/incubator/vector/Double256VectorTests.java ! test/jdk/jdk/incubator/vector/Double512VectorTests.java ! test/jdk/jdk/incubator/vector/Double64VectorTests.java ! test/jdk/jdk/incubator/vector/Float128VectorTests.java ! test/jdk/jdk/incubator/vector/Float256VectorTests.java ! test/jdk/jdk/incubator/vector/Float512VectorTests.java ! test/jdk/jdk/incubator/vector/Float64VectorTests.java ! test/jdk/jdk/incubator/vector/Int128VectorTests.java ! test/jdk/jdk/incubator/vector/Int256VectorTests.java ! test/jdk/jdk/incubator/vector/Int512VectorTests.java ! test/jdk/jdk/incubator/vector/Int64VectorTests.java ! test/jdk/jdk/incubator/vector/Long128VectorTests.java ! test/jdk/jdk/incubator/vector/Long256VectorTests.java ! test/jdk/jdk/incubator/vector/Long512VectorTests.java ! test/jdk/jdk/incubator/vector/Long64VectorTests.java ! test/jdk/jdk/incubator/vector/Short128VectorTests.java ! test/jdk/jdk/incubator/vector/Short256VectorTests.java ! test/jdk/jdk/incubator/vector/Short512VectorTests.java ! test/jdk/jdk/incubator/vector/Short64VectorTests.java ! test/jdk/jdk/incubator/vector/templates/Unit-Miscellaneous.template Changeset: 299022df Author: Sergey Nazarkin Committer: Alexey Bakhtin Date: 2021-12-28 11:29:12 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/299022dfacbcb49e3bc5beca8ff9b1fca1101493 8279225: [arm32] C1 longs comparison operation destroys argument registers Reviewed-by: haosun, aph ! src/hotspot/cpu/arm/c1_LIRAssembler_arm.cpp Changeset: 20b47439 Author: duke Date: 2021-12-31 11:00:49 +0000 URL: https://git.openjdk.java.net/panama-foreign/commit/20b474395c731d8af9a0d62016731aa09f4e5989 Automatic merge of jdk:master into master From carl.dea at gmail.com Sun Dec 26 17:12:06 2021 From: carl.dea at gmail.com (carl dea) Date: Sun, 26 Dec 2021 12:12:06 -0500 Subject: Calling the Port Audio C API via Panama FFI APIs In-Reply-To: <17c3765d-bce3-c894-c2b8-41f80c1389d1@oracle.com> References: <17c3765d-bce3-c894-c2b8-41f80c1389d1@oracle.com> Message-ID: Maurizio, Thank you for the quick response. Because I'm still using the same build as before I still wanted to respond to some of your suggestions and later follow-up once I can/able to resync to the correct build. My responses are below: On Wed, Dec 22, 2021 at 5:19 PM Maurizio Cimadamore < maurizio.cimadamore at oracle.com> wrote: > Hi Carl, > I can't test this right now, but after having a brief look at your code, > few things jumped to mind: > > 1. you don't seem to be doing anything really expensive, enough to cause > the program to misbehave. The most expensive operation is probably the > shared scope closure, but that happens when bringing things down (so > it's immaterial). > My build is from the public download https://jdk.java.net/panama/ shown as Build 17-panama+3-167 (2021/5/18) I chose the shared scope because when using newConfinedScope() it crashes. try (var scope = ResourceScope.newConfinedScope()) :-) Not sure if upcalls/callbacks handle scope differently. > 2. You are not using a recent Panama build (I see the MemoryAccess > static methods are used). I think few issues with upcalls have been > fixed - might be worth to give latest Panama a try. > > I'm assuming the latest build of the main branch 'origin/foreign-jextract' I'm still in the process, for some reason the configure is complaining about the following: checking if libclang should be enabled... no, not found configure: error: Cannot locate libclang! You can download pre-built llvm binary from http://llvm.org/releases/download.html, then specify the location using --with-libclang /Users/cdea/projects/panama/panama-foreign/build/.configure-support/generated-configure.sh: line 84: 5: Bad file descriptor configure exiting with result code 1 > 3. I see a call to PaSleep. Now, while that _shouldn't_ cause issue, I > wonder if putting your thread to sleep in native-land instead of Java > land might cause issues. > > Hmm.. Did you mean a C lang sleep? I changed it to Java land (sleep) and no change. PortAudio library has a function called Pa_Sleep()... > 4. On a very quick look, the pointer arithmetic in the upcall seems fine > > Is there a more elegant way to express this? Thank you!, Carl > That's all I have for now, sorry! > > Cheers > Maurizio > > On 22/12/2021 04:06, carl dea wrote: > > Hello friends of JEP 412, > > > > > > I hope I'm not being too forward, but I would love it if I could get a > > second opinion of my *port* of an example from the folks from the > PortAudio > > C API project using Project Panama's FFI APIs. > > > > > > I created the project called *portaudio4j* to simply port their first > > example called *examples/paex_saw.c*. > > > > https://github.com/carldea/portaudio4j > > > > > > *My version:* > > https://github.com/carldea/portaudio4j/blob/main/src/PaexSaw.java > > > > > > *(Their version) Port Audio C API 's beginner example paex_saw.c is > here:* > > https://github.com/PortAudio/portaudio/blob/master/examples/paex_saw.c > > > > > > > > *The Problem (Issue)* > > > > For some reason the C version (*paex_saw.c*) of the example compared to > the > > Panama example (*PaexSaw.java*) doesn't sound the same. Sometimes it's > too > > loud as if something isn't cleaning up from the prior run. The only > thing > > I've changed afaik is the SAMPLE_RATE, because it's so frighteningly > loud. > > Maybe I'm not properly doing pointer arithmetic. Or something I'm doing > > that is overly expensive (operation wise) when accessing a > > MemoryAddress/MemorySegment. > > > > > > So, I thought I'd reach out to those who might be able to shed some light > > on the issues I'm running into. > > > > > > *Why did I choose this C library?* > > > > -------------------------------- > > > > It is a relatively simple and small example that can exercise most > aspects > > of Panama (downcall, upcall, typedef void variables, handles, pointers, > > structs, etc.) Everyone has a speaker and mic, so it would be a nice way > to > > use the library for all OSes. > > > > > > Of course if there's a way I can pinpoint the cause, I'd be happy to > report > > the bug so we can keep an eye on it. Also, it might be a good example to > > add to Sundar's examples here: > > https://github.com/sundararajana/panama-jextract-samples. > > > > Thank you, Happy holidays! > > > > > > Carl > > > -- *Carl Dea* Principal Software Engineer Email: carldea at gmail.com Website: https://carlfx.wordpress.com Twitter: @carldea