Skip to content

Commit a5f39c1

Browse files
author
Vladimir Kozlov
committed
8349753: Incorrect use of CodeBlob::is_buffer_blob() in few places
Backport-of: 0b50e479a060cf745a3e858d535516444fe80fd8
1 parent e06d01d commit a5f39c1

File tree

4 files changed

+47
-2
lines changed

4 files changed

+47
-2
lines changed

src/hotspot/share/code/codeBlob.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -657,7 +657,7 @@ void CodeBlob::print_value_on(outputStream* st) const {
657657
}
658658

659659
void CodeBlob::dump_for_addr(address addr, outputStream* st, bool verbose) const {
660-
if (is_buffer_blob()) {
660+
if (is_buffer_blob() || is_adapter_blob() || is_vtable_blob() || is_method_handles_adapter_blob()) {
661661
// the interpreter is generated into a buffer blob
662662
InterpreterCodelet* i = Interpreter::codelet_containing(addr);
663663
if (i != nullptr) {

src/hotspot/share/code/codeCache.cpp

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1515,9 +1515,14 @@ void CodeCache::print_trace(const char* event, CodeBlob* cb, uint size) {
15151515
void CodeCache::print_internals() {
15161516
int nmethodCount = 0;
15171517
int runtimeStubCount = 0;
1518+
int upcallStubCount = 0;
15181519
int adapterCount = 0;
1520+
int mhAdapterCount = 0;
1521+
int vtableBlobCount = 0;
15191522
int deoptimizationStubCount = 0;
15201523
int uncommonTrapStubCount = 0;
1524+
int exceptionStubCount = 0;
1525+
int safepointStubCount = 0;
15211526
int bufferBlobCount = 0;
15221527
int total = 0;
15231528
int nmethodNotEntrant = 0;
@@ -1554,12 +1559,22 @@ void CodeCache::print_internals() {
15541559
}
15551560
} else if (cb->is_runtime_stub()) {
15561561
runtimeStubCount++;
1562+
} else if (cb->is_upcall_stub()) {
1563+
upcallStubCount++;
15571564
} else if (cb->is_deoptimization_stub()) {
15581565
deoptimizationStubCount++;
15591566
} else if (cb->is_uncommon_trap_stub()) {
15601567
uncommonTrapStubCount++;
1568+
} else if (cb->is_exception_stub()) {
1569+
exceptionStubCount++;
1570+
} else if (cb->is_safepoint_stub()) {
1571+
safepointStubCount++;
15611572
} else if (cb->is_adapter_blob()) {
15621573
adapterCount++;
1574+
} else if (cb->is_method_handles_adapter_blob()) {
1575+
mhAdapterCount++;
1576+
} else if (cb->is_vtable_blob()) {
1577+
vtableBlobCount++;
15631578
} else if (cb->is_buffer_blob()) {
15641579
bufferBlobCount++;
15651580
}
@@ -1586,10 +1601,15 @@ void CodeCache::print_internals() {
15861601
tty->print_cr("\tjava: %d",nmethodJava);
15871602
tty->print_cr("\tnative: %d",nmethodNative);
15881603
tty->print_cr("runtime_stubs: %d",runtimeStubCount);
1604+
tty->print_cr("upcall_stubs: %d",upcallStubCount);
15891605
tty->print_cr("adapters: %d",adapterCount);
1606+
tty->print_cr("MH adapters: %d",mhAdapterCount);
1607+
tty->print_cr("VTables: %d",vtableBlobCount);
15901608
tty->print_cr("buffer blobs: %d",bufferBlobCount);
15911609
tty->print_cr("deoptimization_stubs: %d",deoptimizationStubCount);
15921610
tty->print_cr("uncommon_traps: %d",uncommonTrapStubCount);
1611+
tty->print_cr("exception_stubs: %d",exceptionStubCount);
1612+
tty->print_cr("safepoint_stubs: %d",safepointStubCount);
15931613
tty->print_cr("\nnmethod size distribution");
15941614
tty->print_cr("-------------------------------------------------");
15951615

@@ -1615,9 +1635,14 @@ void CodeCache::print() {
16151635

16161636
CodeBlob_sizes live[CompLevel_full_optimization + 1];
16171637
CodeBlob_sizes runtimeStub;
1638+
CodeBlob_sizes upcallStub;
16181639
CodeBlob_sizes uncommonTrapStub;
16191640
CodeBlob_sizes deoptimizationStub;
1641+
CodeBlob_sizes exceptionStub;
1642+
CodeBlob_sizes safepointStub;
16201643
CodeBlob_sizes adapter;
1644+
CodeBlob_sizes mhAdapter;
1645+
CodeBlob_sizes vtableBlob;
16211646
CodeBlob_sizes bufferBlob;
16221647
CodeBlob_sizes other;
16231648

@@ -1629,12 +1654,22 @@ void CodeCache::print() {
16291654
live[level].add(cb);
16301655
} else if (cb->is_runtime_stub()) {
16311656
runtimeStub.add(cb);
1657+
} else if (cb->is_upcall_stub()) {
1658+
upcallStub.add(cb);
16321659
} else if (cb->is_deoptimization_stub()) {
16331660
deoptimizationStub.add(cb);
16341661
} else if (cb->is_uncommon_trap_stub()) {
16351662
uncommonTrapStub.add(cb);
1663+
} else if (cb->is_exception_stub()) {
1664+
exceptionStub.add(cb);
1665+
} else if (cb->is_safepoint_stub()) {
1666+
safepointStub.add(cb);
16361667
} else if (cb->is_adapter_blob()) {
16371668
adapter.add(cb);
1669+
} else if (cb->is_method_handles_adapter_blob()) {
1670+
mhAdapter.add(cb);
1671+
} else if (cb->is_vtable_blob()) {
1672+
vtableBlob.add(cb);
16381673
} else if (cb->is_buffer_blob()) {
16391674
bufferBlob.add(cb);
16401675
} else {
@@ -1665,9 +1700,14 @@ void CodeCache::print() {
16651700
const CodeBlob_sizes* sizes;
16661701
} non_nmethod_blobs[] = {
16671702
{ "runtime", &runtimeStub },
1703+
{ "upcall", &upcallStub },
16681704
{ "uncommon trap", &uncommonTrapStub },
16691705
{ "deoptimization", &deoptimizationStub },
1706+
{ "exception", &exceptionStub },
1707+
{ "safepoint", &safepointStub },
16701708
{ "adapter", &adapter },
1709+
{ "mh_adapter", &mhAdapter },
1710+
{ "vtable", &vtableBlob },
16711711
{ "buffer blob", &bufferBlob },
16721712
{ "other", &other },
16731713
};

src/hotspot/share/prims/jvmtiCodeBlobEvents.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ void CodeBlobCollector::do_blob(CodeBlob* cb) {
125125
return;
126126
}
127127
// exclude VtableStubs, which are processed separately
128-
if (cb->is_buffer_blob() && strcmp(cb->name(), "vtable chunks") == 0) {
128+
if (cb->is_vtable_blob()) {
129129
return;
130130
}
131131

test/hotspot/jtreg/compiler/codecache/CheckCodeCacheInfo.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,14 @@ public class CheckCodeCacheInfo {
5656
+ pair
5757
+ "Non-nmethod blobs:\\n"
5858
+ " #\\d+ runtime = " + entry
59+
+ " #\\d+ upcall = " + entry
5960
+ " #\\d+ uncommon trap = " + entry
6061
+ " #\\d+ deoptimization = " + entry
62+
+ " #\\d+ exception = " + entry
63+
+ " #\\d+ safepoint = " + entry
6164
+ " #\\d+ adapter = " + entry
65+
+ " #\\d+ mh_adapter = " + entry
66+
+ " #\\d+ vtable = " + entry
6267
+ " #\\d+ buffer blob = " + entry
6368
+ " #\\d+ other = " + entry;
6469
}

0 commit comments

Comments
 (0)