RFR: JDK-8202384: Introduce altserver jvm variant with (original) (raw)

Baesken, Matthias matthias.baesken at sap.com
Wed Jun 6 07:59:56 UTC 2018


Thanks for the clarification !

From: Erik Joelsson [mailto:erik.joelsson at oracle.com] Sent: Dienstag, 5. Juni 2018 17:51 To: Baesken, Matthias <matthias.baesken at sap.com>; 'hotspot-dev at openjdk.java.net' <hotspot-dev at openjdk.java.net>; 'build-dev at openjdk.java.net' <build-dev at openjdk.java.net> Cc: Zeller, Arno <arno.zeller at sap.com> Subject: Re: RFR: JDK-8202384: Introduce altserver jvm variant with

Hello Matthias,

For GCC, you need 7.3.0 or later. For Microsoft you need VS2017 and I think some minimal update version (the option is called -Qspectre), we use 15.5.5.

I was not involved in the benchmarking so I don't know any details there, only the conclusion.

/Erik

On 2018-06-05 01:30, Baesken, Matthias wrote:

Hi Erik , is there some info available about the performance impact when disabling disabling speculative execution ?

And which compiler versions are needed for this ?

Best regards, Matthias

We need to add compilation flags for disabling speculative execution to

our native libraries and executables. In order to allow for users not

affected by problems with speculative execution to run a JVM at full

speed, we need to be able to ship two JVM libraries - one that is

compiled with speculative execution enabled, and one that is compiled

without. Note that this applies to the build time C++ flags, not the

compiler in the JVM itself. Luckily adding these flags to the rest of

the native libraries did not have a significant performance impact so

there is no need for making it optional there.

This patch defines flags for disabling speculative execution for GCC and

Visual Studio and applies them to all binaries except libjvm when

available in the compiler. It defines a new jvm feature

no-speculative-cti, which is used to control whether to use the flags

for libjvm. It also defines a new jvm variant "altserver" which is the

same as server, but with this new feature added.

For Oracle builds, we are changing the default for linux-x64 and

windows-x64 to build both server and altserver, giving the choice to the

user which JVM they want to use. If others would prefer this default, we

could make it default in configure as well.

The change in GensrcJFR.gmk fixes a newly introduced race that appears

when building multiple jvm variants.

Bug: https://bugs.openjdk.java.net/browse/JDK-8202384

Webrev: http://cr.openjdk.java.net/~erikj/8202384/webrev.01<http://cr.openjdk.java.net/%7Eerikj/8202384/webrev.01>



More information about the build-dev mailing list