8220151: SafepointTracing::end_of_last_safepoint_ms should return ms since epoch

Reviewed-by: dholmes, redestad
This commit is contained in:
Robbin Ehn 2019-03-06 11:15:16 +01:00
parent 26702d005b
commit d569301f4e
3 changed files with 11 additions and 4 deletions

View File

@ -1121,6 +1121,7 @@ jlong SafepointTracing::_last_safepoint_begin_time_ns = 0;
jlong SafepointTracing::_last_safepoint_sync_time_ns = 0;
jlong SafepointTracing::_last_safepoint_cleanup_time_ns = 0;
jlong SafepointTracing::_last_safepoint_end_time_ns = 0;
jlong SafepointTracing::_last_safepoint_end_time_epoch_ms = 0;
jlong SafepointTracing::_last_app_time_ns = 0;
int SafepointTracing::_nof_threads = 0;
int SafepointTracing::_nof_running = 0;
@ -1133,6 +1134,8 @@ uint64_t SafepointTracing::_op_count[VM_Operation::VMOp_Terminating] = {0};
void SafepointTracing::init() {
// Application start
_last_safepoint_end_time_ns = os::javaTimeNanos();
// amount of time since epoch
_last_safepoint_end_time_epoch_ms = os::javaTimeMillis();
}
// Helper method to print the header.
@ -1232,6 +1235,8 @@ void SafepointTracing::cleanup() {
void SafepointTracing::end() {
_last_safepoint_end_time_ns = os::javaTimeNanos();
// amount of time since epoch
_last_safepoint_end_time_epoch_ms = os::javaTimeMillis();
if (_max_sync_time < (_last_safepoint_sync_time_ns - _last_safepoint_begin_time_ns)) {
_max_sync_time = _last_safepoint_sync_time_ns - _last_safepoint_begin_time_ns;

View File

@ -240,6 +240,8 @@ private:
static jlong _last_safepoint_sync_time_ns;
static jlong _last_safepoint_cleanup_time_ns;
static jlong _last_safepoint_end_time_ns;
// amount of ms since epoch
static jlong _last_safepoint_end_time_epoch_ms;
// Relative
static jlong _last_app_time_ns;
@ -268,8 +270,8 @@ public:
return (os::javaTimeNanos() - _last_safepoint_end_time_ns) / (NANOUNITS / MILLIUNITS);
}
static jlong end_of_last_safepoint_ms() {
return _last_safepoint_end_time_ns / (NANOUNITS / MILLIUNITS);
static jlong end_of_last_safepoint_epoch_ms() {
return _last_safepoint_end_time_epoch_ms;
}
static jlong start_of_safepoint() {

View File

@ -479,7 +479,7 @@ void TieredThresholdPolicy::update_rate(jlong t, Method* m) {
// We don't update the rate if we've just came out of a safepoint.
// delta_s is the time since last safepoint in milliseconds.
jlong delta_s = t - SafepointTracing::end_of_last_safepoint_ms();
jlong delta_s = t - SafepointTracing::end_of_last_safepoint_epoch_ms();
jlong delta_t = t - (m->prev_time() != 0 ? m->prev_time() : start_time()); // milliseconds since the last measurement
// How many events were there since the last time?
int event_count = m->invocation_count() + m->backedge_count();
@ -504,7 +504,7 @@ void TieredThresholdPolicy::update_rate(jlong t, Method* m) {
// Check if this method has been stale from a given number of milliseconds.
// See select_task().
bool TieredThresholdPolicy::is_stale(jlong t, jlong timeout, Method* m) {
jlong delta_s = t - SafepointTracing::end_of_last_safepoint_ms();
jlong delta_s = t - SafepointTracing::end_of_last_safepoint_epoch_ms();
jlong delta_t = t - m->prev_time();
if (delta_t > timeout && delta_s > timeout) {
int event_count = m->invocation_count() + m->backedge_count();