34 * sun.hotspot.WhiteBox$WhiteBoxPermission
35 * @run driver TestConcurrentPhaseControlG1
36 */
37
38 import gc.concurrent_phase_control.CheckControl;
39
40 public class TestConcurrentPhaseControlG1 {
41
42 // Pairs of phase name and regex to match log stringm for stepping through,
43 private static final String[][] g1PhaseInfo = {
44 // Step through the phases in order.
45 {"IDLE", null},
46 {"CONCURRENT_CYCLE", "Concurrent Cycle"},
47 {"IDLE", null}, // Resume IDLE before testing subphases
48 {"CLEAR_CLAIMED_MARKS", "Concurrent Clear Claimed Marks"},
49 {"SCAN_ROOT_REGIONS", "Concurrent Scan Root Regions"},
50 // ^F so not "From Roots", ^R so not "Restart"
51 {"CONCURRENT_MARK", "Concurrent Mark [^FR]"},
52 {"IDLE", null}, // Resume IDLE before testing subphases
53 {"MARK_FROM_ROOTS", "Concurrent Mark From Roots"},
54 {"BEFORE_REMARK", null},
55 {"REMARK", "Pause Remark"},
56 {"REBUILD_REMEMBERED_SETS", "Concurrent Rebuild Remembered Sets"},
57 // Clear request
58 {"IDLE", null},
59 {"ANY", null},
60 // Request a phase.
61 {"MARK_FROM_ROOTS", "Concurrent Mark From Roots"},
62 // Request an earlier phase, to ensure loop rather than stuck at idle.
63 {"SCAN_ROOT_REGIONS", "Concurrent Scan Root Regions"},
64 // Clear request, to unblock service.
65 {"IDLE", null},
66 {"ANY", null},
67 };
68
69 private static final String[] g1Options =
70 new String[]{"-XX:+UseG1GC", "-Xlog:gc,gc+marking"};
71
72 private static final String g1Name = "G1";
73
|
34 * sun.hotspot.WhiteBox$WhiteBoxPermission
35 * @run driver TestConcurrentPhaseControlG1
36 */
37
38 import gc.concurrent_phase_control.CheckControl;
39
40 public class TestConcurrentPhaseControlG1 {
41
42 // Pairs of phase name and regex to match log stringm for stepping through,
43 private static final String[][] g1PhaseInfo = {
44 // Step through the phases in order.
45 {"IDLE", null},
46 {"CONCURRENT_CYCLE", "Concurrent Cycle"},
47 {"IDLE", null}, // Resume IDLE before testing subphases
48 {"CLEAR_CLAIMED_MARKS", "Concurrent Clear Claimed Marks"},
49 {"SCAN_ROOT_REGIONS", "Concurrent Scan Root Regions"},
50 // ^F so not "From Roots", ^R so not "Restart"
51 {"CONCURRENT_MARK", "Concurrent Mark [^FR]"},
52 {"IDLE", null}, // Resume IDLE before testing subphases
53 {"MARK_FROM_ROOTS", "Concurrent Mark From Roots"},
54 {"PRECLEAN", "Concurrent Preclean"},
55 {"BEFORE_REMARK", null},
56 {"REMARK", "Pause Remark"},
57 {"REBUILD_REMEMBERED_SETS", "Concurrent Rebuild Remembered Sets"},
58 // Clear request
59 {"IDLE", null},
60 {"ANY", null},
61 // Request a phase.
62 {"MARK_FROM_ROOTS", "Concurrent Mark From Roots"},
63 // Request an earlier phase, to ensure loop rather than stuck at idle.
64 {"SCAN_ROOT_REGIONS", "Concurrent Scan Root Regions"},
65 // Clear request, to unblock service.
66 {"IDLE", null},
67 {"ANY", null},
68 };
69
70 private static final String[] g1Options =
71 new String[]{"-XX:+UseG1GC", "-Xlog:gc,gc+marking"};
72
73 private static final String g1Name = "G1";
74
|