Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openjdk-multiarch-jdk8u
Path: blob/aarch64-shenandoah-jdk8u272-b10/hotspot/src/share/vm/jfr/dcmd/jfrDcmds.hpp
38920 views
1
/*
2
* Copyright (c) 2012, 2018, Oracle and/or its affiliates. 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
#ifndef SHARE_VM_JFR_JFRDCMDS_HPP
26
#define SHARE_VM_JFR_JFRDCMDS_HPP
27
28
#include "services/diagnosticCommand.hpp"
29
30
class JfrDumpFlightRecordingDCmd : public DCmdWithParser {
31
protected:
32
DCmdArgument<char*> _name;
33
DCmdArgument<char*> _filename;
34
DCmdArgument<NanoTimeArgument> _maxage;
35
DCmdArgument<MemorySizeArgument> _maxsize;
36
DCmdArgument<char*> _begin;
37
DCmdArgument<char*> _end;
38
DCmdArgument<bool> _path_to_gc_roots;
39
40
public:
41
JfrDumpFlightRecordingDCmd(outputStream* output, bool heap);
42
static const char* name() {
43
return "JFR.dump";
44
}
45
static const char* description() {
46
return "Copies contents of a JFR recording to file. Either the name or the recording id must be specified.";
47
}
48
static const char* impact() {
49
return "Low";
50
}
51
static const JavaPermission permission() {
52
JavaPermission p = {"java.lang.management.ManagementPermission", "monitor", NULL};
53
return p;
54
}
55
static int num_arguments();
56
virtual void execute(DCmdSource source, TRAPS);
57
};
58
59
class JfrCheckFlightRecordingDCmd : public DCmdWithParser {
60
protected:
61
DCmdArgument<char*> _name;
62
DCmdArgument<bool> _verbose;
63
64
public:
65
JfrCheckFlightRecordingDCmd(outputStream* output, bool heap);
66
static const char* name() {
67
return "JFR.check";
68
}
69
static const char* description() {
70
return "Checks running JFR recording(s)";
71
}
72
static const char* impact() {
73
return "Low";
74
}
75
static const JavaPermission permission() {
76
JavaPermission p = {"java.lang.management.ManagementPermission", "monitor", NULL};
77
return p;
78
}
79
static int num_arguments();
80
virtual void execute(DCmdSource source, TRAPS);
81
};
82
83
class JfrStartFlightRecordingDCmd : public DCmdWithParser {
84
protected:
85
DCmdArgument<char*> _name;
86
DCmdArgument<StringArrayArgument*> _settings;
87
DCmdArgument<NanoTimeArgument> _delay;
88
DCmdArgument<NanoTimeArgument> _duration;
89
DCmdArgument<bool> _disk;
90
DCmdArgument<char*> _filename;
91
DCmdArgument<NanoTimeArgument> _maxage;
92
DCmdArgument<MemorySizeArgument> _maxsize;
93
DCmdArgument<bool> _dump_on_exit;
94
DCmdArgument<bool> _path_to_gc_roots;
95
96
public:
97
JfrStartFlightRecordingDCmd(outputStream* output, bool heap);
98
static const char* name() {
99
return "JFR.start";
100
}
101
static const char* description() {
102
return "Starts a new JFR recording";
103
}
104
static const char* impact() {
105
return "Medium: Depending on the settings for a recording, the impact can range from low to high.";
106
}
107
static const JavaPermission permission() {
108
JavaPermission p = {"java.lang.management.ManagementPermission", "monitor", NULL};
109
return p;
110
}
111
static int num_arguments();
112
virtual void execute(DCmdSource source, TRAPS);
113
};
114
115
class JfrStopFlightRecordingDCmd : public DCmdWithParser {
116
protected:
117
DCmdArgument<char*> _name;
118
DCmdArgument<char*> _filename;
119
120
public:
121
JfrStopFlightRecordingDCmd(outputStream* output, bool heap);
122
static const char* name() {
123
return "JFR.stop";
124
}
125
static const char* description() {
126
return "Stops a JFR recording";
127
}
128
static const char* impact() {
129
return "Low";
130
}
131
static const JavaPermission permission() {
132
JavaPermission p = {"java.lang.management.ManagementPermission", "monitor", NULL};
133
return p;
134
}
135
static int num_arguments();
136
virtual void execute(DCmdSource source, TRAPS);
137
};
138
139
class JfrRuntimeOptions;
140
141
class JfrConfigureFlightRecorderDCmd : public DCmdWithParser {
142
friend class JfrOptionSet;
143
protected:
144
DCmdArgument<char*> _repository_path;
145
DCmdArgument<char*> _dump_path;
146
DCmdArgument<jlong> _stack_depth;
147
DCmdArgument<jlong> _global_buffer_count;
148
DCmdArgument<MemorySizeArgument> _global_buffer_size;
149
DCmdArgument<MemorySizeArgument> _thread_buffer_size;
150
DCmdArgument<MemorySizeArgument> _memory_size;
151
DCmdArgument<MemorySizeArgument> _max_chunk_size;
152
DCmdArgument<bool> _sample_threads;
153
154
public:
155
JfrConfigureFlightRecorderDCmd(outputStream* output, bool heap);
156
static const char* name() {
157
return "JFR.configure";
158
}
159
static const char* description() {
160
return "Configure JFR";
161
}
162
static const char* impact() {
163
return "Low";
164
}
165
static const JavaPermission permission() {
166
JavaPermission p = {"java.lang.management.ManagementPermission", "monitor", NULL};
167
return p;
168
}
169
static int num_arguments();
170
virtual void execute(DCmdSource source, TRAPS);
171
};
172
173
class JfrUnlockCommercialFeaturesDCmd : public DCmd {
174
public:
175
JfrUnlockCommercialFeaturesDCmd(outputStream* output, bool heap) : DCmd(output, heap) { }
176
static const char* name() { return "VM.unlock_commercial_features"; }
177
static const char* description() {
178
return "Simulate commercial features unlocking for Zulu.";
179
}
180
static const char* impact() { return "Low"; }
181
static const JavaPermission permission() {
182
JavaPermission p = {"java.lang.management.ManagementPermission",
183
"monitor", NULL};
184
return p;
185
}
186
static int num_arguments() { return 0; }
187
virtual void execute(DCmdSource source, TRAPS) {
188
UnlockCommercialFeatures = true;
189
}
190
};
191
192
bool register_jfr_dcmds();
193
194
#endif // SHARE_VM_JFR_JFRDCMDS_HPP
195
196