Skip to content

Commit 2bf1ce4

Browse files
Xiaolong PengPaul Hohensee
authored andcommitted
8350313: Include timings for leaving safepoint in safepoint logging
Backport-of: 9ec46968fbfddf99a8349cb6903d24b1c2fdaf1d
1 parent 1329551 commit 2bf1ce4

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

src/hotspot/share/runtime/safepoint.cpp

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -472,6 +472,8 @@ void SafepointSynchronize::disarm_safepoint() {
472472
// operation has been carried out
473473
void SafepointSynchronize::end() {
474474
assert(Threads_lock->owned_by_self(), "must hold Threads_lock");
475+
SafepointTracing::leave();
476+
475477
EventSafepointEnd event;
476478
assert(Thread::current()->is_VM_thread(), "Only VM thread can execute a safepoint");
477479

@@ -866,6 +868,7 @@ void ThreadSafepointState::handle_polling_page_exception() {
866868

867869
jlong SafepointTracing::_last_safepoint_begin_time_ns = 0;
868870
jlong SafepointTracing::_last_safepoint_sync_time_ns = 0;
871+
jlong SafepointTracing::_last_safepoint_leave_time_ns = 0;
869872
jlong SafepointTracing::_last_safepoint_end_time_ns = 0;
870873
jlong SafepointTracing::_last_app_time_ns = 0;
871874
int SafepointTracing::_nof_threads = 0;
@@ -967,6 +970,10 @@ void SafepointTracing::synchronized(int nof_threads, int nof_running, int traps)
967970
RuntimeService::record_safepoint_synchronized(_last_safepoint_sync_time_ns - _last_safepoint_begin_time_ns);
968971
}
969972

973+
void SafepointTracing::leave() {
974+
_last_safepoint_leave_time_ns = os::javaTimeNanos();
975+
}
976+
970977
void SafepointTracing::end() {
971978
_last_safepoint_end_time_ns = os::javaTimeNanos();
972979

@@ -985,12 +992,14 @@ void SafepointTracing::end() {
985992
"Time since last: " JLONG_FORMAT " ns, "
986993
"Reaching safepoint: " JLONG_FORMAT " ns, "
987994
"At safepoint: " JLONG_FORMAT " ns, "
995+
"Leaving safepoint: " JLONG_FORMAT " ns, "
988996
"Total: " JLONG_FORMAT " ns",
989997
VM_Operation::name(_current_type),
990998
_last_app_time_ns,
991-
_last_safepoint_sync_time_ns - _last_safepoint_begin_time_ns,
992-
_last_safepoint_end_time_ns - _last_safepoint_sync_time_ns,
993-
_last_safepoint_end_time_ns - _last_safepoint_begin_time_ns
999+
_last_safepoint_sync_time_ns - _last_safepoint_begin_time_ns,
1000+
_last_safepoint_leave_time_ns - _last_safepoint_sync_time_ns,
1001+
_last_safepoint_end_time_ns - _last_safepoint_leave_time_ns,
1002+
_last_safepoint_end_time_ns - _last_safepoint_begin_time_ns
9941003
);
9951004

9961005
RuntimeService::record_safepoint_end(_last_safepoint_end_time_ns - _last_safepoint_sync_time_ns);

src/hotspot/share/runtime/safepoint.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,7 @@ class SafepointTracing : public AllStatic {
230230
// Absolute
231231
static jlong _last_safepoint_begin_time_ns;
232232
static jlong _last_safepoint_sync_time_ns;
233+
static jlong _last_safepoint_leave_time_ns;
233234
static jlong _last_safepoint_end_time_ns;
234235

235236
// Relative
@@ -251,6 +252,7 @@ class SafepointTracing : public AllStatic {
251252

252253
static void begin(VM_Operation::VMOp_Type type);
253254
static void synchronized(int nof_threads, int nof_running, int traps);
255+
static void leave();
254256
static void end();
255257

256258
static void statistics_exit_log();

0 commit comments

Comments
 (0)