1 /*
   2  * Copyright (c) 2016, 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 package gc.stress.gcbasher;
  26 
  27 import java.io.IOException;
  28 
  29 /*
  30  * @test TestGCBasherWithShenandoah
  31  * @key stress
  32  * @library /
  33  * @requires vm.gc.Shenandoah & !vm.graal.enabled
  34  * @requires vm.flavor == "server" & !vm.emulatedClient & !vm.graal.enabled
  35  * @summary Stress the Shenandoah GC by trying to make old objects more likely to be garbage than young objects.
  36  *
  37  * @run main/othervm/timeout=200 -Xlog:gc*=info -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
  38  *      -XX:+UseShenandoahGC -XX:ShenandoahGCMode=passive
  39  *      -XX:+ShenandoahVerify -XX:+ShenandoahDegeneratedGC
  40  *      gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
  41  *
  42  * @run main/othervm/timeout=200 -Xlog:gc*=info -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
  43  *      -XX:+UseShenandoahGC -XX:ShenandoahGCMode=passive
  44  *      -XX:+ShenandoahVerify -XX:-ShenandoahDegeneratedGC
  45  *      gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
  46  */
  47 
  48 /*
  49  * @test TestGCBasherWithShenandoah
  50  * @key stress
  51  * @library /
  52  * @requires vm.gc.Shenandoah & !vm.graal.enabled
  53  * @requires vm.flavor == "server" & !vm.emulatedClient & !vm.graal.enabled
  54  * @summary Stress the Shenandoah GC by trying to make old objects more likely to be garbage than young objects.
  55  *
  56  * @run main/othervm/timeout=200 -Xlog:gc*=info -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
  57  *      -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=aggressive
  58  *      -XX:+ShenandoahOOMDuringEvacALot
  59  *      gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
  60  *
  61  * @run main/othervm/timeout=200 -Xlog:gc*=info -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
  62  *      -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=aggressive
  63  *      -XX:+ShenandoahAllocFailureALot
  64  *      gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
  65  *
  66  * @run main/othervm/timeout=200 -Xlog:gc*=info -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
  67  *      -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=aggressive
  68  *      gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
  69  */
  70 
  71 /*
  72  * @test TestGCBasherWithShenandoah
  73  * @key stress
  74  * @library /
  75  * @requires vm.gc.Shenandoah & !vm.graal.enabled
  76  * @requires vm.flavor == "server" & !vm.emulatedClient & !vm.graal.enabled
  77  * @summary Stress the Shenandoah GC by trying to make old objects more likely to be garbage than young objects.
  78  *
  79  * @run main/othervm/timeout=200 -Xlog:gc*=info -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
  80  *      -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=adaptive
  81  *      -XX:+ShenandoahVerify
  82  *      gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
  83  *
  84  * @run main/othervm/timeout=200 -Xlog:gc*=info -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
  85  *      -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=adaptive
  86  *      gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
  87  *
  88  * @run main/othervm/timeout=200 -Xlog:gc*=info -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
  89  *      -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=compact
  90  *      gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
  91  */
  92 
  93 /*
  94  * @test TestGCBasherWithShenandoah
  95  * @key stress
  96  * @library /
  97  * @requires vm.gc.Shenandoah & !vm.graal.enabled
  98  * @requires vm.flavor == "server" & !vm.emulatedClient & !vm.graal.enabled
  99  * @summary Stress the Shenandoah GC by trying to make old objects more likely to be garbage than young objects.
 100  *
 101  * @run main/othervm/timeout=200 -Xlog:gc*=info -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
 102  *      -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu -XX:ShenandoahGCHeuristics=aggressive
 103  *      -XX:+ShenandoahOOMDuringEvacALot
 104  *      gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
 105  *
 106  * @run main/othervm/timeout=200 -Xlog:gc*=info -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
 107  *      -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu -XX:ShenandoahGCHeuristics=aggressive
 108  *      -XX:+ShenandoahAllocFailureALot
 109  *      gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
 110  *
 111  * @run main/othervm/timeout=200 -Xlog:gc*=info -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
 112  *      -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu -XX:ShenandoahGCHeuristics=aggressive
 113  *      gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
 114  */
 115 
 116 /*
 117  * @test TestGCBasherWithShenandoah
 118  * @key stress
 119  * @library /
 120  * @requires vm.gc.Shenandoah & !vm.graal.enabled
 121  * @requires vm.flavor == "server" & !vm.emulatedClient & !vm.graal.enabled
 122  * @summary Stress the Shenandoah GC by trying to make old objects more likely to be garbage than young objects.
 123  *
 124  * @run main/othervm/timeout=200 -Xlog:gc*=info -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
 125  *      -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu
 126  *      -XX:+ShenandoahVerify
 127  *      gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
 128  *
 129  * @run main/othervm/timeout=200 -Xlog:gc*=info -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
 130  *      -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu
 131  *      gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
 132  */
 133 
 134 /*
 135  * @test TestGCBasherDeoptWithShenandoah
 136  * @key stress
 137  * @library /
 138  * @requires vm.gc.Shenandoah
 139  * @requires vm.flavor == "server" & !vm.emulatedClient & !vm.graal.enabled & vm.opt.ClassUnloading != false
 140  * @summary Stress Shenandoah GC with nmethod barrier forced deoptimization enabled.
 141  *
 142  * @run main/othervm/timeout=200 -Xlog:gc*=info,nmethod+barrier=trace -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
 143  *      -XX:+UseShenandoahGC -XX:ShenandoahGCMode=passive
 144  *      -XX:+DeoptimizeNMethodBarriersALot -XX:-Inline
 145  *      -XX:+ShenandoahVerify -XX:+ShenandoahDegeneratedGC
 146  *      gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
 147  *
 148  * @run main/othervm/timeout=200 -Xlog:gc*=info,nmethod+barrier=trace -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
 149  *      -XX:+UseShenandoahGC -XX:ShenandoahGCMode=passive
 150  *      -XX:+DeoptimizeNMethodBarriersALot -XX:-Inline
 151  *      -XX:+ShenandoahVerify -XX:-ShenandoahDegeneratedGC
 152  *      gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
 153  */
 154 
 155 /*
 156  * @test TestGCBasherDeoptWithShenandoah
 157  * @key stress
 158  * @library /
 159  * @requires vm.gc.Shenandoah
 160  * @requires vm.flavor == "server" & !vm.emulatedClient & !vm.graal.enabled & vm.opt.ClassUnloading != false
 161  * @summary Stress Shenandoah GC with nmethod barrier forced deoptimization enabled.
 162  *
 163  * @run main/othervm/timeout=200 -Xlog:gc*=info,nmethod+barrier=trace -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
 164  *      -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=aggressive
 165  *      -XX:+DeoptimizeNMethodBarriersALot -XX:-Inline
 166  *      -XX:+ShenandoahOOMDuringEvacALot
 167  *      gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
 168  *
 169  * @run main/othervm/timeout=200 -Xlog:gc*=info,nmethod+barrier=trace -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
 170  *      -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=aggressive
 171  *      -XX:+DeoptimizeNMethodBarriersALot -XX:-Inline
 172  *      -XX:+ShenandoahAllocFailureALot
 173  *      gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
 174  *
 175  * @run main/othervm/timeout=200 -Xlog:gc*=info,nmethod+barrier=trace -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
 176  *      -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=aggressive
 177  *      -XX:+DeoptimizeNMethodBarriersALot -XX:-Inline
 178  *      gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
 179  */
 180 
 181 /*
 182  * @test TestGCBasherDeoptWithShenandoah
 183  * @key stress
 184  * @library /
 185  * @requires vm.gc.Shenandoah
 186  * @requires vm.flavor == "server" & !vm.emulatedClient & !vm.graal.enabled & vm.opt.ClassUnloading != false
 187  * @summary Stress Shenandoah GC with nmethod barrier forced deoptimization enabled.
 188  *
 189  * @run main/othervm/timeout=200 -Xlog:gc*=info,nmethod+barrier=trace -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
 190  *      -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=adaptive
 191  *      -XX:+DeoptimizeNMethodBarriersALot -XX:-Inline
 192  *      -XX:+ShenandoahVerify
 193  *      gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
 194  *
 195  * @run main/othervm/timeout=200 -Xlog:gc*=info,nmethod+barrier=trace -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
 196  *      -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=adaptive
 197  *      -XX:+DeoptimizeNMethodBarriersALot -XX:-Inline
 198  *      gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
 199  *
 200  * @run main/othervm/timeout=200 -Xlog:gc*=info,nmethod+barrier=trace -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
 201  *      -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=compact
 202  *      -XX:+DeoptimizeNMethodBarriersALot -XX:-Inline
 203  *      gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
 204  */
 205 
 206 /*
 207  * @test TestGCBasherDeoptWithShenandoah
 208  * @key stress
 209  * @library /
 210  * @requires vm.gc.Shenandoah
 211  * @requires vm.flavor == "server" & !vm.emulatedClient & !vm.graal.enabled & vm.opt.ClassUnloading != false
 212  * @summary Stress Shenandoah GC with nmethod barrier forced deoptimization enabled.
 213  *
 214  * @run main/othervm/timeout=200 -Xlog:gc*=info,nmethod+barrier=trace -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
 215  *      -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu -XX:ShenandoahGCHeuristics=aggressive
 216  *      -XX:+DeoptimizeNMethodBarriersALot -XX:-Inline
 217  *      -XX:+ShenandoahOOMDuringEvacALot
 218  *      gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
 219  *
 220  * @run main/othervm/timeout=200 -Xlog:gc*=info,nmethod+barrier=trace -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
 221  *      -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu -XX:ShenandoahGCHeuristics=aggressive
 222  *      -XX:+DeoptimizeNMethodBarriersALot -XX:-Inline
 223  *      -XX:+ShenandoahAllocFailureALot
 224  *      gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
 225  *
 226  * @run main/othervm/timeout=200 -Xlog:gc*=info,nmethod+barrier=trace -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
 227  *      -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu -XX:ShenandoahGCHeuristics=aggressive
 228  *      -XX:+DeoptimizeNMethodBarriersALot -XX:-Inline
 229  *      gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
 230  */
 231 
 232 /*
 233  * @test TestGCBasherDeoptWithShenandoah
 234  * @key stress
 235  * @library /
 236  * @requires vm.gc.Shenandoah
 237  * @requires vm.flavor == "server" & !vm.emulatedClient & !vm.graal.enabled & vm.opt.ClassUnloading != false
 238  * @summary Stress Shenandoah GC with nmethod barrier forced deoptimization enabled.
 239  *
 240  * @run main/othervm/timeout=200 -Xlog:gc*=info,nmethod+barrier=trace -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
 241  *      -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu
 242  *      -XX:+DeoptimizeNMethodBarriersALot -XX:-Inline
 243  *      -XX:+ShenandoahVerify
 244  *      gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
 245  *
 246  * @run main/othervm/timeout=200 -Xlog:gc*=info,nmethod+barrier=trace -Xmx1g -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
 247  *      -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu
 248  *      -XX:+DeoptimizeNMethodBarriersALot -XX:-Inline
 249  *      gc.stress.gcbasher.TestGCBasherWithShenandoah 120000
 250  */
 251 
 252 
 253 public class TestGCBasherWithShenandoah {
 254     public static void main(String[] args) throws IOException {
 255         TestGCBasher.main(args);
 256     }
 257 }