United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6656922 JIT compiler error on Itanium
JDK-6656922 : JIT compiler error on Itanium

Details
Type:
Bug
Submit Date:
2008-01-30
Status:
Resolved
Updated Date:
2011-03-08
Project Name:
JDK
Resolved Date:
2008-08-11
Component:
hotspot
OS:
linux
Sub-Component:
compiler
CPU:
itanium
Priority:
P2
Resolution:
Fixed
Affected Versions:
1.4.2
Fixed Versions:
1.4.2_18-rev (b10)

Related Reports
Backport:

Sub Tasks

Description
Running the attached program on an IA64 multiprocessor machine sometimes lead to problems because of the weak memory model of Itanium.       
                                                                              
This means, that an object could become visible before its initialization is ready. In that case running 'ReleaseNewObjectBug' writes the message:
Test failed! Object release visible before initialization (use st8.rel on IA64)!                                                                    
This could cause severe problems up to JVM crashes. Please correct this problem in 1.4.2.

                                    

Comments
SUGGESTED FIX

--- src/share/vm/opto/graphKit.cpp_orig Thu Mar  6 12:35:09 2008
+++ src/share/vm/opto/graphKit.cpp  Thu Mar  6 12:37:48 2008
@@ -2240,6 +2240,11 @@
   set_control( result_region     );
   set_i_o    ( result_phi_i_o    );

+#ifdef IA64
+  // Add membar to ensure publication of initialization
+    insert_mem_bar( new MemBarReleaseNode() );
+#endif 
+
   // Cast raw oop to the real thing
   Node *newoop = _gvn.transform( new (2) CheckCastPPNode( result_region, result
                                     
2008-03-05
EVALUATION

IA64 requires ordered store/load because of weak emory model of IA64
                                     
2008-05-22



Hardware and Software, Engineered to Work Together