1 /*
  2  * Copyright (c) 2017, 2018, Red Hat, Inc. All rights reserved.
  3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  4  *
  5  * This code is free software; you can redistribute it and/or modify it
  6  * under the terms of the GNU General Public License version 2 only, as
  7  * published by the Free Software Foundation.
  8  *
  9  * This code is distributed in the hope that it will be useful, but WITHOUT
 10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 12  * version 2 for more details (a copy is included in the LICENSE file that
 13  * accompanied this code).
 14  *
 15  * You should have received a copy of the GNU General Public License version
 16  * 2 along with this work; if not, write to the Free Software Foundation,
 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 
 25 /*
 26  * @test id=passive
 27  * @requires vm.gc.Shenandoah
 28  *
 29  * @run main/othervm -Xmx1g -Xms1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+ShenandoahRegionSampling
 30  *      -XX:+UseShenandoahGC -XX:ShenandoahGCMode=passive
 31  *      -XX:+ShenandoahDegeneratedGC
 32  *      TestRegionSampling
 33  *
 34  * @run main/othervm -Xmx1g -Xms1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+ShenandoahRegionSampling
 35  *      -XX:+UseShenandoahGC -XX:ShenandoahGCMode=passive
 36  *      -XX:-ShenandoahDegeneratedGC
 37  *      TestRegionSampling
 38  */
 39 
 40 /*
 41  * @test id=adaptive
 42  * @requires vm.gc.Shenandoah
 43  *
 44  * @run main/othervm -Xmx1g -Xms1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+ShenandoahRegionSampling
 45  *      -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=adaptive
 46  *      TestRegionSampling
 47  */
 48 
 49 /*
 50  * @test id=static
 51  * @requires vm.gc.Shenandoah
 52  *
 53  * @run main/othervm -Xmx1g -Xms1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+ShenandoahRegionSampling
 54  *      -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=static
 55  *      TestRegionSampling
 56  */
 57 
 58 /*
 59  * @test id=compact
 60  * @requires vm.gc.Shenandoah
 61  *
 62  * @run main/othervm -Xmx1g -Xms1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+ShenandoahRegionSampling
 63  *      -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=compact
 64  *      TestRegionSampling
 65  */
 66 
 67 /*
 68  * @test id=aggressive
 69  * @requires vm.gc.Shenandoah
 70  *
 71  * @run main/othervm -Xmx1g -Xms1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+ShenandoahRegionSampling
 72  *      -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=aggressive
 73  *      TestRegionSampling
 74  */
 75 
 76 /*
 77  * @test id=iu-aggressive
 78  * @requires vm.gc.Shenandoah
 79  *
 80  * @run main/othervm -Xmx1g -Xms1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+ShenandoahRegionSampling
 81  *      -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu -XX:ShenandoahGCHeuristics=aggressive
 82  *      TestRegionSampling
 83  */
 84 
 85 /*
 86  * @test id=iu
 87  * @requires vm.gc.Shenandoah
 88  *
 89  * @run main/othervm -Xmx1g -Xms1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+ShenandoahRegionSampling
 90  *      -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu
 91  *      TestRegionSampling
 92  *
 93  */
 94 
 95 public class TestRegionSampling {
 96 
 97     static final long TARGET_MB = Long.getLong("target", 2_000); // 2 Gb allocation
 98 
 99     static volatile Object sink;
100 
101     public static void main(String[] args) throws Exception {
102         long count = TARGET_MB * 1024 * 1024 / 16;
103         for (long c = 0; c < count; c++) {
104             sink = new Object();
105         }
106     }
107 
108 }