-
Notifications
You must be signed in to change notification settings - Fork 6.1k
8360000: RISC-V: implement aot #26101
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
base: master
Are you sure you want to change the base?
Conversation
👋 Welcome back mli! A progress list of the required criteria for merging this PR into |
❗ This change is not yet ready to be integrated. |
|
@Hamlin-Li 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. |
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.
Hi, Thanks for working on enabling this feature.
illegal_instruction(Assembler::csr::time); | ||
emit_int64((uintptr_t)msg); | ||
emit_int64((uintptr_t)str); |
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.
I noticed that our aarch64 counterpart puts the address of msg into r0
in #24740.
// load msg into r0 so we can access it from the signal handler
// ExternalAddress enables saving and restoring via the code cache
lea(c_rarg0, ExternalAddress((address) str));
And fetches the address from r0
in PosixSignals::pd_hotspot_signal_handler
:
// A pointer to the message will have been placed in `r0`
const char *detail_msg = (const char *)(uc->uc_mcontext.regs[0]);
I am not sure but I guess this is needed for the correct working of aot? Maybe we should do similar things.
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.
My test shows that it's fine to keep the current way to pass the stop message to sig handler, in both dump and use time. Seems currently both ways work.
But to keep the consistency with other platforms, I'll change it too.
Hi,
Can you help to review this patch?
https://openjdk.org/jeps/483 introduced aot (class loading/linking) and subsequent prs introduced more features related to it, like preserve adapters(c2i/i2c) and runtime blobs in AOT code cache.
Riscv should support these features and resolve relative issues.
Test
jtreg
run tier1/2/3 and hotspot_cds tests, no new failure found compared to master jdk.
Performance
perf command to run the simplest Hello world java program:
perf data:
Thanks
Progress
Issue
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/26101/head:pull/26101
$ git checkout pull/26101
Update a local copy of the PR:
$ git checkout pull/26101
$ git pull https://git.openjdk.org/jdk.git pull/26101/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 26101
View PR using the GUI difftool:
$ git pr show -t 26101
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/26101.diff
Using Webrev
Link to Webrev Comment