diff -r b55756ea22d8 -r cc5c5ad8dd1c src/share/vm/runtime/arguments.cpp --- a/src/share/vm/runtime/arguments.cpp Fri Aug 11 23:51:07 2017 -0400 +++ b/src/share/vm/runtime/arguments.cpp Tue Aug 15 14:03:52 2017 +0000 @@ -4056,6 +4056,16 @@ set_shared_spaces_flags(); +#if defined(SPARC) + // BIS instructions require 'membar' instruction regardless of the number + // of CPUs because in virtualized/container environments which might use only 1 + // CPU, BIS instructions may produce incorrect results. + + if (FLAG_IS_DEFAULT(AssumeMP)) { + FLAG_SET_DEFAULT(AssumeMP, true); + } +#endif + // Check the GC selections again. if (!check_gc_consistency()) { return JNI_EINVAL;