< prev index next >

test/hotspot/jtreg/gc/TestHumongousReferenceObject.java

Print this page
rev 53507 : Fix shared tests to run without Shenandoah


  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  */
  23 
  24 import jdk.internal.vm.annotation.Contended;
  25 
  26 /*
  27  * @test
  28  * @summary Test that verifies that iteration over large, plain Java objects, that potentially cross region boundaries on G1, with references in them works.
  29  * @requires vm.gc == "null"
  30  * @bug 8151499 8153734
  31  * @modules java.base/jdk.internal.vm.annotation
  32  * @run main/othervm -XX:+EnableContended -XX:-RestrictContended -Xmx128m -XX:+UseParallelGC -XX:ContendedPaddingWidth=8192 TestHumongousReferenceObject
  33  * @run main/othervm -XX:+EnableContended -XX:-RestrictContended -Xmx128m -XX:+UseG1GC -XX:G1HeapRegionSize=1M -XX:ContendedPaddingWidth=8192 TestHumongousReferenceObject
  34  * @run main/othervm -XX:+EnableContended -XX:-RestrictContended -Xmx128m -XX:+UseG1GC -XX:G1HeapRegionSize=2M -XX:ContendedPaddingWidth=8192 TestHumongousReferenceObject
  35  * @run main/othervm -XX:+EnableContended -XX:-RestrictContended -Xmx128m -XX:+UseG1GC -XX:G1HeapRegionSize=4M -XX:ContendedPaddingWidth=8192 TestHumongousReferenceObject
  36  * @run main/othervm -XX:+EnableContended -XX:-RestrictContended -Xmx128m -XX:+UseG1GC -XX:G1HeapRegionSize=8M -XX:ContendedPaddingWidth=8192 TestHumongousReferenceObject








  37  * @run main/othervm -XX:+EnableContended -XX:-RestrictContended -Xmx128m -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:ShenandoahHeapRegionSize=8M -XX:ContendedPaddingWidth=8192 TestHumongousReferenceObject
  38  * @run main/othervm -XX:+EnableContended -XX:-RestrictContended -Xmx128m -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:ShenandoahHeapRegionSize=8M -XX:ContendedPaddingWidth=8192 -XX:+UnlockDiagnosticVMOptions -XX:+ShenandoahVerify TestHumongousReferenceObject
  39  */
  40 public class TestHumongousReferenceObject {
  41 
  42     /*
  43       Due to 300 fields with 8K @Contended padding around each field, it takes 2.4M bytes per instance.
  44       With small G1 regions, it is bound to cross regions. G1 should properly (card) mark the object nevertheless.
  45       With 128M heap, it is enough to allocate ~100 of these objects to provoke at least one GC.
  46      */
  47 
  48     static volatile Object instance;
  49 
  50     public static void main(String[] args) {
  51         for (int c = 0; c < 100; c++) {
  52             instance = new TestHumongousReferenceObject();
  53         }
  54     }
  55 
  56     @Contended Integer int_1 = new Integer(1);




  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  */
  23 
  24 import jdk.internal.vm.annotation.Contended;
  25 
  26 /*
  27  * @test
  28  * @summary Test that verifies that iteration over large, plain Java objects, that potentially cross region boundaries on G1, with references in them works.
  29  * @requires vm.gc == "null"
  30  * @bug 8151499 8153734
  31  * @modules java.base/jdk.internal.vm.annotation
  32  * @run main/othervm -XX:+EnableContended -XX:-RestrictContended -Xmx128m -XX:+UseParallelGC -XX:ContendedPaddingWidth=8192 TestHumongousReferenceObject
  33  * @run main/othervm -XX:+EnableContended -XX:-RestrictContended -Xmx128m -XX:+UseG1GC -XX:G1HeapRegionSize=1M -XX:ContendedPaddingWidth=8192 TestHumongousReferenceObject
  34  * @run main/othervm -XX:+EnableContended -XX:-RestrictContended -Xmx128m -XX:+UseG1GC -XX:G1HeapRegionSize=2M -XX:ContendedPaddingWidth=8192 TestHumongousReferenceObject
  35  * @run main/othervm -XX:+EnableContended -XX:-RestrictContended -Xmx128m -XX:+UseG1GC -XX:G1HeapRegionSize=4M -XX:ContendedPaddingWidth=8192 TestHumongousReferenceObject
  36  * @run main/othervm -XX:+EnableContended -XX:-RestrictContended -Xmx128m -XX:+UseG1GC -XX:G1HeapRegionSize=8M -XX:ContendedPaddingWidth=8192 TestHumongousReferenceObject
  37  */
  38 
  39 /*
  40  * @test TestHumongousReferenceObjectShenandoah
  41  * @summary Test that verifies that iteration over large, plain Java objects, that potentially cross region boundaries, with references in them works.
  42  * @requires vm.gc.Shenandoah
  43  * @bug 8151499 8153734
  44  * @modules java.base/jdk.internal.vm.annotation
  45  * @run main/othervm -XX:+EnableContended -XX:-RestrictContended -Xmx128m -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:ShenandoahHeapRegionSize=8M -XX:ContendedPaddingWidth=8192 TestHumongousReferenceObject
  46  * @run main/othervm -XX:+EnableContended -XX:-RestrictContended -Xmx128m -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:ShenandoahHeapRegionSize=8M -XX:ContendedPaddingWidth=8192 -XX:+UnlockDiagnosticVMOptions -XX:+ShenandoahVerify TestHumongousReferenceObject
  47  */
  48 public class TestHumongousReferenceObject {
  49 
  50     /*
  51       Due to 300 fields with 8K @Contended padding around each field, it takes 2.4M bytes per instance.
  52       With small G1 regions, it is bound to cross regions. G1 should properly (card) mark the object nevertheless.
  53       With 128M heap, it is enough to allocate ~100 of these objects to provoke at least one GC.
  54      */
  55 
  56     static volatile Object instance;
  57 
  58     public static void main(String[] args) {
  59         for (int c = 0; c < 100; c++) {
  60             instance = new TestHumongousReferenceObject();
  61         }
  62     }
  63 
  64     @Contended Integer int_1 = new Integer(1);


< prev index next >