提交 348f2314 编写于 作者: N neugens

8238589: Necessary code cleanup in JFR for JDK8u

Reviewed-by: shade, apetushkov
上级 9dd0bdd6
...@@ -34,7 +34,6 @@ ...@@ -34,7 +34,6 @@
#include "utilities/exceptions.hpp" #include "utilities/exceptions.hpp"
// put OS-includes here // put OS-includes here
#include <dirent.h>
# include <sys/types.h> # include <sys/types.h>
# include <sys/mman.h> # include <sys/mman.h>
# include <errno.h> # include <errno.h>
......
...@@ -617,7 +617,7 @@ static void post_class_load_event(EventClassLoad &event, ...@@ -617,7 +617,7 @@ static void post_class_load_event(EventClassLoad &event,
(ClassLoaderData*)NULL); (ClassLoaderData*)NULL);
event.commit(); event.commit();
} }
#endif // INCLUDE_JFR #endif
} }
Klass* SystemDictionary::resolve_instance_class_or_null(Symbol* name, Klass* SystemDictionary::resolve_instance_class_or_null(Symbol* name,
...@@ -1337,24 +1337,23 @@ instanceKlassHandle SystemDictionary::load_instance_class(Symbol* class_name, Ha ...@@ -1337,24 +1337,23 @@ instanceKlassHandle SystemDictionary::load_instance_class(Symbol* class_name, Ha
if (!k.is_null()) { if (!k.is_null()) {
k = find_or_define_instance_class(class_name, class_loader, k, CHECK_(nh)); k = find_or_define_instance_class(class_name, class_loader, k, CHECK_(nh));
} }
#if INCLUDE_JFR #if INCLUDE_JFR
else { if (k.is_null() && (class_name == jfr_event_handler_proxy)) {
assert(jfr_event_handler_proxy != NULL, "invariant"); assert(jfr_event_handler_proxy != NULL, "invariant");
if (class_name == jfr_event_handler_proxy) { // EventHandlerProxy class is generated dynamically in
// EventHandlerProxy class is generated dynamically in // EventHandlerProxyCreator::makeEventHandlerProxyClass
// EventHandlerProxyCreator::makeEventHandlerProxyClass // method, so we generate a Java call from here.
// method, so we generate a Java call from here. //
// // EventHandlerProxy class will finally be defined in
// EventHandlerProxy class will finally be defined in // SystemDictionary::resolve_from_stream method, down
// SystemDictionary::resolve_from_stream method, down // the call stack. Bootstrap classloader is parallel-capable,
// the call stack. Bootstrap classloader is parallel-capable, // so no concurrency issues are expected.
// so no concurrency issues are expected. CLEAR_PENDING_EXCEPTION;
CLEAR_PENDING_EXCEPTION; k = JfrUpcalls::load_event_handler_proxy_class(THREAD);
k = JfrUpcalls::load_event_handler_proxy_class(THREAD); assert(!k.is_null(), "invariant");
assert(!k.is_null(), "invariant");
}
} }
#endif // INCLUDE_JFR #endif
return k; return k;
} else { } else {
......
...@@ -2023,7 +2023,7 @@ void CompileBroker::invoke_compiler_on_method(CompileTask* task) { ...@@ -2023,7 +2023,7 @@ void CompileBroker::invoke_compiler_on_method(CompileTask* task) {
compilable = ci_env.compilable(); compilable = ci_env.compilable();
if (ci_env.failing()) { if (ci_env.failing()) {
const char *failure_reason = ci_env.failure_reason(); const char* failure_reason = ci_env.failure_reason();
const char* retry_message = ci_env.retry_message(); const char* retry_message = ci_env.retry_message();
task->set_failure_reason(failure_reason); task->set_failure_reason(failure_reason);
if (_compilation_log != NULL) { if (_compilation_log != NULL) {
......
...@@ -233,82 +233,6 @@ void G1NewTracer::send_evacuation_failed_event(const EvacuationFailedInfo& ef_in ...@@ -233,82 +233,6 @@ void G1NewTracer::send_evacuation_failed_event(const EvacuationFailedInfo& ef_in
} }
} }
// XXX
//static JfrStructG1EvacuationStatistics
//create_g1_evacstats(unsigned gcid, const G1EvacSummary& summary) {
// JfrStructG1EvacuationStatistics s;
// s.set_gcId(gcid);
// s.set_allocated(summary.allocated() * HeapWordSize);
// s.set_wasted(summary.wasted() * HeapWordSize);
// s.set_used(summary.used() * HeapWordSize);
// s.set_undoWaste(summary.undo_wasted() * HeapWordSize);
// s.set_regionEndWaste(summary.region_end_waste() * HeapWordSize);
// s.set_regionsRefilled(summary.regions_filled());
// s.set_directAllocated(summary.direct_allocated() * HeapWordSize);
// s.set_failureUsed(summary.failure_used() * HeapWordSize);
// s.set_failureWaste(summary.failure_waste() * HeapWordSize);
// return s;
//}
//
//void G1NewTracer::send_young_evacuation_statistics(const G1EvacSummary& summary) const {
// EventG1EvacuationYoungStatistics surv_evt;
// if (surv_evt.should_commit()) {
// surv_evt.set_statistics(create_g1_evacstats(_shared_gc_info.gc_id().id(), summary));
// surv_evt.commit();
// }
//}
//
//void G1NewTracer::send_old_evacuation_statistics(const G1EvacSummary& summary) const {
// EventG1EvacuationOldStatistics old_evt;
// if (old_evt.should_commit()) {
// old_evt.set_statistics(create_g1_evacstats(_shared_gc_info.gc_id().id(), summary));
// old_evt.commit();
// }
//}
//
//void G1NewTracer::send_basic_ihop_statistics(size_t threshold,
// size_t target_occupancy,
// size_t current_occupancy,
// size_t last_allocation_size,
// double last_allocation_duration,
// double last_marking_length) {
// EventG1BasicIHOP evt;
// if (evt.should_commit()) {
// evt.set_gcId(_shared_gc_info.gc_id().id());
// evt.set_threshold(threshold);
// evt.set_targetOccupancy(target_occupancy);
// evt.set_thresholdPercentage(target_occupancy > 0 ? ((double)threshold / target_occupancy) : 0.0);
// evt.set_currentOccupancy(current_occupancy);
// evt.set_recentMutatorAllocationSize(last_allocation_size);
// evt.set_recentMutatorDuration(last_allocation_duration * MILLIUNITS);
// evt.set_recentAllocationRate(last_allocation_duration != 0.0 ? last_allocation_size / last_allocation_duration : 0.0);
// evt.set_lastMarkingDuration(last_marking_length * MILLIUNITS);
// evt.commit();
// }
//}
//
//void G1NewTracer::send_adaptive_ihop_statistics(size_t threshold,
// size_t internal_target_occupancy,
// size_t current_occupancy,
// size_t additional_buffer_size,
// double predicted_allocation_rate,
// double predicted_marking_length,
// bool prediction_active) {
// EventG1AdaptiveIHOP evt;
// if (evt.should_commit()) {
// evt.set_gcId(_shared_gc_info.gc_id().id());
// evt.set_threshold(threshold);
// evt.set_thresholdPercentage(internal_target_occupancy > 0 ? ((double)threshold / internal_target_occupancy) : 0.0);
// evt.set_ihopTargetOccupancy(internal_target_occupancy);
// evt.set_currentOccupancy(current_occupancy);
// evt.set_additionalBufferSize(additional_buffer_size);
// evt.set_predictedAllocationRate(predicted_allocation_rate);
// evt.set_predictedMarkingDuration(predicted_marking_length * MILLIUNITS);
// evt.set_predictionActive(prediction_active);
// evt.commit();
// }
//}
#endif // INCLUDE_ALL_GCS #endif // INCLUDE_ALL_GCS
static JfrStructVirtualSpace to_struct(const VirtualSpaceSummary& summary) { static JfrStructVirtualSpace to_struct(const VirtualSpaceSummary& summary) {
......
...@@ -201,32 +201,6 @@ class SWNodeInfo VALUE_OBJ_CLASS_SPEC { ...@@ -201,32 +201,6 @@ class SWNodeInfo VALUE_OBJ_CLASS_SPEC {
static const SWNodeInfo initial; static const SWNodeInfo initial;
}; };
// JVMCI: OrderedPair is moved up to deal with compilation issues on Windows
//------------------------------OrderedPair---------------------------
// Ordered pair of Node*.
class OrderedPair VALUE_OBJ_CLASS_SPEC {
protected:
Node* _p1;
Node* _p2;
public:
OrderedPair() : _p1(NULL), _p2(NULL) {}
OrderedPair(Node* p1, Node* p2) {
if (p1->_idx < p2->_idx) {
_p1 = p1; _p2 = p2;
} else {
_p1 = p2; _p2 = p1;
}
}
bool operator==(const OrderedPair &rhs) {
return _p1 == rhs._p1 && _p2 == rhs._p2;
}
void print() { tty->print(" (%d, %d)", _p1->_idx, _p2->_idx); }
static const OrderedPair initial;
};
// -----------------------------SuperWord--------------------------------- // -----------------------------SuperWord---------------------------------
// Transforms scalar operations into packed (superword) operations. // Transforms scalar operations into packed (superword) operations.
class SuperWord : public ResourceObj { class SuperWord : public ResourceObj {
...@@ -450,6 +424,7 @@ class SuperWord : public ResourceObj { ...@@ -450,6 +424,7 @@ class SuperWord : public ResourceObj {
}; };
//------------------------------SWPointer--------------------------- //------------------------------SWPointer---------------------------
// Information about an address for dependence checking and vector alignment // Information about an address for dependence checking and vector alignment
class SWPointer VALUE_OBJ_CLASS_SPEC { class SWPointer VALUE_OBJ_CLASS_SPEC {
...@@ -531,4 +506,29 @@ class SWPointer VALUE_OBJ_CLASS_SPEC { ...@@ -531,4 +506,29 @@ class SWPointer VALUE_OBJ_CLASS_SPEC {
void print(); void print();
}; };
//------------------------------OrderedPair---------------------------
// Ordered pair of Node*.
class OrderedPair VALUE_OBJ_CLASS_SPEC {
protected:
Node* _p1;
Node* _p2;
public:
OrderedPair() : _p1(NULL), _p2(NULL) {}
OrderedPair(Node* p1, Node* p2) {
if (p1->_idx < p2->_idx) {
_p1 = p1; _p2 = p2;
} else {
_p1 = p2; _p2 = p1;
}
}
bool operator==(const OrderedPair &rhs) {
return _p1 == rhs._p1 && _p2 == rhs._p2;
}
void print() { tty->print(" (%d, %d)", _p1->_idx, _p2->_idx); }
static const OrderedPair initial;
};
#endif // SHARE_VM_OPTO_SUPERWORD_HPP #endif // SHARE_VM_OPTO_SUPERWORD_HPP
...@@ -256,10 +256,12 @@ static BiasedLocking::Condition revoke_bias(oop obj, bool allow_rebias, bool is_ ...@@ -256,10 +256,12 @@ static BiasedLocking::Condition revoke_bias(oop obj, bool allow_rebias, bool is_
} }
} }
#if INCLUDE_JFR
// If requested, return information on which thread held the bias // If requested, return information on which thread held the bias
if (biased_locker != NULL) { if (biased_locker != NULL) {
*biased_locker = biased_thread; *biased_locker = biased_thread;
} }
#endif // INCLUDE_JFR
return BiasedLocking::BIAS_REVOKED; return BiasedLocking::BIAS_REVOKED;
} }
...@@ -497,11 +499,15 @@ public: ...@@ -497,11 +499,15 @@ public:
if (TraceBiasedLocking) { if (TraceBiasedLocking) {
tty->print_cr("Revoking bias with potentially per-thread safepoint:"); tty->print_cr("Revoking bias with potentially per-thread safepoint:");
} }
JavaThread* biased_locker = NULL; JavaThread* biased_locker = NULL;
_status_code = revoke_bias((*_obj)(), false, false, _requesting_thread, &biased_locker); _status_code = revoke_bias((*_obj)(), false, false, _requesting_thread, &biased_locker);
#if INCLUDE_JFR
if (biased_locker != NULL) { if (biased_locker != NULL) {
_biased_locker_id = JFR_THREAD_ID(biased_locker); _biased_locker_id = JFR_THREAD_ID(biased_locker);
} }
#endif // INCLUDE_JFR
clean_up_cached_monitor_info(); clean_up_cached_monitor_info();
return; return;
} else { } else {
...@@ -516,9 +522,11 @@ public: ...@@ -516,9 +522,11 @@ public:
return _status_code; return _status_code;
} }
#if INCLUDE_JFR
traceid biased_locker() const { traceid biased_locker() const {
return _biased_locker_id; return _biased_locker_id;
} }
#endif // INCLUDE_JFR
}; };
......
...@@ -284,7 +284,7 @@ void mutex_init() { ...@@ -284,7 +284,7 @@ void mutex_init() {
def(CompileThread_lock , Monitor, nonleaf+5, false ); def(CompileThread_lock , Monitor, nonleaf+5, false );
def(PeriodicTask_lock , Monitor, nonleaf+5, true); def(PeriodicTask_lock , Monitor, nonleaf+5, true);
#ifdef INCLUDE_JFR #if INCLUDE_JFR
def(JfrMsg_lock , Monitor, leaf, true); def(JfrMsg_lock , Monitor, leaf, true);
def(JfrBuffer_lock , Mutex, leaf, true); def(JfrBuffer_lock , Mutex, leaf, true);
def(JfrThreadGroups_lock , Mutex, leaf, true); def(JfrThreadGroups_lock , Mutex, leaf, true);
......
...@@ -142,7 +142,7 @@ extern Mutex* Management_lock; // a lock used to serialize JVM ...@@ -142,7 +142,7 @@ extern Mutex* Management_lock; // a lock used to serialize JVM
extern Monitor* Service_lock; // a lock used for service thread operation extern Monitor* Service_lock; // a lock used for service thread operation
extern Monitor* PeriodicTask_lock; // protects the periodic task structure extern Monitor* PeriodicTask_lock; // protects the periodic task structure
#ifdef INCLUDE_JFR #if INCLUDE_JFR
extern Mutex* JfrStacktrace_lock; // used to guard access to the JFR stacktrace table extern Mutex* JfrStacktrace_lock; // used to guard access to the JFR stacktrace table
extern Monitor* JfrMsg_lock; // protects JFR messaging extern Monitor* JfrMsg_lock; // protects JFR messaging
extern Mutex* JfrBuffer_lock; // protects JFR buffer operations extern Mutex* JfrBuffer_lock; // protects JFR buffer operations
......
...@@ -1185,8 +1185,6 @@ static void post_monitor_inflate_event(EventJavaMonitorInflate* event, ...@@ -1185,8 +1185,6 @@ static void post_monitor_inflate_event(EventJavaMonitorInflate* event,
assert(event->should_commit(), "invariant"); assert(event->should_commit(), "invariant");
event->set_monitorClass(obj->klass()); event->set_monitorClass(obj->klass());
event->set_address((uintptr_t)(void*)obj); event->set_address((uintptr_t)(void*)obj);
// XXX no such counters. implement?
// event->set_cause((u1)cause);
event->commit(); event->commit();
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册