Re: Is anyone still building multiple JVMs?

2020-02-21 Thread Baesken, Matthias
Hello,   in the combination minimal+server ,   you can jlink   smaller  target 
images using  "minimal"  because of the much smaller libjvm.so .
Just an example , target image size is sometimes important too .

Best regards, Matthias


> 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
>


Re: Is anyone still building multiple JVMs?

2020-02-20 Thread Ioi Lam
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 :

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=
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 
 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




Re: Is anyone still building multiple JVMs?

2020-02-20 Thread Magnus Ihse Bursie


> 20 feb. 2020 kl. 16:13 skrev Bob Vandette :
> 
> 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=
> 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 
>>  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
>> 
> 



Re: Is anyone still building multiple JVMs?

2020-02-20 Thread Bob Vandette
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=
Description: Select the HotSpot VM in the output image.  Default is all

Bob.


> On Feb 20, 2020, at 10:04 AM, Magnus Ihse Bursie 
>  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
> 



Re: Is anyone still building multiple JVMs?

2020-02-20 Thread Magnus Ihse Bursie

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




RE: Is anyone still building multiple JVMs?

2020-02-20 Thread Baesken, Matthias
> 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 .

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



Re: Is anyone still building multiple JVMs?

2020-02-20 Thread Magnus Ihse Bursie

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




Message: 2
Date: Wed, 19 Feb 2020 13:26:35 +0100
From: Magnus Ihse Bursie 
To: build-dev@openjdk.java.net
Subject: Is anyone still building multiple JVMs?
Message-ID: <3916a515-d67f-4f20-b149-a50408e13...@oracle.com>
Content-Type: text/plain;   charset=utf-8

Are there still any realistic scenarios where anyone builds multiple variants of
Hotspot in the same configuration?

This was basically introduced for 32-bit builds, where both the server and the
client variant of Hotspot were built. In Oracle at least, we stopped building
multiple JVM variants a long time ago.

Since the build system is taxed with convoluted logic in places just to support
this, I?d prefer to remove it if it is not used anymore. So, is there anyone out
there, still doing this?

/Magnus





Re: Is anyone still building multiple JVMs?

2020-02-20 Thread John Paul Adrian Glaubitz
On 2/20/20 9:32 AM, Magnus Ihse Bursie wrote:
>>> I think we should also ask -- is anyone actually shipping a JDK build with 
>>> multiple libjvm variants in it?
>> Debian and therefore Ubuntu always build and ship both Hotspot and Zero on
>> every architecture which supports both [1].
> But that is not supported by the build system -- if you build zero, you 
> cannot build any other JVM at the
> same time! So if you ship this, you must build them separately and then in a 
> post-processing step copy them
> together and modify jvm.cfg, right?
Yeah, I think those are separate builds running each their own configure run 
[1].

Adrian

> [1] 
> https://git.launchpad.net/~openjdk/ubuntu/+source/openjdk/+git/openjdk/tree/debian/rules

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaub...@debian.org
`. `'   Freie Universitaet Berlin - glaub...@physik.fu-berlin.de
  `-GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913


Re: Is anyone still building multiple JVMs?

2020-02-20 Thread Magnus Ihse Bursie

On 2020-02-20 09:28, John Paul Adrian Glaubitz wrote:

On 2/20/20 9:24 AM, Ioi Lam wrote:

I think we should also ask -- is anyone actually shipping a JDK build with 
multiple libjvm variants in it?

Debian and therefore Ubuntu always build and ship both Hotspot and Zero on
every architecture which supports both [1].
But that is not supported by the build system -- if you build zero, you 
cannot build any other JVM at the same time! So if you ship this, you 
must build them separately and then in a post-processing step copy them 
together and modify jvm.cfg, right?


/Magnus


Adrian


[1] https://packages.debian.org/source/sid/openjdk-14




Re: Is anyone still building multiple JVMs?

2020-02-20 Thread John Paul Adrian Glaubitz
On 2/20/20 9:24 AM, Ioi Lam wrote:
> I think we should also ask -- is anyone actually shipping a JDK build with 
> multiple libjvm variants in it?
Debian and therefore Ubuntu always build and ship both Hotspot and Zero on
every architecture which supports both [1].

Adrian

> [1] https://packages.debian.org/source/sid/openjdk-14

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaub...@debian.org
`. `'   Freie Universitaet Berlin - glaub...@physik.fu-berlin.de
  `-GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913


Re: Is anyone still building multiple JVMs?

2020-02-20 Thread Ioi Lam
I think we should also ask -- is anyone actually shipping a JDK build 
with multiple libjvm variants in it?


I guess people may be building multiple variants during testing just 
because it's convenient (and requires less time), but if this is the 
only reason, then it doesn't seem to be worth the complexity in the 
build system.


(I think are also logics in jlink that are needed to support multiple 
variants, so those can also be simplified).


Thanks
- Ioi

On 2/19/20 4:26 AM, Magnus Ihse Bursie wrote:

Are there still any realistic scenarios where anyone builds multiple variants 
of Hotspot in the same configuration?

This was basically introduced for 32-bit builds, where both the server and the 
client variant of Hotspot were built. In Oracle at least, we stopped building 
multiple JVM variants a long time ago.

Since the build system is taxed with convoluted logic in places just to support 
this, I’d prefer to remove it if it is not used anymore. So, is there anyone 
out there, still doing this?

/Magnus




RE: Is anyone still building multiple JVMs?

2020-02-19 Thread Baesken, Matthias
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


> 
> Message: 2
> Date: Wed, 19 Feb 2020 13:26:35 +0100
> From: Magnus Ihse Bursie 
> To: build-dev@openjdk.java.net
> Subject: Is anyone still building multiple JVMs?
> Message-ID: <3916a515-d67f-4f20-b149-a50408e13...@oracle.com>
> Content-Type: text/plain; charset=utf-8
> 
> Are there still any realistic scenarios where anyone builds multiple variants 
> of
> Hotspot in the same configuration?
> 
> This was basically introduced for 32-bit builds, where both the server and the
> client variant of Hotspot were built. In Oracle at least, we stopped building
> multiple JVM variants a long time ago.
> 
> Since the build system is taxed with convoluted logic in places just to 
> support
> this, I?d prefer to remove it if it is not used anymore. So, is there anyone 
> out
> there, still doing this?
> 
> /Magnus
> 



Re: Is anyone still building multiple JVMs?

2020-02-19 Thread Aleksey Shipilev
On 2/19/20 1:26 PM, Magnus Ihse Bursie wrote:
> Are there still any realistic scenarios where anyone builds multiple variants 
> of Hotspot in the
> same configuration?
> 
> This was basically introduced for 32-bit builds, where both the server and 
> the client variant of
> Hotspot were built. In Oracle at least, we stopped building multiple JVM 
> variants a long time
> ago.
> 
> Since the build system is taxed with convoluted logic in places just to 
> support this, I’d prefer
> to remove it if it is not used anymore. So, is there anyone out there, still 
> doing this?

My CI builds multiple variants, but in their own separate configurations:
  https://builds.shipilev.net/openjdk-jdk/configure-logs/

As long as --with-jvm-variants=... accepts a single variant, I am good. It is 
probably
--with-jvm-variant=... then, a minor nuisance to fix in build configs.

-- 
Thanks,
-Aleksey