[9] RFR(XXS): 8009738: compiler/6826736/Test.java times out on big machines

Albert albert.noll at oracle.com
Fri Jan 24 05:50:35 PST 2014


Hi,

could I get reviews for this small patch?

Bug: https://bugs.openjdk.java.net/browse/JDK-8009738
webrev: http://cr.openjdk.java.net/~anoll/8009738/webrev.00/ 
<http://cr.openjdk.java.net/%7Eanoll/8009728/webrev.00/>

Problem: test times out on big machines

Solution: add -Xmx256m -XX:ParallelGCThreads=4 to @run command (as 
described in the bug description).
I verified that the old bug is still triggered with the added flags by 
undoing the
changes (except for asserts) that where committed with 
https://bugs.openjdk.java.net/browse/JDK-6826736 .
The test does not complete, since and fails with an assert:

# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/export/anoll/latest/src/share/vm/compiler/oopMap.cpp:438), pid=24776, tid=140280127788800
#  assert(Universe::heap()->is_in_or_null(*loc)) failed: found non oop pointer

A rough performance evaluation on a 32-core linux (64-bit) system shows 
that the execution time
of the test goes down to ~40 seconds. Without the suggested changes, the 
execution time is around
9 minutes on the same machine.

Best,
Albert

These changes trigger the assert described above:

--- old/src/share/vm/compiler/oopMap.cpp    2014-01-24 
14:46:14.370474128 +0100
+++ new/src/share/vm/compiler/oopMap.cpp    2014-01-24 
14:46:14.302474129 +0100
@@ -392,14 +392,15 @@
            oop *base_loc    = 
fr->oopmapreg_to_location(omv.content_reg(), reg_map);
            oop *derived_loc = loc;
            oop val = *base_loc;
-          if (val == (oop)NULL || Universe::is_narrow_oop_base(val)) {
+          derived_oop_fn(base_loc, derived_loc);
+          /*if (val == (oop)NULL || Universe::is_narrow_oop_base(val)) {
              // Ignore NULL oops and decoded NULL narrow oops which
              // equal to Universe::narrow_oop_base when a narrow oop
              // implicit null check is used in compiled code.
              // The narrow_oop_base could be NULL or be the address
              // of the page below heap depending on compressed oops mode.
            } else
-            derived_oop_fn(base_loc, derived_loc);
+            derived_oop_fn(base_loc, derived_loc);*/
          }
          oms.next();
        }  while (!oms.is_done());
@@ -414,7 +415,7 @@
        oop* loc = fr->oopmapreg_to_location(omv.reg(),reg_map);
        if ( loc != NULL ) {
          if ( omv.type() == OopMapValue::oop_value ) {
-          oop val = *loc;
+         /* oop val = *loc;
            if (val == (oop)NULL || Universe::is_narrow_oop_base(val)) {
              // Ignore NULL oops and decoded NULL narrow oops which
              // equal to Universe::narrow_oop_base when a narrow oop
@@ -422,7 +423,7 @@
              // The narrow_oop_base could be NULL or be the address
              // of the page below heap depending on compressed oops mode.
              continue;
-          }
+          }*/
  #ifdef ASSERT
            if ((((uintptr_t)loc & (sizeof(*loc)-1)) != 0) ||
               !Universe::heap()->is_in_or_null(*loc)) {
--- old/src/share/vm/runtime/stackValue.cpp    2014-01-24 
14:46:14.374474128 +0100
+++ new/src/share/vm/runtime/stackValue.cpp    2014-01-24 
14:46:14.302474129 +0100
@@ -108,7 +108,8 @@
      }
  #endif
      case Location::oop: {
-      oop val = *(oop *)value_addr;
+        Handle h(*(oop *)value_addr); // Wrap a handle around the oop
+      /*oop val = *(oop *)value_addr;
  #ifdef _LP64
        if (Universe::is_narrow_oop_base(val)) {
           // Compiled code may produce decoded oop = narrow_oop_base
@@ -118,7 +119,7 @@
           val = (oop)NULL;
        }
  #endif
-      Handle h(val); // Wrap a handle around the oop
+      Handle h(val); // Wrap a handle around the oop*/
        return new StackValue(h);
      }
      case Location::addr: {
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20140124/d2cee8d5/attachment.html 


More information about the hotspot-compiler-dev mailing list