-
Notifications
You must be signed in to change notification settings - Fork 5.6k
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
8346832: runtime/CompressedOops/CompressedCPUSpecificClassSpaceReservation.java fails on RISC-V #22879
base: master
Are you sure you want to change the base?
Conversation
…ation.java fails on RISC-V
👋 Welcome back fyang! A progress list of the required criteria for merging this PR into |
❗ This change is not yet ready to be integrated. |
@RealFYang 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 /label pull request command. |
/label remove hotspot-compiler |
/label add hotspot-runtime |
@RealFYang |
@RealFYang |
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.
Hi @RealFYang!
Would not removing the zero-based search be simpler then? We would forfeit the search for an area within 4g-32g then, but if I recall correctly, for bases between 4G and 16TB we use addiw + slli. In other words, we don't take advantage of zero base nonzero shift.
If I recall that incorrectly, then you are right, we may just skip searching between 4Gb and 32Gb since we just did that in the zero-based step.
Hi, please review this small change fixing a test failure.
This test first expects
tryReserveForUnscaled
andtryReserveForZeroBased
from the process output. In addition, when test without CDS, it also expectsreserve_between (range [0x0000000800000000-0x0000100000000000)
which is not lower than zero-based limit. But the process output givesreserve_between (range [0x0000000100000000-0x0000100000000000)
, which is not expected.Previously, we have the code handling this case in
CompressedKlassPointers::reserve_address_space_for_compressed_classes
.But I find that the code is gone after JDK-8305895: Implement JEP 450: Compact Object Headers. This is the related change:
It seems to me more reasonable to add the
optimize_for_zero_base check
back and replace theLogKlassAlignmentInBytes
withCompressedKlassPointers::max_shift()
. max_shift() is used inCompressedKlassPointers::reserve_address_space_for_zerobased_encoding
to calculatezerobased_max
as well [1].Testing: same test passes with fastdebug build on linux-riscv64 platform. Tagging @tstuefe
[1] https://github.com/openjdk/jdk/blob/master/src/hotspot/share/oops/compressedKlass.cpp#L201
Progress
Issue
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/22879/head:pull/22879
$ git checkout pull/22879
Update a local copy of the PR:
$ git checkout pull/22879
$ git pull https://git.openjdk.org/jdk.git pull/22879/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 22879
View PR using the GUI difftool:
$ git pr show -t 22879
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/22879.diff
Using Webrev
Link to Webrev Comment