-
Notifications
You must be signed in to change notification settings - Fork 34
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
Workaround CacheDataStore use with source launcher #15
Conversation
👋 Welcome back shade! A progress list of the required criteria for merging this PR into |
❗ This change is not yet ready to be integrated. |
Webrevs
|
We are trying to avoid change Java launcher to check Leyden flags (especially -XX:) if we can do changes in VM. |
Yeah, I understand we don't want to change launcher if we can avoid it. The actual trouble is on CDS side and how This is similar in spirit to what we (used to?) do for JVMCI modules: leyden/src/hotspot/share/runtime/arguments.cpp Lines 1792 to 1801 in cf036d7
|
We can move this check to VM, but it is not convenient to figure our if we are running in |
Lets wait @iklam comment on this. |
I am not sure if Leyden should be targeting running the launcher with a Java source file. There are many things that we could do to make some things run a little faster, but I think we should resist the temptation in this case. |
I think what Leyden targets is a different question. After a day of playing with this, I think enabling source launcher does look very convenient for current performance testing, as it includes javac automatically, without any additional setup. I am not insisting on doing this workaround, it is just a handy development aid. If you all feel strongly against it, I can go the longer and less convenient route to measure CDS perf. |
But you will be adding javac timing to every one of your benchmarks. Is this really what you want? If you want convenience, I think it's better to write a simple/generic script that compiles the Java source into a JAR file and then do it the usual way. |
Yes, it is exactly that: the easiest way for me to target both javac and the app is to add |
No need for this anymore. We can just do javac tests directly. |
I was trying to test the simplest workload that involves javac, and that is source launcher. When I attempt to use source launcher with
-XX:CacheDataStore
, it fails with:Source launcher adds
--add-modules=ALL-DEFAULT
:I think we can work that around specifically for Leyden, and also leave a TODO breadcrumb in the code that we need to figure this out on CDS side. This PR does that workaround. With it, source launcher works with simple examples:
Progress
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/leyden.git pull/15/head:pull/15
$ git checkout pull/15
Update a local copy of the PR:
$ git checkout pull/15
$ git pull https://git.openjdk.org/leyden.git pull/15/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 15
View PR using the GUI difftool:
$ git pr show -t 15
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/leyden/pull/15.diff
Webrev
Link to Webrev Comment