8036128: Remove deprecated VM flag UseVMInterruptibleIO
Reviewed-by: acorn, dholmes, dcubed, coleenp
--- a/hotspot/src/os/solaris/vm/osThread_solaris.cpp Mon Mar 10 14:50:20 2014 -0400
+++ b/hotspot/src/os/solaris/vm/osThread_solaris.cpp Fri Mar 14 12:02:54 2014 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -41,7 +41,6 @@
_thread_id = 0;
sigemptyset(&_caller_sigmask);
- _saved_interrupt_thread_state = _thread_new;
_vm_created_thread = false;
}
--- a/hotspot/src/os/solaris/vm/osThread_solaris.hpp Mon Mar 10 14:50:20 2014 -0400
+++ b/hotspot/src/os/solaris/vm/osThread_solaris.hpp Fri Mar 14 12:02:54 2014 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -82,20 +82,6 @@
void set_ucontext(ucontext_t* ptr) { _ucontext = ptr; }
static void SR_handler(Thread* thread, ucontext_t* uc);
- // ***************************************************************
- // java.lang.Thread.interrupt state.
- // ***************************************************************
-
- private:
-
- JavaThreadState _saved_interrupt_thread_state; // the thread state before a system call -- restored afterward
-
- public:
-
-
- JavaThreadState saved_interrupt_thread_state() { return _saved_interrupt_thread_state; }
- void set_saved_interrupt_thread_state(JavaThreadState state) { _saved_interrupt_thread_state = state; }
-
static void handle_spinlock_contention(int tries); // Used for thread local eden locking
// ***************************************************************
--- a/hotspot/src/os/solaris/vm/os_solaris.cpp Mon Mar 10 14:50:20 2014 -0400
+++ b/hotspot/src/os/solaris/vm/os_solaris.cpp Fri Mar 14 12:02:54 2014 +0000
@@ -311,33 +311,6 @@
return localtime_r(clock, res);
}
-// interruptible infrastructure
-
-// setup_interruptible saves the thread state before going into an
-// interruptible system call.
-// The saved state is used to restore the thread to
-// its former state whether or not an interrupt is received.
-// Used by classloader os::read
-// os::restartable_read calls skip this layer and stay in _thread_in_native
-
-void os::Solaris::setup_interruptible(JavaThread* thread) {
-
- JavaThreadState thread_state = thread->thread_state();
-
- assert(thread_state != _thread_blocked, "Coming from the wrong thread");
- assert(thread_state != _thread_in_native, "Native threads skip setup_interruptible");
- OSThread* osthread = thread->osthread();
- osthread->set_saved_interrupt_thread_state(thread_state);
- thread->frame_anchor()->make_walkable(thread);
- ThreadStateTransition::transition(thread, thread_state, _thread_blocked);
-}
-
-JavaThread* os::Solaris::setup_interruptible() {
- JavaThread* thread = (JavaThread*)ThreadLocalStorage::thread();
- setup_interruptible(thread);
- return thread;
-}
-
void os::Solaris::try_enable_extended_io() {
typedef int (*enable_extended_FILE_stdio_t)(int, int);
@@ -353,41 +326,6 @@
}
}
-
-#ifdef ASSERT
-
-JavaThread* os::Solaris::setup_interruptible_native() {
- JavaThread* thread = (JavaThread*)ThreadLocalStorage::thread();
- JavaThreadState thread_state = thread->thread_state();
- assert(thread_state == _thread_in_native, "Assumed thread_in_native");
- return thread;
-}
-
-void os::Solaris::cleanup_interruptible_native(JavaThread* thread) {
- JavaThreadState thread_state = thread->thread_state();
- assert(thread_state == _thread_in_native, "Assumed thread_in_native");
-}
-#endif
-
-// cleanup_interruptible reverses the effects of setup_interruptible
-// setup_interruptible_already_blocked() does not need any cleanup.
-
-void os::Solaris::cleanup_interruptible(JavaThread* thread) {
- OSThread* osthread = thread->osthread();
-
- ThreadStateTransition::transition(thread, _thread_blocked, osthread->saved_interrupt_thread_state());
-}
-
-// I/O interruption related counters called in _INTERRUPTIBLE
-
-void os::Solaris::bump_interrupted_before_count() {
- RuntimeService::record_interrupted_before_count();
-}
-
-void os::Solaris::bump_interrupted_during_count() {
- RuntimeService::record_interrupted_during_count();
-}
-
static int _processors_online = 0;
jint os::Solaris::_os_thread_limit = 0;
@@ -3366,11 +3304,20 @@
// Read calls from inside the vm need to perform state transitions
size_t os::read(int fd, void *buf, unsigned int nBytes) {
- INTERRUPTIBLE_RETURN_INT_VM(::read(fd, buf, nBytes), os::Solaris::clear_interrupted);
+ size_t res;
+ JavaThread* thread = (JavaThread*)Thread::current();
+ assert(thread->thread_state() == _thread_in_vm, "Assumed _thread_in_vm");
+ ThreadBlockInVM tbiv(thread);
+ RESTARTABLE(::read(fd, buf, (size_t) nBytes), res);
+ return res;
}
size_t os::restartable_read(int fd, void *buf, unsigned int nBytes) {
- INTERRUPTIBLE_RETURN_INT(::read(fd, buf, nBytes), os::Solaris::clear_interrupted);
+ size_t res;
+ assert(((JavaThread*)Thread::current())->thread_state() == _thread_in_native,
+ "Assumed _thread_in_native");
+ RESTARTABLE(::read(fd, buf, (size_t) nBytes), res);
+ return res;
}
void os::naked_short_sleep(jlong ms) {
@@ -5305,6 +5252,8 @@
}
int os::available(int fd, jlong *bytes) {
+ assert(((JavaThread*)Thread::current())->thread_state() == _thread_in_native,
+ "Assumed _thread_in_native");
jlong cur, end;
int mode;
struct stat64 buf64;
@@ -5312,14 +5261,9 @@
if (::fstat64(fd, &buf64) >= 0) {
mode = buf64.st_mode;
if (S_ISCHR(mode) || S_ISFIFO(mode) || S_ISSOCK(mode)) {
- /*
- * XXX: is the following call interruptible? If so, this might
- * need to go through the INTERRUPT_IO() wrapper as for other
- * blocking, interruptible calls in this file.
- */
int n,ioctl_return;
- INTERRUPTIBLE(::ioctl(fd, FIONREAD, &n),ioctl_return,os::Solaris::clear_interrupted);
+ RESTARTABLE(::ioctl(fd, FIONREAD, &n), ioctl_return);
if (ioctl_return>= 0) {
*bytes = n;
return 1;
@@ -6250,7 +6194,11 @@
}
size_t os::write(int fd, const void *buf, unsigned int nBytes) {
- INTERRUPTIBLE_RETURN_INT(::write(fd, buf, nBytes), os::Solaris::clear_interrupted);
+ size_t res;
+ assert(((JavaThread*)Thread::current())->thread_state() == _thread_in_native,
+ "Assumed _thread_in_native");
+ RESTARTABLE((size_t) ::write(fd, buf, (size_t) nBytes), res);
+ return res;
}
int os::close(int fd) {
@@ -6262,11 +6210,15 @@
}
int os::recv(int fd, char* buf, size_t nBytes, uint flags) {
- INTERRUPTIBLE_RETURN_INT((int)::recv(fd, buf, nBytes, flags), os::Solaris::clear_interrupted);
+ assert(((JavaThread*)Thread::current())->thread_state() == _thread_in_native,
+ "Assumed _thread_in_native");
+ RESTARTABLE_RETURN_INT((int)::recv(fd, buf, nBytes, flags));
}
int os::send(int fd, char* buf, size_t nBytes, uint flags) {
- INTERRUPTIBLE_RETURN_INT((int)::send(fd, buf, nBytes, flags), os::Solaris::clear_interrupted);
+ assert(((JavaThread*)Thread::current())->thread_state() == _thread_in_native,
+ "Assumed _thread_in_native");
+ RESTARTABLE_RETURN_INT((int)::send(fd, buf, nBytes, flags));
}
int os::raw_send(int fd, char* buf, size_t nBytes, uint flags) {
@@ -6287,11 +6239,14 @@
pfd.fd = fd;
pfd.events = POLLIN;
+ assert(((JavaThread*)Thread::current())->thread_state() == _thread_in_native,
+ "Assumed _thread_in_native");
+
gettimeofday(&t, &aNull);
prevtime = ((julong)t.tv_sec * 1000) + t.tv_usec / 1000;
for(;;) {
- INTERRUPTIBLE_NORESTART(::poll(&pfd, 1, timeout), res, os::Solaris::clear_interrupted);
+ res = ::poll(&pfd, 1, timeout);
if(res == OS_ERR && errno == EINTR) {
if(timeout != -1) {
gettimeofday(&t, &aNull);
@@ -6307,17 +6262,30 @@
int os::connect(int fd, struct sockaddr *him, socklen_t len) {
int _result;
- INTERRUPTIBLE_NORESTART(::connect(fd, him, len), _result,\
- os::Solaris::clear_interrupted);
-
- // Depending on when thread interruption is reset, _result could be
- // one of two values when errno == EINTR
-
- if (((_result == OS_INTRPT) || (_result == OS_ERR))
- && (errno == EINTR)) {
+ _result = ::connect(fd, him, len);
+
+ // On Solaris, when a connect() call is interrupted, the connection
+ // can be established asynchronously (see 6343810). Subsequent calls
+ // to connect() must check the errno value which has the semantic
+ // described below (copied from the connect() man page). Handling
+ // of asynchronously established connections is required for both
+ // blocking and non-blocking sockets.
+ // EINTR The connection attempt was interrupted
+ // before any data arrived by the delivery of
+ // a signal. The connection, however, will be
+ // established asynchronously.
+ //
+ // EINPROGRESS The socket is non-blocking, and the connec-
+ // tion cannot be completed immediately.
+ //
+ // EALREADY The socket is non-blocking, and a previous
+ // connection attempt has not yet been com-
+ // pleted.
+ //
+ // EISCONN The socket is already connected.
+ if (_result == OS_ERR && errno == EINTR) {
/* restarting a connect() changes its errno semantics */
- INTERRUPTIBLE(::connect(fd, him, len), _result,\
- os::Solaris::clear_interrupted);
+ RESTARTABLE(::connect(fd, him, len), _result);
/* undo these changes */
if (_result == OS_ERR) {
if (errno == EALREADY) {
@@ -6335,20 +6303,23 @@
if (fd < 0) {
return OS_ERR;
}
- INTERRUPTIBLE_RETURN_INT((int)::accept(fd, him, len),\
- os::Solaris::clear_interrupted);
+ assert(((JavaThread*)Thread::current())->thread_state() == _thread_in_native,
+ "Assumed _thread_in_native");
+ RESTARTABLE_RETURN_INT((int)::accept(fd, him, len));
}
int os::recvfrom(int fd, char* buf, size_t nBytes, uint flags,
sockaddr* from, socklen_t* fromlen) {
- INTERRUPTIBLE_RETURN_INT((int)::recvfrom(fd, buf, nBytes, flags, from, fromlen),\
- os::Solaris::clear_interrupted);
+ assert(((JavaThread*)Thread::current())->thread_state() == _thread_in_native,
+ "Assumed _thread_in_native");
+ RESTARTABLE_RETURN_INT((int)::recvfrom(fd, buf, nBytes, flags, from, fromlen));
}
int os::sendto(int fd, char* buf, size_t len, uint flags,
struct sockaddr* to, socklen_t tolen) {
- INTERRUPTIBLE_RETURN_INT((int)::sendto(fd, buf, len, flags, to, tolen),\
- os::Solaris::clear_interrupted);
+ assert(((JavaThread*)Thread::current())->thread_state() == _thread_in_native,
+ "Assumed _thread_in_native");
+ RESTARTABLE_RETURN_INT((int)::sendto(fd, buf, len, flags, to, tolen));
}
int os::socket_available(int fd, jint *pbytes) {
@@ -6363,8 +6334,9 @@
}
int os::bind(int fd, struct sockaddr* him, socklen_t len) {
- INTERRUPTIBLE_RETURN_INT_NORESTART(::bind(fd, him, len),\
- os::Solaris::clear_interrupted);
+ assert(((JavaThread*)Thread::current())->thread_state() == _thread_in_native,
+ "Assumed _thread_in_native");
+ return ::bind(fd, him, len);
}
// Get the default path to the core file
--- a/hotspot/src/os/solaris/vm/os_solaris.hpp Mon Mar 10 14:50:20 2014 -0400
+++ b/hotspot/src/os/solaris/vm/os_solaris.hpp Fri Mar 14 12:02:54 2014 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -311,24 +311,6 @@
outdata, validity) : -1;
}
- enum {
- clear_interrupted = true
- };
- static void setup_interruptible(JavaThread* thread);
- static void setup_interruptible_already_blocked(JavaThread* thread);
- static JavaThread* setup_interruptible();
- static void cleanup_interruptible(JavaThread* thread);
-
- // perf counter incrementers used by _INTERRUPTIBLE
-
- static void bump_interrupted_before_count();
- static void bump_interrupted_during_count();
-
-#ifdef ASSERT
- static JavaThread* setup_interruptible_native();
- static void cleanup_interruptible_native(JavaThread* thread);
-#endif
-
static sigset_t* unblocked_signals();
static sigset_t* vm_signals();
static sigset_t* allowdebug_blocked_signals();
--- a/hotspot/src/os/solaris/vm/os_solaris.inline.hpp Mon Mar 10 14:50:20 2014 -0400
+++ b/hotspot/src/os/solaris/vm/os_solaris.inline.hpp Fri Mar 14 12:02:54 2014 +0000
@@ -111,104 +111,7 @@
//////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
-// macros for interruptible io and system calls and system call restarting
-
-#define _INTERRUPTIBLE(_setup, _cmd, _result, _thread, _clear, _before, _after, _int_enable) \
-do { \
- _setup; \
- _before; \
- OSThread* _osthread = _thread->osthread(); \
- if (_int_enable && _thread->has_last_Java_frame()) { \
- /* this is java interruptible io stuff */ \
- if (os::is_interrupted(_thread, _clear)) { \
- os::Solaris::bump_interrupted_before_count(); \
- _result = OS_INTRPT; \
- } else { \
- /* _cmd always expands to an assignment to _result */ \
- if ((_cmd) < 0 && errno == EINTR \
- && os::is_interrupted(_thread, _clear)) { \
- os::Solaris::bump_interrupted_during_count(); \
- _result = OS_INTRPT; \
- } \
- } \
- } else { \
- /* this is normal blocking io stuff */ \
- _cmd; \
- } \
- _after; \
-} while(false)
-
-// Interruptible io support + restarting of interrupted system calls
-
-#ifndef ASSERT
-
-#define INTERRUPTIBLE(_cmd, _result, _clear) do { \
- _INTERRUPTIBLE( JavaThread* _thread = (JavaThread*)ThreadLocalStorage::thread(),_result = _cmd, _result, _thread, _clear, , , UseVMInterruptibleIO); \
-} while((_result == OS_ERR) && (errno == EINTR))
-
-#else
-
-// This adds an assertion that it is only called from thread_in_native
-// The call overhead is skipped for performance in product mode
-#define INTERRUPTIBLE(_cmd, _result, _clear) do { \
- _INTERRUPTIBLE(JavaThread* _thread = os::Solaris::setup_interruptible_native(), _result = _cmd, _result, _thread, _clear, , os::Solaris::cleanup_interruptible_native(_thread), UseVMInterruptibleIO ); \
-} while((_result == OS_ERR) && (errno == EINTR))
-
-#endif
-
-// Used for calls from _thread_in_vm, not from _thread_in_native
-#define INTERRUPTIBLE_VM(_cmd, _result, _clear) do { \
- _INTERRUPTIBLE(JavaThread* _thread = os::Solaris::setup_interruptible(), _result = _cmd, _result, _thread, _clear, , os::Solaris::cleanup_interruptible(_thread), UseVMInterruptibleIO ); \
-} while((_result == OS_ERR) && (errno == EINTR))
-
-/* Use NORESTART when the system call cannot return EINTR, when something other
- than a system call is being invoked, or when the caller must do EINTR
- handling. */
-
-#ifndef ASSERT
-
-#define INTERRUPTIBLE_NORESTART(_cmd, _result, _clear) \
- _INTERRUPTIBLE( JavaThread* _thread = (JavaThread*)ThreadLocalStorage::thread(),_result = _cmd, _result, _thread, _clear, , , UseVMInterruptibleIO)
-
-#else
-
-// This adds an assertion that it is only called from thread_in_native
-// The call overhead is skipped for performance in product mode
-#define INTERRUPTIBLE_NORESTART(_cmd, _result, _clear) \
- _INTERRUPTIBLE(JavaThread* _thread = os::Solaris::setup_interruptible_native(), _result = _cmd, _result, _thread, _clear, , os::Solaris::cleanup_interruptible_native(_thread), UseVMInterruptibleIO )
-
-#endif
-
-// Don't attend to UseVMInterruptibleIO. Always allow interruption.
-// Also assumes that it is called from the _thread_blocked state.
-// Used by os_sleep().
-
-#define INTERRUPTIBLE_NORESTART_VM_ALWAYS(_cmd, _result, _thread, _clear) \
- _INTERRUPTIBLE(os::Solaris::setup_interruptible_already_blocked(_thread), _result = _cmd, _result, _thread, _clear, , , true )
-
-#define INTERRUPTIBLE_RETURN_INT(_cmd, _clear) do { \
- int _result; \
- do { \
- INTERRUPTIBLE(_cmd, _result, _clear); \
- } while((_result == OS_ERR) && (errno == EINTR)); \
- return _result; \
-} while(false)
-
-#define INTERRUPTIBLE_RETURN_INT_VM(_cmd, _clear) do { \
- int _result; \
- do { \
- INTERRUPTIBLE_VM(_cmd, _result, _clear); \
- } while((_result == OS_ERR) && (errno == EINTR)); \
- return _result; \
-} while(false)
-
-#define INTERRUPTIBLE_RETURN_INT_NORESTART(_cmd, _clear) do { \
- int _result; \
- INTERRUPTIBLE_NORESTART(_cmd, _result, _clear); \
- return _result; \
-} while(false)
-
-/* Use the RESTARTABLE macros when interruptible io is not needed */
+// macros for restartable system calls
#define RESTARTABLE(_cmd, _result) do { \
do { \
--- a/hotspot/src/share/vm/runtime/arguments.cpp Mon Mar 10 14:50:20 2014 -0400
+++ b/hotspot/src/share/vm/runtime/arguments.cpp Fri Mar 14 12:02:54 2014 +0000
@@ -305,6 +305,7 @@
{ "DesiredMethodLimit",
JDK_Version::jdk_update(7, 2), JDK_Version::jdk(8) },
#endif // PRODUCT
+ { "UseVMInterruptibleIO", JDK_Version::jdk(8), JDK_Version::jdk(9) },
{ NULL, JDK_Version(0), JDK_Version(0) }
};
@@ -3224,11 +3225,6 @@
return JNI_EINVAL;
}
FLAG_SET_CMDLINE(uintx, MaxDirectMemorySize, max_direct_memory_size);
- } else if (match_option(option, "-XX:+UseVMInterruptibleIO", &tail)) {
- // NOTE! In JDK 9, the UseVMInterruptibleIO flag will completely go
- // away and will cause VM initialization failures!
- warning("-XX:+UseVMInterruptibleIO is obsolete and will be removed in a future release.");
- FLAG_SET_CMDLINE(bool, UseVMInterruptibleIO, true);
#if !INCLUDE_MANAGEMENT
} else if (match_option(option, "-XX:+ManagementServer", &tail)) {
jio_fprintf(defaultStream::error_stream(),
--- a/hotspot/src/share/vm/runtime/globals.hpp Mon Mar 10 14:50:20 2014 -0400
+++ b/hotspot/src/share/vm/runtime/globals.hpp Fri Mar 14 12:02:54 2014 +0000
@@ -3842,11 +3842,6 @@
develop(bool, VerifyGenericSignatures, false, \
"Abort VM on erroneous or inconsistent generic signatures") \
\
- product(bool, UseVMInterruptibleIO, false, \
- "(Unstable, Solaris-specific) Thread interrupt before or with " \
- "EINTR for I/O operations results in OS_INTRPT. The default " \
- "value of this flag is true for JDK 6 and earlier") \
- \
diagnostic(bool, WhiteBoxAPI, false, \
"Enable internal testing APIs") \
\
--- a/hotspot/src/share/vm/services/runtimeService.cpp Mon Mar 10 14:50:20 2014 -0400
+++ b/hotspot/src/share/vm/services/runtimeService.cpp Fri Mar 14 12:02:54 2014 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -38,9 +38,6 @@
PerfCounter* RuntimeService::_total_safepoints = NULL;
PerfCounter* RuntimeService::_safepoint_time_ticks = NULL;
PerfCounter* RuntimeService::_application_time_ticks = NULL;
-PerfCounter* RuntimeService::_thread_interrupt_signaled_count = NULL;
-PerfCounter* RuntimeService::_interrupted_before_count = NULL;
-PerfCounter* RuntimeService::_interrupted_during_count = NULL;
void RuntimeService::init() {
// Make sure the VM version is initialized
@@ -70,26 +67,6 @@
PerfDataManager::create_constant(SUN_RT, "jvmVersion", PerfData::U_None,
(jlong) Abstract_VM_Version::jvm_version(), CHECK);
- // I/O interruption related counters
-
- // thread signaling via os::interrupt()
-
- _thread_interrupt_signaled_count =
- PerfDataManager::create_counter(SUN_RT,
- "threadInterruptSignaled", PerfData::U_Events, CHECK);
-
- // OS_INTRPT via "check before" in _INTERRUPTIBLE
-
- _interrupted_before_count =
- PerfDataManager::create_counter(SUN_RT, "interruptedBeforeIO",
- PerfData::U_Events, CHECK);
-
- // OS_INTRPT via "check during" in _INTERRUPTIBLE
-
- _interrupted_during_count =
- PerfDataManager::create_counter(SUN_RT, "interruptedDuringIO",
- PerfData::U_Events, CHECK);
-
// The capabilities counter is a binary representation of the VM capabilities in string.
// This string respresentation simplifies the implementation of the client side
// to parse the value.
@@ -181,22 +158,4 @@
Management::ticks_to_ms(_application_time_ticks->get_value()) : -1;
}
-void RuntimeService::record_interrupted_before_count() {
- if (UsePerfData) {
- _interrupted_before_count->inc();
- }
-}
-
-void RuntimeService::record_interrupted_during_count() {
- if (UsePerfData) {
- _interrupted_during_count->inc();
- }
-}
-
-void RuntimeService::record_thread_interrupt_signaled_count() {
- if (UsePerfData) {
- _thread_interrupt_signaled_count->inc();
- }
-}
-
#endif // INCLUDE_MANAGEMENT
--- a/hotspot/src/share/vm/services/runtimeService.hpp Mon Mar 10 14:50:20 2014 -0400
+++ b/hotspot/src/share/vm/services/runtimeService.hpp Fri Mar 14 12:02:54 2014 +0000
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -34,9 +34,6 @@
static PerfCounter* _total_safepoints;
static PerfCounter* _safepoint_time_ticks; // Accumulated time at safepoints
static PerfCounter* _application_time_ticks; // Accumulated time not at safepoints
- static PerfCounter* _thread_interrupt_signaled_count;// os:interrupt thr_kill
- static PerfCounter* _interrupted_before_count; // _INTERRUPTIBLE OS_INTRPT
- static PerfCounter* _interrupted_during_count; // _INTERRUPTIBLE OS_INTRPT
static TimeStamp _safepoint_timer;
static TimeStamp _app_timer;
@@ -58,10 +55,6 @@
static void record_safepoint_end() NOT_MANAGEMENT_RETURN;
static void record_application_start() NOT_MANAGEMENT_RETURN;
- // interruption events
- static void record_interrupted_before_count() NOT_MANAGEMENT_RETURN;
- static void record_interrupted_during_count() NOT_MANAGEMENT_RETURN;
- static void record_thread_interrupt_signaled_count() NOT_MANAGEMENT_RETURN;
};
#endif // SHARE_VM_SERVICES_RUNTIMESERVICE_HPP