[10] RFR(S): 8185572: Enable AssumeMP by default on SPARC machines

Poonam Parhar poonam.bajaj at oracle.com
Thu Aug 10 13:26:21 UTC 2017


Please review this simple patch:

Bug:  HYPERLINK "https://bugs.openjdk.java.net/browse/JDK-8185572" JDK-8185572: Enable AssumeMP by default on SPARC machines
Webrev: http://cr.openjdk.java.net/~poonam/8185572/webrev.00/

This change enables AssumeMP by default on SPARC machines. On Sparc T7, to finalize BIS instructions the server compiler needs to add a 'membar' instruction at the end. But the generation of 'membar' is guarded by os::is_MP(), and os::is_MP() returns false when there is a single cpu available on the system. Now, in virtualized/container environments, the number of processors allocated to a virtual machine can dynamically change during the application runtime. That could lead to incorrect generation of BIS instructions and can cause JVM crashes. Enabling AssumeMP makes is_MP() always return true on SPARC systems.

In future, we may consider making generation of 'membar ' unconditional with the enhancement request:  HYPERLINK "https://bugs.openjdk.java.net/browse/JDK-8150715" \o "Use new BIS algorithm for arraycopy on M7 SPARC" JDK-8150715.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20170810/de25efea/attachment.html>

More information about the hotspot-compiler-dev mailing list