1472N/A * or visit www.oracle.com if you need additional information or have any
1879N/A#include "precompiled.hpp"
1879N/A#include "classfile/classLoader.hpp"
1879N/A#include "code/vtableStubs.hpp"
1879N/A#include "gc_interface/collectedHeap.inline.hpp"
1879N/A#include "interpreter/interpreter.hpp"
1879N/A#include "memory/allocation.inline.hpp"
1879N/A#include "memory/universe.inline.hpp"
1879N/A#include "oops/oop.inline.hpp"
1879N/A#include "oops/oop.inline2.hpp"
2062N/A#include "oops/symbol.hpp"
1879N/A#include "runtime/deoptimization.hpp"
1879N/A#include "runtime/fprofiler.hpp"
1879N/A#include "runtime/mutexLocker.hpp"
1879N/A#include "runtime/stubCodeGenerator.hpp"
1879N/A#include "runtime/stubRoutines.hpp"
1879N/A#include "runtime/vframe.hpp"
1879N/A#include "utilities/macros.hpp"
0N/A initialize();
0N/A assert(((r > ThreadProfilerMark::noRegion) && (r < ThreadProfilerMark::maxRegion)), "ThreadProfilerMark::Region out of bounds");
0N/A tty->print_cr("Printing compiled methods with PC buckets having more than %d ticks", ProfilerPCTickThreshold);
0N/A virtual ~ProfilerNode() {
0N/Avoid ProfilerNode::operator delete(void* p){
0N/A const char* _symbol; // The name of the nearest VM symbol (for +ProfileVM). Points to a unique string
0N/A const char* _symbol; // The name of the nearest VM symbol when ProfileVM is on. Points to a unique string.
0N/A runtimeStubNode(const CodeBlob* stub, const char* name, TickPosition where) : ProfilerNode(), _stub(stub), _symbol(name) {
0N/Avoid ThreadProfiler::runtime_stub_update(const CodeBlob* stub, const char* name, TickPosition where) {
0N/A if (ProfileIntervals &&
0N/A interval_expired = true;
0N/A suspendedthreadcount = 0;
0N/A for (int j = 0; j < suspendedthreadcount; j++) {
0N/A for (int i = 0; i < suspendedthreadcount; i++) {
0N/A if (interval_expired) {
0N/A if (interval_expired) {
107N/Avoid ThreadProfiler::record_interpreted_tick(JavaThread* thread, frame fr, TickPosition where, int* ticks) {
0N/A // When the class loader starts it marks the ThreadProfiler to tell it it is in the class loader
0N/A case _thread_in_native:
0N/A case _thread_in_native_trans:
0N/A case _thread_in_vm:
0N/A case _thread_in_vm_trans:
0N/A case _thread_in_Java:
0N/A case _thread_in_Java_trans:
0N/A case _thread_blocked:
0N/A case _thread_blocked_trans:
0N/A case _thread_uninitialized:
0N/A case _thread_new:
0N/A case _thread_new_trans:
0N/A thread_ticks = 0;
0N/A blocked_ticks = 0;
0N/A compiler_ticks = 0;
0N/A interpreter_ticks = 0;
0N/A class_loader_ticks = 0;
0N/A extra_ticks = 0;
0N/A initialize();
0N/A class_loader_ticks = 0;
0N/A extra_ticks = 0;
0N/A received_gc_ticks = 0;
0N/A vm_operation_ticks = 0;
0N/A compiler_ticks = 0;
0N/A deopt_ticks = 0;
0N/A interpreter_ticks = 0;
0N/A blocked_ticks = 0;
0N/A unknown_ticks = 0;
0N/A received_ticks = 0;
0N/A delivered_ticks = 0;
0N/A if (thread_ticks <= 0) {
0N/A if (n->is_interpreted()) {
0N/A if (!has_interpreted_ticks) {
0N/A has_interpreted_ticks = true;
0N/A if (has_interpreted_ticks) {
0N/A print_count = 0;
0N/A if (n->is_compiled()) {
0N/A if (!has_compiled_ticks) {
0N/A has_compiled_ticks = true;
0N/A if (has_compiled_ticks) {
0N/A print_count = 0;
0N/A if (!has_stub_ticks) {
0N/A has_stub_ticks = true;
0N/A if (has_stub_ticks) {
0N/A print_count = 0;
0N/A if (n->is_runtime_stub()) {
0N/A if (!has_runtime_stub_ticks) {
0N/A has_runtime_stub_ticks = true;
0N/A if (has_runtime_stub_ticks) {
0N/A if (blocked_ticks + class_loader_ticks + interpreter_ticks + compiler_ticks + unknown_ticks() != 0) {
0N/A if (WizardMode) {
0N/A if (non_method_ticks() > 0) {