I am just wondering, what are the practical reasons for including two libjvms in the same JDK?

We had server/client VMs in the past so we can use the same JDK for running "throughput" jobs vs "desktop/interactive" jobs. But that's no longer needed with advances in tier compilation, etc.

Thanks
- Ioi

On 2/20/20 10:33 AM, Magnus Ihse Bursie wrote:
20 feb. 2020 kl. 16:13 skrev Bob Vandette <bob.vande...@oracle.com>:

Keep in mind that any change here will have an impact on the jlink option that 
allows for the
selection of JVM.

Jlink Plugin Name: vm
Option: --vm=<client | server | minimal | all>
Description: Select the HotSpot VM in the output image.  Default is all
Good point.

I think if we remove building of multiple JVMs in the same pass, we need to 
instead add an option to “import” additional JVMs. That way, the user can build 
the JVM in a separate configuration, so we can simplify the logic to mean one 
configuration == one JVM variant, and then it would still be possible to create 
a resulting jimage that consists of multiple JVM variants.

/Magnus

Bob.


On Feb 20, 2020, at 10:04 AM, Magnus Ihse Bursie 
<magnus.ihse.bur...@oracle.com> wrote:

On 2020-02-20 12:52, Baesken, Matthias wrote:
run a separate task with "configure --with-jvm-variants=minimal &&
make hotspot".
Hello,   this would , as far as I know, not produce  the same result  jdk  
image  with both  minimal+server  libjvm in the image .
So the proposed change sounds a bit like a  workaround, but  not a real 
replacement to what we have currently .
Well, almost. The resulting minimal/libjvm.so would reside in a different 
directory, and would have to be copied into place. And the jvm.cfg file needs 
to be correspondingly updated. All of this is trivial for you to do in your 
wrapper CI scripts. Just as what Adrian does with zero. The simplicity of that 
solution compared to the logistical nightmare in the make files does not make a 
compelling case for keeping the multi-JVM support.

However if you do that, you *should* get the same result. If not, then it's a 
bug somewhere (and that would really explain why this business of having 
multiple JVMs is hairy!). Give it a try! You can use the compare.sh script to 
verify that the resulting images are equal.

The one thing you need to take care of is making sure that the set of JVM 
features that code outside Hotspot cares about is matching. This is one of the 
thing the current system is trying hard to do (and failing, mostly, in all edge 
cases). E.g., you need to either enable CDS on both the server and the minimal 
build, or disable it on both.

/Magnus
Best Regards, Matthias


On 2020-02-19 16:59, Baesken, Matthias wrote:
Hi Magnus,  yes we do.  We build (on Linux only currently)   "--with-jvm-
variants=minimal,server"   in our central builds to test that  minimal is still
working  and that is was not destroyed by recent changes .
Best Regards, Matthias
Is this just to test that minimal is working? If so, you could just as
well run a separate task with "configure --with-jvm-variants=minimal &&
make hotspot". Unless you are actually shipping this configuration, that
does not seem like a solid reason for keeping this functionality in the
build.

/Magnus

Reply via email to