New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
8252543: [JVMCI] Libgraal can deadlock in blocking compilation mode #35
Conversation
👋 Welcome back dnsimon! A progress list of the required criteria for merging this PR into |
@dougxc The following label will be automatically applied to this pull request: When this pull request is ready to be reviewed, an RFR email will be sent to the corresponding mailing list. If you would like to change these labels, use the |
Webrevs
|
… blocking JVMCI compilation
/reviewer add vnkozlov |
Looks good. |
@dougxc This change now passes all automated pre-integration checks. In addition to the automated checks, the change must also fulfill all project specific requirements After integration, the commit message will be:
Since the source branch of this PR was last updated there have been 35 commits pushed to the
As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid automatic rebasing, please merge ➡️ To integrate this PR with the above commit message to the |
/integrate |
@dougxc Since your change was applied there have been 35 commits pushed to the
Your commit was automatically rebased without conflicts. Pushed as commit 998ce78. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
* Add List combining methods to ClassEntry jdk.classfile.ClassEntry and java.lang.constant.ClassDesc are two ways of describing similar data. Often when working with Attributes, we need to create lists that combine ClassEntrys and ClassDescs into a single list This PR adds support working with such lists by adding 4 static methods to ClassEntry: * List<CE> adding(List<CE> base, List<CE> additions) * List<CE> adding(List<CE> base, CE... additions) * List<CE> addingSymbols(List<CE> base, List<CD> additions) * List<CE> addingSymbols(List<CE> base, CD...additions) This methods convert from CD to CE to create a combined List<CE>. The methods are null-hostile in the "additions" but do not check for nulls in the "base" List. The returned List is mutable so these methods can be common building blocks for composing with other CE entries. A test has been added that validates the existing behaviours. * Return immutable lists rather than mutable ones. A side-effect of this change is that the `base` List is now null-hostile as well as the List.copyOf on the comination is null-hostile. * Implement `List<CE> deduplicate(List<CE>)` This allows users to add to a list without worrying about the existing contents and in cases where they wish to apply a "no duplicates" invariant, they can deduplicate the List * Implement missing ConcreteEntry equals() methods * Basic deduplicate() test
* Add List combining methods to ClassEntry jdk.classfile.ClassEntry and java.lang.constant.ClassDesc are two ways of describing similar data. Often when working with Attributes, we need to create lists that combine ClassEntrys and ClassDescs into a single list This PR adds support working with such lists by adding 4 static methods to ClassEntry: * List<CE> adding(List<CE> base, List<CE> additions) * List<CE> adding(List<CE> base, CE... additions) * List<CE> addingSymbols(List<CE> base, List<CD> additions) * List<CE> addingSymbols(List<CE> base, CD...additions) This methods convert from CD to CE to create a combined List<CE>. The methods are null-hostile in the "additions" but do not check for nulls in the "base" List. The returned List is mutable so these methods can be common building blocks for composing with other CE entries. A test has been added that validates the existing behaviours. * Return immutable lists rather than mutable ones. A side-effect of this change is that the `base` List is now null-hostile as well as the List.copyOf on the comination is null-hostile. * Implement `List<CE> deduplicate(List<CE>)` This allows users to add to a list without worrying about the existing contents and in cases where they wish to apply a "no duplicates" invariant, they can deduplicate the List * Implement missing ConcreteEntry equals() methods * Basic deduplicate() test
To prevent a deadlock in libgraal under
-Xcomp
or-Xbatch
due to a lock being held in libgraal, a new mechanism is added by this change that allow JVMCI compiler threads to communicate their "progress" to HotSpot:Progress
Issue
Reviewers
Download
$ git fetch https://git.openjdk.java.net/jdk pull/35/head:pull/35
$ git checkout pull/35