-
Notifications
You must be signed in to change notification settings - Fork 5.8k
8299915: Remove ArrayAllocatorMallocLimit and associated code #15859
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
Conversation
👋 Welcome back azafari! A progress list of the required criteria for merging this PR into |
@afshin-zafari The following labels 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 lists. If you would like to change these labels, use the /label pull request command. |
Webrevs
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Functional removal of code looks good, but some of the test changes need to be changed.
Thanks.
// Test a non-manageable size_t flag. | ||
// Since it is not manageable, we can't test the setFlag functionality. | ||
testGetFlag("ArrayAllocatorMallocLimit", "128"); | ||
// testSetFlag("ArrayAllocatorMallocLimit", "64", "128"); | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You need to replace this with another non-manageable size_t flag so that code coverage is maintained.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This test also should not be removed but changed to use a different size_t flag so that the WB functionality continues to be tested for a flag of this type.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed.
@@ -57,6 +57,10 @@ public static void main(String... args) throws Exception { | |||
testGetFlag("MaxHeapFreeRatio", "60"); | |||
testSetFlag("MaxHeapFreeRatio", "50", "60"); | |||
|
|||
// Test a non-manageable size_t flag. | |||
// Since it is not manageable, we can't test the setFlag functionality. | |||
testGetFlag("StringDeduplicationCleanupDeadMinimum", "128"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A non-experimental flag, like MetaspaceSize, might be better long term in case the experimental flag get removed again.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When MetaspaceSize
is set to 0, following assertion raised at metaspace.cpp: 316
size_t MetaspaceGC::capacity_until_GC() {
size_t value = Atomic::load_acquire(&_capacity_until_GC);
assert(value >= MetaspaceSize, "Not initialized properly?"); // <-----
return value;
}
LargePageSizeInBytes
is used instead.
@@ -35,7 +35,7 @@ | |||
import jdk.test.lib.Platform; | |||
|
|||
public class SizeTTest { | |||
private static final String FLAG_NAME = "ArrayAllocatorMallocLimit"; | |||
private static final String FLAG_NAME = "StringDeduplicationCleanupDeadMinimum"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Again a non-experimental flag, like MetaspaceSize, might be better here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
MetaspaceSize
is used with its lower bound 65536. Otherwise, the test fails.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for test changes. Seems fine. Thanks.
@afshin-zafari This change now passes all automated pre-integration checks. ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details. After integration, the commit message for the final commit will be:
You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed. At the time when this comment was updated there had been 117 new 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 this automatic rebasing, please check the documentation for the /integrate command for further details. ➡️ To integrate this PR with the above commit message to the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks good to me.
Thank you @coleenp and @dholmes-ora for your reviews. |
Going to push as commit 45a145e.
Your commit was automatically rebased without conflicts. |
@afshin-zafari Pushed as commit 45a145e. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
ArrayAllocatorMallocLimit
is removed. The test cases that tested it also are removed.AllocArrayAllocator
instances are replaced withMallocArrayAllocator
.CHeapBitMap::free(ptr, size)
is kept as it is, since it is called in this way fromGrowableBitMap<T>::resize
, whereT
can be alsoArenaBitMap
andResourceBitMap
. However, it usesMallocArrayAllocator::free(ptr)
and ignores thesize
:Test
tiers1-4 passed on all platforms.
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/15859/head:pull/15859
$ git checkout pull/15859
Update a local copy of the PR:
$ git checkout pull/15859
$ git pull https://git.openjdk.org/jdk.git pull/15859/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 15859
View PR using the GUI difftool:
$ git pr show -t 15859
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/15859.diff
Webrev
Link to Webrev Comment