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
8272041: [lworld] CDS heap dump fails with primitive objects #525
8272041: [lworld] CDS heap dump fails with primitive objects #525
Conversation
|
@iklam This change now passes all automated pre-integration checks. 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 no new commits pushed to the
|
Looks good to me.
Just a question by curiosity, using object addresses instead of the identity hash code is likely to change the distribution of keys for the hashtable (all objects being in the same memory area and being aligned on heap words, some bits in their addresses are the same for all objects). Is it going to have a significant impact of the performance of the hashtable or is it negligeable?
Thank you,
Fred
Looks good. I verified with the patch that converts some JDK classes to ref-default primitive class.
Hi Fred, Thanks for the review. I've added code to calculate the stats of the hashtable. The max number of entries per bucket is no more than 3, so I think the distribution is acceptable. Also, the hash function already shifts down by My stats code is in https://github.com/iklam/valhalla/commits/heap-shared-seen-obj-table-stats, but it's not part of this PR. I will clean it up and integrate into jdk/jdk. |
Going to push as commit a8994ba. |
Ioi, Thank you for the additional effort to measure statistics of the hashtable. Fred |
Two simple fixes to handle primitive objects when dumping the CDS heap:
oopDesc::identity_hash()
as the hashcode for this table.oopDesc::identity_hash()
on primitive objects.Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.java.net/valhalla pull/525/head:pull/525
$ git checkout pull/525
Update a local copy of the PR:
$ git checkout pull/525
$ git pull https://git.openjdk.java.net/valhalla pull/525/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 525
View PR using the GUI difftool:
$ git pr show -t 525
Using diff file
Download this PR as a diff file:
https://git.openjdk.java.net/valhalla/pull/525.diff