Skip to content

Commit 1740de2

Browse files
committed
8261297: NMT: Final report should use scale 1
Reviewed-by: zgu
1 parent c342323 commit 1740de2

File tree

3 files changed

+29
-23
lines changed

3 files changed

+29
-23
lines changed

src/hotspot/share/services/memReporter.hpp

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,17 @@
3939
*/
4040
class MemReporterBase : public StackObj {
4141
private:
42-
size_t _scale; // report in this scale
43-
outputStream* _output; // destination
42+
const size_t _scale; // report in this scale
43+
outputStream* const _output; // destination
4444

4545
public:
46-
MemReporterBase(outputStream* out = NULL, size_t scale = K)
47-
: _scale(scale) {
48-
_output = (out == NULL) ? tty : out;
49-
}
46+
47+
// Default scale to use if no scale given.
48+
static const size_t default_scale = K;
49+
50+
MemReporterBase(outputStream* out, size_t scale = default_scale) :
51+
_scale(scale), _output(out)
52+
{}
5053

5154
protected:
5255
inline outputStream* output() const {
@@ -74,7 +77,6 @@ class MemReporterBase : public StackObj {
7477
size_t reserved_total(const MallocMemory* malloc, const VirtualMemory* vm) const;
7578
size_t committed_total(const MallocMemory* malloc, const VirtualMemory* vm) const;
7679

77-
7880
// Print summary total, malloc and virtual memory
7981
void print_total(size_t reserved, size_t committed) const;
8082
void print_malloc(size_t amount, size_t count, MEMFLAGS flag = mtNone) const;
@@ -100,7 +102,7 @@ class MemSummaryReporter : public MemReporterBase {
100102
public:
101103
// This constructor is for normal reporting from a recent baseline.
102104
MemSummaryReporter(MemBaseline& baseline, outputStream* output,
103-
size_t scale = K) : MemReporterBase(output, scale),
105+
size_t scale = default_scale) : MemReporterBase(output, scale),
104106
_malloc_snapshot(baseline.malloc_memory_snapshot()),
105107
_vm_snapshot(baseline.virtual_memory_snapshot()),
106108
_instance_class_count(baseline.instance_class_count()),
@@ -125,7 +127,7 @@ class MemDetailReporter : public MemSummaryReporter {
125127
MemBaseline& _baseline;
126128

127129
public:
128-
MemDetailReporter(MemBaseline& baseline, outputStream* output, size_t scale = K) :
130+
MemDetailReporter(MemBaseline& baseline, outputStream* output, size_t scale = default_scale) :
129131
MemSummaryReporter(baseline, output, scale),
130132
_baseline(baseline) { }
131133

@@ -162,7 +164,7 @@ class MemSummaryDiffReporter : public MemReporterBase {
162164

163165
public:
164166
MemSummaryDiffReporter(MemBaseline& early_baseline, MemBaseline& current_baseline,
165-
outputStream* output, size_t scale = K) : MemReporterBase(output, scale),
167+
outputStream* output, size_t scale = default_scale) : MemReporterBase(output, scale),
166168
_early_baseline(early_baseline), _current_baseline(current_baseline) {
167169
assert(early_baseline.baseline_type() != MemBaseline::Not_baselined, "Not baselined");
168170
assert(current_baseline.baseline_type() != MemBaseline::Not_baselined, "Not baselined");
@@ -201,7 +203,7 @@ class MemSummaryDiffReporter : public MemReporterBase {
201203
class MemDetailDiffReporter : public MemSummaryDiffReporter {
202204
public:
203205
MemDetailDiffReporter(MemBaseline& early_baseline, MemBaseline& current_baseline,
204-
outputStream* output, size_t scale = K) :
206+
outputStream* output, size_t scale = default_scale) :
205207
MemSummaryDiffReporter(early_baseline, current_baseline, output, scale) { }
206208

207209
// Generate detail comparison report

src/hotspot/share/services/memTracker.cpp

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,14 @@ bool MemTracker::transition_to(NMT_TrackingLevel level) {
170170
return true;
171171
}
172172

173+
// Report during error reporting.
174+
void MemTracker::error_report(outputStream* output) {
175+
if (tracking_level() >= NMT_summary) {
176+
report(true, output, MemReporterBase::default_scale); // just print summary for error case.
177+
}
178+
}
173179

180+
// Report when handling PrintNMTStatistics before VM shutdown.
174181
static volatile bool g_final_report_did_run = false;
175182
void MemTracker::final_report(outputStream* output) {
176183
// This function is called during both error reporting and normal VM exit.
@@ -181,25 +188,25 @@ void MemTracker::final_report(outputStream* output) {
181188
if (Atomic::cmpxchg(&g_final_report_did_run, false, true) == false) {
182189
NMT_TrackingLevel level = tracking_level();
183190
if (level >= NMT_summary) {
184-
report(level == NMT_summary, output);
191+
report(level == NMT_summary, output, 1);
185192
}
186193
}
187194
}
188195

189-
void MemTracker::report(bool summary_only, outputStream* output) {
196+
void MemTracker::report(bool summary_only, outputStream* output, size_t scale) {
190197
assert(output != NULL, "No output stream");
191198
MemBaseline baseline;
192199
if (baseline.baseline(summary_only)) {
193200
if (summary_only) {
194-
MemSummaryReporter rpt(baseline, output);
201+
MemSummaryReporter rpt(baseline, output, scale);
195202
rpt.report();
196203
} else {
197-
MemDetailReporter rpt(baseline, output);
204+
MemDetailReporter rpt(baseline, output, scale);
198205
rpt.report();
199206
output->print("Metaspace:");
200207
// The basic metaspace report avoids any locking and should be safe to
201208
// be called at any time.
202-
MetaspaceUtils::print_basic_report(output, K);
209+
MetaspaceUtils::print_basic_report(output, scale);
203210
}
204211
}
205212
}

src/hotspot/share/services/memTracker.hpp

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -286,13 +286,10 @@ class MemTracker : AllStatic {
286286
return NMTQuery_lock;
287287
}
288288

289-
// Make a final report or report for hs_err file.
290-
static void error_report(outputStream* output) {
291-
if (tracking_level() >= NMT_summary) {
292-
report(true, output); // just print summary for error case.
293-
}
294-
}
289+
// Report during error reporting.
290+
static void error_report(outputStream* output);
295291

292+
// Report when handling PrintNMTStatistics before VM shutdown.
296293
static void final_report(outputStream* output);
297294

298295
// Stored baseline
@@ -308,7 +305,7 @@ class MemTracker : AllStatic {
308305

309306
private:
310307
static NMT_TrackingLevel init_tracking_level();
311-
static void report(bool summary_only, outputStream* output);
308+
static void report(bool summary_only, outputStream* output, size_t scale);
312309

313310
private:
314311
// Tracking level

0 commit comments

Comments
 (0)