RFC: 8185062: os::is_MP() sometimes returns false

David Holmes david.holmes at oracle.com
Wed Aug 2 04:35:01 UTC 2017


https://bugs.openjdk.java.net/browse/JDK-8185062

Is it time to completely remove runtime optimizations aimed at 
uniprocessor systems ie.

if (os::is_MP()) {
   x();
}

just becomes:

x();

?

Does anyone care about uniprocessor systems _and_ care to the extent 
that the overhead of things only necessary on MP systems (_lock 
prefixes, explicit atomic instructions, memory barriers) would be a problem?

As outlined in the "bug" report there are three basic options:

1. Switch AssumeMP to be true by default (arguably necessary regardless 
due to dynamic container environments)

2. Allow non-MP support to be built, but by default only build MP 
support ie no runtime means to disable MP support, and compile-time 
MP_ONLY/NOT_MP macros.

3. Assume the universe is MP and only allow MP to be built

Cheers,
David
-----


More information about the hotspot-dev mailing list