Skip to content

Commit 732dca8

Browse files
Xiaolong PengPaul Hohensee
authored andcommitted
8350313: Include timings for leaving safepoint in safepoint logging
Reviewed-by: phh Backport-of: 9ec46968fbfddf99a8349cb6903d24b1c2fdaf1d
1 parent 2ba3cd6 commit 732dca8

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

src/hotspot/share/runtime/safepoint.cpp

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -500,6 +500,8 @@ void SafepointSynchronize::disarm_safepoint() {
500500
// operation has been carried out
501501
void SafepointSynchronize::end() {
502502
assert(Threads_lock->owned_by_self(), "must hold Threads_lock");
503+
SafepointTracing::leave();
504+
503505
EventSafepointEnd event;
504506
assert(Thread::current()->is_VM_thread(), "Only VM thread can execute a safepoint");
505507

@@ -1028,6 +1030,7 @@ void ThreadSafepointState::handle_polling_page_exception() {
10281030
jlong SafepointTracing::_last_safepoint_begin_time_ns = 0;
10291031
jlong SafepointTracing::_last_safepoint_sync_time_ns = 0;
10301032
jlong SafepointTracing::_last_safepoint_cleanup_time_ns = 0;
1033+
jlong SafepointTracing::_last_safepoint_leave_time_ns = 0;
10311034
jlong SafepointTracing::_last_safepoint_end_time_ns = 0;
10321035
jlong SafepointTracing::_last_app_time_ns = 0;
10331036
int SafepointTracing::_nof_threads = 0;
@@ -1139,6 +1142,10 @@ void SafepointTracing::cleanup() {
11391142
_last_safepoint_cleanup_time_ns = os::javaTimeNanos();
11401143
}
11411144

1145+
void SafepointTracing::leave() {
1146+
_last_safepoint_leave_time_ns = os::javaTimeNanos();
1147+
}
1148+
11421149
void SafepointTracing::end() {
11431150
_last_safepoint_end_time_ns = os::javaTimeNanos();
11441151

@@ -1161,12 +1168,14 @@ void SafepointTracing::end() {
11611168
"Reaching safepoint: " JLONG_FORMAT " ns, "
11621169
"Cleanup: " JLONG_FORMAT " ns, "
11631170
"At safepoint: " JLONG_FORMAT " ns, "
1171+
"Leaving safepoint: " JLONG_FORMAT " ns, "
11641172
"Total: " JLONG_FORMAT " ns",
11651173
VM_Operation::name(_current_type),
11661174
_last_app_time_ns,
11671175
_last_safepoint_sync_time_ns - _last_safepoint_begin_time_ns,
11681176
_last_safepoint_cleanup_time_ns - _last_safepoint_sync_time_ns,
1169-
_last_safepoint_end_time_ns - _last_safepoint_cleanup_time_ns,
1177+
_last_safepoint_leave_time_ns - _last_safepoint_cleanup_time_ns,
1178+
_last_safepoint_end_time_ns - _last_safepoint_leave_time_ns,
11701179
_last_safepoint_end_time_ns - _last_safepoint_begin_time_ns
11711180
);
11721181

src/hotspot/share/runtime/safepoint.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,7 @@ class SafepointTracing : public AllStatic {
246246
static jlong _last_safepoint_begin_time_ns;
247247
static jlong _last_safepoint_sync_time_ns;
248248
static jlong _last_safepoint_cleanup_time_ns;
249+
static jlong _last_safepoint_leave_time_ns;
249250
static jlong _last_safepoint_end_time_ns;
250251

251252
// Relative
@@ -269,6 +270,7 @@ class SafepointTracing : public AllStatic {
269270
static void begin(VM_Operation::VMOp_Type type);
270271
static void synchronized(int nof_threads, int nof_running, int traps);
271272
static void cleanup();
273+
static void leave();
272274
static void end();
273275

274276
static void statistics_exit_log();

0 commit comments

Comments
 (0)