mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 23:04:50 +02:00
Merge
This commit is contained in:
commit
defec7ae16
138 changed files with 600 additions and 852 deletions
|
@ -36,12 +36,7 @@
|
||||||
#include "runtime/basicLock.hpp"
|
#include "runtime/basicLock.hpp"
|
||||||
#include "runtime/biasedLocking.hpp"
|
#include "runtime/biasedLocking.hpp"
|
||||||
#include "runtime/sharedRuntime.hpp"
|
#include "runtime/sharedRuntime.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
#include "runtime/thread.inline.hpp"
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CC_INTERP
|
#ifndef CC_INTERP
|
||||||
#ifndef FAST_DISPATCH
|
#ifndef FAST_DISPATCH
|
||||||
|
|
|
@ -37,13 +37,8 @@
|
||||||
#include "runtime/sharedRuntime.hpp"
|
#include "runtime/sharedRuntime.hpp"
|
||||||
#include "runtime/stubCodeGenerator.hpp"
|
#include "runtime/stubCodeGenerator.hpp"
|
||||||
#include "runtime/stubRoutines.hpp"
|
#include "runtime/stubRoutines.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "utilities/top.hpp"
|
#include "utilities/top.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef COMPILER2
|
#ifdef COMPILER2
|
||||||
#include "opto/runtime.hpp"
|
#include "opto/runtime.hpp"
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -26,12 +26,7 @@
|
||||||
#include "runtime/deoptimization.hpp"
|
#include "runtime/deoptimization.hpp"
|
||||||
#include "runtime/frame.inline.hpp"
|
#include "runtime/frame.inline.hpp"
|
||||||
#include "runtime/stubRoutines.hpp"
|
#include "runtime/stubRoutines.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
#include "runtime/thread.inline.hpp"
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Implementation of the platform-specific part of StubRoutines - for
|
// Implementation of the platform-specific part of StubRoutines - for
|
||||||
// a description of how to extend it, see the stubRoutines.hpp file.
|
// a description of how to extend it, see the stubRoutines.hpp file.
|
||||||
|
|
|
@ -36,18 +36,7 @@
|
||||||
#include "runtime/basicLock.hpp"
|
#include "runtime/basicLock.hpp"
|
||||||
#include "runtime/biasedLocking.hpp"
|
#include "runtime/biasedLocking.hpp"
|
||||||
#include "runtime/sharedRuntime.hpp"
|
#include "runtime/sharedRuntime.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
#include "runtime/thread.inline.hpp"
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
// Implementation of InterpreterMacroAssembler
|
// Implementation of InterpreterMacroAssembler
|
||||||
|
|
|
@ -36,18 +36,7 @@
|
||||||
#include "runtime/basicLock.hpp"
|
#include "runtime/basicLock.hpp"
|
||||||
#include "runtime/biasedLocking.hpp"
|
#include "runtime/biasedLocking.hpp"
|
||||||
#include "runtime/sharedRuntime.hpp"
|
#include "runtime/sharedRuntime.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
#include "runtime/thread.inline.hpp"
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
// Implementation of InterpreterMacroAssembler
|
// Implementation of InterpreterMacroAssembler
|
||||||
|
|
|
@ -37,19 +37,8 @@
|
||||||
#include "runtime/sharedRuntime.hpp"
|
#include "runtime/sharedRuntime.hpp"
|
||||||
#include "runtime/stubCodeGenerator.hpp"
|
#include "runtime/stubCodeGenerator.hpp"
|
||||||
#include "runtime/stubRoutines.hpp"
|
#include "runtime/stubRoutines.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "utilities/top.hpp"
|
#include "utilities/top.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef COMPILER2
|
#ifdef COMPILER2
|
||||||
#include "opto/runtime.hpp"
|
#include "opto/runtime.hpp"
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -37,19 +37,8 @@
|
||||||
#include "runtime/sharedRuntime.hpp"
|
#include "runtime/sharedRuntime.hpp"
|
||||||
#include "runtime/stubCodeGenerator.hpp"
|
#include "runtime/stubCodeGenerator.hpp"
|
||||||
#include "runtime/stubRoutines.hpp"
|
#include "runtime/stubRoutines.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "utilities/top.hpp"
|
#include "utilities/top.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef COMPILER2
|
#ifdef COMPILER2
|
||||||
#include "opto/runtime.hpp"
|
#include "opto/runtime.hpp"
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -26,18 +26,7 @@
|
||||||
#include "runtime/deoptimization.hpp"
|
#include "runtime/deoptimization.hpp"
|
||||||
#include "runtime/frame.inline.hpp"
|
#include "runtime/frame.inline.hpp"
|
||||||
#include "runtime/stubRoutines.hpp"
|
#include "runtime/stubRoutines.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
#include "runtime/thread.inline.hpp"
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Implementation of the platform-specific part of StubRoutines - for
|
// Implementation of the platform-specific part of StubRoutines - for
|
||||||
// a description of how to extend it, see the stubRoutines.hpp file.
|
// a description of how to extend it, see the stubRoutines.hpp file.
|
||||||
|
|
|
@ -26,18 +26,7 @@
|
||||||
#include "runtime/deoptimization.hpp"
|
#include "runtime/deoptimization.hpp"
|
||||||
#include "runtime/frame.inline.hpp"
|
#include "runtime/frame.inline.hpp"
|
||||||
#include "runtime/stubRoutines.hpp"
|
#include "runtime/stubRoutines.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
#include "runtime/thread.inline.hpp"
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Implementation of the platform-specific part of StubRoutines - for
|
// Implementation of the platform-specific part of StubRoutines - for
|
||||||
// a description of how to extend it, see the stubRoutines.hpp file.
|
// a description of how to extend it, see the stubRoutines.hpp file.
|
||||||
|
|
|
@ -37,11 +37,6 @@
|
||||||
#include "runtime/basicLock.hpp"
|
#include "runtime/basicLock.hpp"
|
||||||
#include "runtime/biasedLocking.hpp"
|
#include "runtime/biasedLocking.hpp"
|
||||||
#include "runtime/sharedRuntime.hpp"
|
#include "runtime/sharedRuntime.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
#include "runtime/thread.inline.hpp"
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// This file is intentionally empty
|
// This file is intentionally empty
|
||||||
|
|
|
@ -38,14 +38,9 @@
|
||||||
#include "runtime/sharedRuntime.hpp"
|
#include "runtime/sharedRuntime.hpp"
|
||||||
#include "runtime/stubCodeGenerator.hpp"
|
#include "runtime/stubCodeGenerator.hpp"
|
||||||
#include "runtime/stubRoutines.hpp"
|
#include "runtime/stubRoutines.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "stack_zero.inline.hpp"
|
#include "stack_zero.inline.hpp"
|
||||||
#include "utilities/top.hpp"
|
#include "utilities/top.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef COMPILER2
|
#ifdef COMPILER2
|
||||||
#include "opto/runtime.hpp"
|
#include "opto/runtime.hpp"
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -27,9 +27,4 @@
|
||||||
#include "runtime/deoptimization.hpp"
|
#include "runtime/deoptimization.hpp"
|
||||||
#include "runtime/frame.inline.hpp"
|
#include "runtime/frame.inline.hpp"
|
||||||
#include "runtime/stubRoutines.hpp"
|
#include "runtime/stubRoutines.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
#include "runtime/thread.inline.hpp"
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
#include "mutex_bsd.inline.hpp"
|
#include "mutex_bsd.inline.hpp"
|
||||||
#include "runtime/interfaceSupport.hpp"
|
#include "runtime/interfaceSupport.hpp"
|
||||||
#include "runtime/mutex.hpp"
|
#include "runtime/mutex.hpp"
|
||||||
#include "thread_bsd.inline.hpp"
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "utilities/events.hpp"
|
#include "utilities/events.hpp"
|
||||||
|
|
||||||
// put OS-includes here
|
// put OS-includes here
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
|
|
||||||
#include "os_bsd.inline.hpp"
|
#include "os_bsd.inline.hpp"
|
||||||
#include "runtime/interfaceSupport.hpp"
|
#include "runtime/interfaceSupport.hpp"
|
||||||
#include "thread_bsd.inline.hpp"
|
#include "runtime/thread.inline.hpp"
|
||||||
|
|
||||||
|
|
||||||
// Reconciliation History
|
// Reconciliation History
|
||||||
|
|
|
@ -52,11 +52,11 @@
|
||||||
#include "runtime/sharedRuntime.hpp"
|
#include "runtime/sharedRuntime.hpp"
|
||||||
#include "runtime/statSampler.hpp"
|
#include "runtime/statSampler.hpp"
|
||||||
#include "runtime/stubRoutines.hpp"
|
#include "runtime/stubRoutines.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "runtime/threadCritical.hpp"
|
#include "runtime/threadCritical.hpp"
|
||||||
#include "runtime/timer.hpp"
|
#include "runtime/timer.hpp"
|
||||||
#include "services/attachListener.hpp"
|
#include "services/attachListener.hpp"
|
||||||
#include "services/runtimeService.hpp"
|
#include "services/runtimeService.hpp"
|
||||||
#include "thread_bsd.inline.hpp"
|
|
||||||
#include "utilities/decoder.hpp"
|
#include "utilities/decoder.hpp"
|
||||||
#include "utilities/defaultStream.hpp"
|
#include "utilities/defaultStream.hpp"
|
||||||
#include "utilities/events.hpp"
|
#include "utilities/events.hpp"
|
||||||
|
|
|
@ -23,8 +23,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "precompiled.hpp"
|
#include "precompiled.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "runtime/threadCritical.hpp"
|
#include "runtime/threadCritical.hpp"
|
||||||
#include "thread_bsd.inline.hpp"
|
|
||||||
|
|
||||||
// put OS-includes here
|
// put OS-includes here
|
||||||
# include <pthread.h>
|
# include <pthread.h>
|
||||||
|
|
|
@ -25,6 +25,10 @@
|
||||||
#ifndef OS_BSD_VM_THREAD_BSD_INLINE_HPP
|
#ifndef OS_BSD_VM_THREAD_BSD_INLINE_HPP
|
||||||
#define OS_BSD_VM_THREAD_BSD_INLINE_HPP
|
#define OS_BSD_VM_THREAD_BSD_INLINE_HPP
|
||||||
|
|
||||||
|
#ifndef SHARE_VM_RUNTIME_THREAD_INLINE_HPP_SCOPE
|
||||||
|
#error "This file should only be included from thread.inline.hpp"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "runtime/atomic.hpp"
|
#include "runtime/atomic.hpp"
|
||||||
#include "runtime/prefetch.hpp"
|
#include "runtime/prefetch.hpp"
|
||||||
#include "runtime/thread.hpp"
|
#include "runtime/thread.hpp"
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
#include "mutex_linux.inline.hpp"
|
#include "mutex_linux.inline.hpp"
|
||||||
#include "runtime/interfaceSupport.hpp"
|
#include "runtime/interfaceSupport.hpp"
|
||||||
#include "runtime/mutex.hpp"
|
#include "runtime/mutex.hpp"
|
||||||
#include "thread_linux.inline.hpp"
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "utilities/events.hpp"
|
#include "utilities/events.hpp"
|
||||||
|
|
||||||
// put OS-includes here
|
// put OS-includes here
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
|
|
||||||
#include "os_linux.inline.hpp"
|
#include "os_linux.inline.hpp"
|
||||||
#include "runtime/interfaceSupport.hpp"
|
#include "runtime/interfaceSupport.hpp"
|
||||||
#include "thread_linux.inline.hpp"
|
#include "runtime/thread.inline.hpp"
|
||||||
|
|
||||||
|
|
||||||
// Reconciliation History
|
// Reconciliation History
|
||||||
|
|
|
@ -52,11 +52,11 @@
|
||||||
#include "runtime/sharedRuntime.hpp"
|
#include "runtime/sharedRuntime.hpp"
|
||||||
#include "runtime/statSampler.hpp"
|
#include "runtime/statSampler.hpp"
|
||||||
#include "runtime/stubRoutines.hpp"
|
#include "runtime/stubRoutines.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "runtime/threadCritical.hpp"
|
#include "runtime/threadCritical.hpp"
|
||||||
#include "runtime/timer.hpp"
|
#include "runtime/timer.hpp"
|
||||||
#include "services/attachListener.hpp"
|
#include "services/attachListener.hpp"
|
||||||
#include "services/runtimeService.hpp"
|
#include "services/runtimeService.hpp"
|
||||||
#include "thread_linux.inline.hpp"
|
|
||||||
#include "utilities/decoder.hpp"
|
#include "utilities/decoder.hpp"
|
||||||
#include "utilities/defaultStream.hpp"
|
#include "utilities/defaultStream.hpp"
|
||||||
#include "utilities/events.hpp"
|
#include "utilities/events.hpp"
|
||||||
|
|
|
@ -23,8 +23,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "precompiled.hpp"
|
#include "precompiled.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "runtime/threadCritical.hpp"
|
#include "runtime/threadCritical.hpp"
|
||||||
#include "thread_linux.inline.hpp"
|
|
||||||
|
|
||||||
// put OS-includes here
|
// put OS-includes here
|
||||||
# include <pthread.h>
|
# include <pthread.h>
|
||||||
|
|
|
@ -25,6 +25,10 @@
|
||||||
#ifndef OS_LINUX_VM_THREAD_LINUX_INLINE_HPP
|
#ifndef OS_LINUX_VM_THREAD_LINUX_INLINE_HPP
|
||||||
#define OS_LINUX_VM_THREAD_LINUX_INLINE_HPP
|
#define OS_LINUX_VM_THREAD_LINUX_INLINE_HPP
|
||||||
|
|
||||||
|
#ifndef SHARE_VM_RUNTIME_THREAD_INLINE_HPP_SCOPE
|
||||||
|
#error "This file should only be included from thread.inline.hpp"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "runtime/atomic.hpp"
|
#include "runtime/atomic.hpp"
|
||||||
#include "runtime/prefetch.hpp"
|
#include "runtime/prefetch.hpp"
|
||||||
#include "runtime/thread.hpp"
|
#include "runtime/thread.hpp"
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
#include "mutex_solaris.inline.hpp"
|
#include "mutex_solaris.inline.hpp"
|
||||||
#include "runtime/interfaceSupport.hpp"
|
#include "runtime/interfaceSupport.hpp"
|
||||||
#include "runtime/mutex.hpp"
|
#include "runtime/mutex.hpp"
|
||||||
#include "thread_solaris.inline.hpp"
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "utilities/events.hpp"
|
#include "utilities/events.hpp"
|
||||||
|
|
||||||
// Solaris-specific include, therefore not in includeDB_*
|
// Solaris-specific include, therefore not in includeDB_*
|
||||||
|
|
|
@ -27,6 +27,6 @@
|
||||||
|
|
||||||
#include "os_solaris.inline.hpp"
|
#include "os_solaris.inline.hpp"
|
||||||
#include "runtime/interfaceSupport.hpp"
|
#include "runtime/interfaceSupport.hpp"
|
||||||
#include "thread_solaris.inline.hpp"
|
#include "runtime/thread.inline.hpp"
|
||||||
|
|
||||||
#endif // OS_SOLARIS_VM_MUTEX_SOLARIS_INLINE_HPP
|
#endif // OS_SOLARIS_VM_MUTEX_SOLARIS_INLINE_HPP
|
||||||
|
|
|
@ -52,12 +52,12 @@
|
||||||
#include "runtime/sharedRuntime.hpp"
|
#include "runtime/sharedRuntime.hpp"
|
||||||
#include "runtime/statSampler.hpp"
|
#include "runtime/statSampler.hpp"
|
||||||
#include "runtime/stubRoutines.hpp"
|
#include "runtime/stubRoutines.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "runtime/threadCritical.hpp"
|
#include "runtime/threadCritical.hpp"
|
||||||
#include "runtime/timer.hpp"
|
#include "runtime/timer.hpp"
|
||||||
#include "services/attachListener.hpp"
|
#include "services/attachListener.hpp"
|
||||||
#include "services/memTracker.hpp"
|
#include "services/memTracker.hpp"
|
||||||
#include "services/runtimeService.hpp"
|
#include "services/runtimeService.hpp"
|
||||||
#include "thread_solaris.inline.hpp"
|
|
||||||
#include "utilities/decoder.hpp"
|
#include "utilities/decoder.hpp"
|
||||||
#include "utilities/defaultStream.hpp"
|
#include "utilities/defaultStream.hpp"
|
||||||
#include "utilities/events.hpp"
|
#include "utilities/events.hpp"
|
||||||
|
|
|
@ -23,8 +23,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "precompiled.hpp"
|
#include "precompiled.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "runtime/threadCritical.hpp"
|
#include "runtime/threadCritical.hpp"
|
||||||
#include "thread_solaris.inline.hpp"
|
|
||||||
|
|
||||||
// OS-includes here
|
// OS-includes here
|
||||||
#include <thread.h>
|
#include <thread.h>
|
||||||
|
|
|
@ -25,6 +25,10 @@
|
||||||
#ifndef OS_SOLARIS_VM_THREAD_SOLARIS_INLINE_HPP
|
#ifndef OS_SOLARIS_VM_THREAD_SOLARIS_INLINE_HPP
|
||||||
#define OS_SOLARIS_VM_THREAD_SOLARIS_INLINE_HPP
|
#define OS_SOLARIS_VM_THREAD_SOLARIS_INLINE_HPP
|
||||||
|
|
||||||
|
#ifndef SHARE_VM_RUNTIME_THREAD_INLINE_HPP_SCOPE
|
||||||
|
#error "This file should only be included from thread.inline.hpp"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "runtime/atomic.hpp"
|
#include "runtime/atomic.hpp"
|
||||||
#include "runtime/prefetch.hpp"
|
#include "runtime/prefetch.hpp"
|
||||||
#include "runtime/thread.hpp"
|
#include "runtime/thread.hpp"
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
#include "mutex_windows.inline.hpp"
|
#include "mutex_windows.inline.hpp"
|
||||||
#include "runtime/interfaceSupport.hpp"
|
#include "runtime/interfaceSupport.hpp"
|
||||||
#include "runtime/mutex.hpp"
|
#include "runtime/mutex.hpp"
|
||||||
#include "thread_windows.inline.hpp"
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "utilities/events.hpp"
|
#include "utilities/events.hpp"
|
||||||
|
|
||||||
// put OS-includes here
|
// put OS-includes here
|
||||||
|
|
|
@ -27,6 +27,6 @@
|
||||||
|
|
||||||
#include "os_windows.inline.hpp"
|
#include "os_windows.inline.hpp"
|
||||||
#include "runtime/interfaceSupport.hpp"
|
#include "runtime/interfaceSupport.hpp"
|
||||||
#include "thread_windows.inline.hpp"
|
#include "runtime/thread.inline.hpp"
|
||||||
|
|
||||||
#endif // OS_WINDOWS_VM_MUTEX_WINDOWS_INLINE_HPP
|
#endif // OS_WINDOWS_VM_MUTEX_WINDOWS_INLINE_HPP
|
||||||
|
|
|
@ -55,11 +55,11 @@
|
||||||
#include "runtime/sharedRuntime.hpp"
|
#include "runtime/sharedRuntime.hpp"
|
||||||
#include "runtime/statSampler.hpp"
|
#include "runtime/statSampler.hpp"
|
||||||
#include "runtime/stubRoutines.hpp"
|
#include "runtime/stubRoutines.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "runtime/threadCritical.hpp"
|
#include "runtime/threadCritical.hpp"
|
||||||
#include "runtime/timer.hpp"
|
#include "runtime/timer.hpp"
|
||||||
#include "services/attachListener.hpp"
|
#include "services/attachListener.hpp"
|
||||||
#include "services/runtimeService.hpp"
|
#include "services/runtimeService.hpp"
|
||||||
#include "thread_windows.inline.hpp"
|
|
||||||
#include "utilities/decoder.hpp"
|
#include "utilities/decoder.hpp"
|
||||||
#include "utilities/defaultStream.hpp"
|
#include "utilities/defaultStream.hpp"
|
||||||
#include "utilities/events.hpp"
|
#include "utilities/events.hpp"
|
||||||
|
|
|
@ -23,8 +23,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "precompiled.hpp"
|
#include "precompiled.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "runtime/threadCritical.hpp"
|
#include "runtime/threadCritical.hpp"
|
||||||
#include "thread_windows.inline.hpp"
|
|
||||||
|
|
||||||
// OS-includes here
|
// OS-includes here
|
||||||
# include <windows.h>
|
# include <windows.h>
|
||||||
|
|
|
@ -25,6 +25,10 @@
|
||||||
#ifndef OS_WINDOWS_VM_THREAD_WINDOWS_INLINE_HPP
|
#ifndef OS_WINDOWS_VM_THREAD_WINDOWS_INLINE_HPP
|
||||||
#define OS_WINDOWS_VM_THREAD_WINDOWS_INLINE_HPP
|
#define OS_WINDOWS_VM_THREAD_WINDOWS_INLINE_HPP
|
||||||
|
|
||||||
|
#ifndef SHARE_VM_RUNTIME_THREAD_INLINE_HPP_SCOPE
|
||||||
|
#error "This file should only be included from thread.inline.hpp"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "runtime/atomic.hpp"
|
#include "runtime/atomic.hpp"
|
||||||
#include "runtime/prefetch.hpp"
|
#include "runtime/prefetch.hpp"
|
||||||
#include "runtime/thread.hpp"
|
#include "runtime/thread.hpp"
|
||||||
|
|
|
@ -48,8 +48,8 @@
|
||||||
#include "runtime/osThread.hpp"
|
#include "runtime/osThread.hpp"
|
||||||
#include "runtime/sharedRuntime.hpp"
|
#include "runtime/sharedRuntime.hpp"
|
||||||
#include "runtime/stubRoutines.hpp"
|
#include "runtime/stubRoutines.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "runtime/timer.hpp"
|
#include "runtime/timer.hpp"
|
||||||
#include "thread_bsd.inline.hpp"
|
|
||||||
#include "utilities/events.hpp"
|
#include "utilities/events.hpp"
|
||||||
#include "utilities/vmError.hpp"
|
#include "utilities/vmError.hpp"
|
||||||
|
|
||||||
|
|
|
@ -23,8 +23,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "precompiled.hpp"
|
#include "precompiled.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "runtime/threadLocalStorage.hpp"
|
#include "runtime/threadLocalStorage.hpp"
|
||||||
#include "thread_bsd.inline.hpp"
|
|
||||||
|
|
||||||
// Map stack pointer (%esp) to thread pointer for faster TLS access
|
// Map stack pointer (%esp) to thread pointer for faster TLS access
|
||||||
//
|
//
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
|
|
||||||
#include "precompiled.hpp"
|
#include "precompiled.hpp"
|
||||||
#include "runtime/frame.inline.hpp"
|
#include "runtime/frame.inline.hpp"
|
||||||
#include "thread_bsd.inline.hpp"
|
#include "runtime/thread.inline.hpp"
|
||||||
|
|
||||||
// For Forte Analyzer AsyncGetCallTrace profiling support - thread is
|
// For Forte Analyzer AsyncGetCallTrace profiling support - thread is
|
||||||
// currently interrupted by SIGPROF
|
// currently interrupted by SIGPROF
|
||||||
|
|
|
@ -54,8 +54,8 @@
|
||||||
#include "runtime/osThread.hpp"
|
#include "runtime/osThread.hpp"
|
||||||
#include "runtime/sharedRuntime.hpp"
|
#include "runtime/sharedRuntime.hpp"
|
||||||
#include "runtime/stubRoutines.hpp"
|
#include "runtime/stubRoutines.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "runtime/timer.hpp"
|
#include "runtime/timer.hpp"
|
||||||
#include "thread_bsd.inline.hpp"
|
|
||||||
#include "utilities/events.hpp"
|
#include "utilities/events.hpp"
|
||||||
#include "utilities/vmError.hpp"
|
#include "utilities/vmError.hpp"
|
||||||
|
|
||||||
|
|
|
@ -24,8 +24,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "precompiled.hpp"
|
#include "precompiled.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "runtime/threadLocalStorage.hpp"
|
#include "runtime/threadLocalStorage.hpp"
|
||||||
#include "thread_bsd.inline.hpp"
|
|
||||||
|
|
||||||
void ThreadLocalStorage::generate_code_for_get_thread() {
|
void ThreadLocalStorage::generate_code_for_get_thread() {
|
||||||
// nothing to do
|
// nothing to do
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
|
|
||||||
#include "precompiled.hpp"
|
#include "precompiled.hpp"
|
||||||
#include "runtime/frame.inline.hpp"
|
#include "runtime/frame.inline.hpp"
|
||||||
#include "thread_bsd.inline.hpp"
|
#include "runtime/thread.inline.hpp"
|
||||||
|
|
||||||
void JavaThread::cache_global_variables() {
|
void JavaThread::cache_global_variables() {
|
||||||
// nothing to do
|
// nothing to do
|
||||||
|
|
|
@ -48,8 +48,8 @@
|
||||||
#include "runtime/osThread.hpp"
|
#include "runtime/osThread.hpp"
|
||||||
#include "runtime/sharedRuntime.hpp"
|
#include "runtime/sharedRuntime.hpp"
|
||||||
#include "runtime/stubRoutines.hpp"
|
#include "runtime/stubRoutines.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "runtime/timer.hpp"
|
#include "runtime/timer.hpp"
|
||||||
#include "thread_linux.inline.hpp"
|
|
||||||
#include "utilities/events.hpp"
|
#include "utilities/events.hpp"
|
||||||
#include "utilities/vmError.hpp"
|
#include "utilities/vmError.hpp"
|
||||||
|
|
||||||
|
|
|
@ -23,8 +23,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "precompiled.hpp"
|
#include "precompiled.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "runtime/threadLocalStorage.hpp"
|
#include "runtime/threadLocalStorage.hpp"
|
||||||
#include "thread_linux.inline.hpp"
|
|
||||||
|
|
||||||
void ThreadLocalStorage::generate_code_for_get_thread() {
|
void ThreadLocalStorage::generate_code_for_get_thread() {
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
|
|
||||||
#include "precompiled.hpp"
|
#include "precompiled.hpp"
|
||||||
#include "runtime/frame.inline.hpp"
|
#include "runtime/frame.inline.hpp"
|
||||||
#include "thread_linux.inline.hpp"
|
#include "runtime/thread.inline.hpp"
|
||||||
|
|
||||||
// For Forte Analyzer AsyncGetCallTrace profiling support - thread is
|
// For Forte Analyzer AsyncGetCallTrace profiling support - thread is
|
||||||
// currently interrupted by SIGPROF
|
// currently interrupted by SIGPROF
|
||||||
|
|
|
@ -48,8 +48,8 @@
|
||||||
#include "runtime/osThread.hpp"
|
#include "runtime/osThread.hpp"
|
||||||
#include "runtime/sharedRuntime.hpp"
|
#include "runtime/sharedRuntime.hpp"
|
||||||
#include "runtime/stubRoutines.hpp"
|
#include "runtime/stubRoutines.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "runtime/timer.hpp"
|
#include "runtime/timer.hpp"
|
||||||
#include "thread_linux.inline.hpp"
|
|
||||||
#include "utilities/events.hpp"
|
#include "utilities/events.hpp"
|
||||||
#include "utilities/vmError.hpp"
|
#include "utilities/vmError.hpp"
|
||||||
|
|
||||||
|
|
|
@ -23,8 +23,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "precompiled.hpp"
|
#include "precompiled.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "runtime/threadLocalStorage.hpp"
|
#include "runtime/threadLocalStorage.hpp"
|
||||||
#include "thread_linux.inline.hpp"
|
|
||||||
|
|
||||||
// Map stack pointer (%esp) to thread pointer for faster TLS access
|
// Map stack pointer (%esp) to thread pointer for faster TLS access
|
||||||
//
|
//
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
|
|
||||||
#include "precompiled.hpp"
|
#include "precompiled.hpp"
|
||||||
#include "runtime/frame.inline.hpp"
|
#include "runtime/frame.inline.hpp"
|
||||||
#include "thread_linux.inline.hpp"
|
#include "runtime/thread.inline.hpp"
|
||||||
|
|
||||||
// For Forte Analyzer AsyncGetCallTrace profiling support - thread is
|
// For Forte Analyzer AsyncGetCallTrace profiling support - thread is
|
||||||
// currently interrupted by SIGPROF
|
// currently interrupted by SIGPROF
|
||||||
|
|
|
@ -49,8 +49,8 @@
|
||||||
#include "runtime/osThread.hpp"
|
#include "runtime/osThread.hpp"
|
||||||
#include "runtime/sharedRuntime.hpp"
|
#include "runtime/sharedRuntime.hpp"
|
||||||
#include "runtime/stubRoutines.hpp"
|
#include "runtime/stubRoutines.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "runtime/timer.hpp"
|
#include "runtime/timer.hpp"
|
||||||
#include "thread_linux.inline.hpp"
|
|
||||||
#include "utilities/events.hpp"
|
#include "utilities/events.hpp"
|
||||||
#include "utilities/vmError.hpp"
|
#include "utilities/vmError.hpp"
|
||||||
|
|
||||||
|
|
|
@ -24,8 +24,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "precompiled.hpp"
|
#include "precompiled.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "runtime/threadLocalStorage.hpp"
|
#include "runtime/threadLocalStorage.hpp"
|
||||||
#include "thread_linux.inline.hpp"
|
|
||||||
|
|
||||||
void ThreadLocalStorage::generate_code_for_get_thread() {
|
void ThreadLocalStorage::generate_code_for_get_thread() {
|
||||||
// nothing to do
|
// nothing to do
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
|
|
||||||
#include "precompiled.hpp"
|
#include "precompiled.hpp"
|
||||||
#include "runtime/frame.inline.hpp"
|
#include "runtime/frame.inline.hpp"
|
||||||
#include "thread_linux.inline.hpp"
|
#include "runtime/thread.inline.hpp"
|
||||||
|
|
||||||
void JavaThread::cache_global_variables() {
|
void JavaThread::cache_global_variables() {
|
||||||
// nothing to do
|
// nothing to do
|
||||||
|
|
|
@ -48,8 +48,8 @@
|
||||||
#include "runtime/osThread.hpp"
|
#include "runtime/osThread.hpp"
|
||||||
#include "runtime/sharedRuntime.hpp"
|
#include "runtime/sharedRuntime.hpp"
|
||||||
#include "runtime/stubRoutines.hpp"
|
#include "runtime/stubRoutines.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "runtime/timer.hpp"
|
#include "runtime/timer.hpp"
|
||||||
#include "thread_solaris.inline.hpp"
|
|
||||||
#include "utilities/events.hpp"
|
#include "utilities/events.hpp"
|
||||||
#include "utilities/vmError.hpp"
|
#include "utilities/vmError.hpp"
|
||||||
|
|
||||||
|
|
|
@ -23,8 +23,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "precompiled.hpp"
|
#include "precompiled.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "runtime/threadLocalStorage.hpp"
|
#include "runtime/threadLocalStorage.hpp"
|
||||||
#include "thread_solaris.inline.hpp"
|
|
||||||
|
|
||||||
// Provides an entry point we can link against and
|
// Provides an entry point we can link against and
|
||||||
// a buffer we can emit code into. The buffer is
|
// a buffer we can emit code into. The buffer is
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
|
|
||||||
#include "precompiled.hpp"
|
#include "precompiled.hpp"
|
||||||
#include "runtime/frame.inline.hpp"
|
#include "runtime/frame.inline.hpp"
|
||||||
#include "thread_solaris.inline.hpp"
|
#include "runtime/thread.inline.hpp"
|
||||||
|
|
||||||
// For Forte Analyzer AsyncGetCallTrace profiling support - thread is
|
// For Forte Analyzer AsyncGetCallTrace profiling support - thread is
|
||||||
// currently interrupted by SIGPROF
|
// currently interrupted by SIGPROF
|
||||||
|
|
|
@ -48,8 +48,8 @@
|
||||||
#include "runtime/osThread.hpp"
|
#include "runtime/osThread.hpp"
|
||||||
#include "runtime/sharedRuntime.hpp"
|
#include "runtime/sharedRuntime.hpp"
|
||||||
#include "runtime/stubRoutines.hpp"
|
#include "runtime/stubRoutines.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "runtime/timer.hpp"
|
#include "runtime/timer.hpp"
|
||||||
#include "thread_solaris.inline.hpp"
|
|
||||||
#include "utilities/events.hpp"
|
#include "utilities/events.hpp"
|
||||||
#include "utilities/vmError.hpp"
|
#include "utilities/vmError.hpp"
|
||||||
|
|
||||||
|
|
|
@ -23,8 +23,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "precompiled.hpp"
|
#include "precompiled.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "runtime/threadLocalStorage.hpp"
|
#include "runtime/threadLocalStorage.hpp"
|
||||||
#include "thread_solaris.inline.hpp"
|
|
||||||
|
|
||||||
#ifdef AMD64
|
#ifdef AMD64
|
||||||
extern "C" Thread* fs_load(ptrdiff_t tlsOffset);
|
extern "C" Thread* fs_load(ptrdiff_t tlsOffset);
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
|
|
||||||
#include "precompiled.hpp"
|
#include "precompiled.hpp"
|
||||||
#include "runtime/frame.inline.hpp"
|
#include "runtime/frame.inline.hpp"
|
||||||
#include "thread_solaris.inline.hpp"
|
#include "runtime/thread.inline.hpp"
|
||||||
|
|
||||||
// For Forte Analyzer AsyncGetCallTrace profiling support - thread is
|
// For Forte Analyzer AsyncGetCallTrace profiling support - thread is
|
||||||
// currently interrupted by SIGPROF
|
// currently interrupted by SIGPROF
|
||||||
|
|
|
@ -48,8 +48,8 @@
|
||||||
#include "runtime/osThread.hpp"
|
#include "runtime/osThread.hpp"
|
||||||
#include "runtime/sharedRuntime.hpp"
|
#include "runtime/sharedRuntime.hpp"
|
||||||
#include "runtime/stubRoutines.hpp"
|
#include "runtime/stubRoutines.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "runtime/timer.hpp"
|
#include "runtime/timer.hpp"
|
||||||
#include "thread_windows.inline.hpp"
|
|
||||||
#include "utilities/events.hpp"
|
#include "utilities/events.hpp"
|
||||||
#include "utilities/vmError.hpp"
|
#include "utilities/vmError.hpp"
|
||||||
|
|
||||||
|
|
|
@ -23,8 +23,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "precompiled.hpp"
|
#include "precompiled.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "runtime/threadLocalStorage.hpp"
|
#include "runtime/threadLocalStorage.hpp"
|
||||||
#include "thread_windows.inline.hpp"
|
|
||||||
|
|
||||||
// Provides an entry point we can link against and
|
// Provides an entry point we can link against and
|
||||||
// a buffer we can emit code into. The buffer is
|
// a buffer we can emit code into. The buffer is
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
|
|
||||||
#include "precompiled.hpp"
|
#include "precompiled.hpp"
|
||||||
#include "runtime/frame.inline.hpp"
|
#include "runtime/frame.inline.hpp"
|
||||||
#include "thread_windows.inline.hpp"
|
#include "runtime/thread.inline.hpp"
|
||||||
|
|
||||||
// For Forte Analyzer AsyncGetCallTrace profiling support - thread is
|
// For Forte Analyzer AsyncGetCallTrace profiling support - thread is
|
||||||
// currently interrupted by SIGPROF
|
// currently interrupted by SIGPROF
|
||||||
|
|
|
@ -47,20 +47,9 @@
|
||||||
#include "runtime/java.hpp"
|
#include "runtime/java.hpp"
|
||||||
#include "runtime/javaCalls.hpp"
|
#include "runtime/javaCalls.hpp"
|
||||||
#include "runtime/safepoint.hpp"
|
#include "runtime/safepoint.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "runtime/vframe.hpp"
|
#include "runtime/vframe.hpp"
|
||||||
#include "utilities/preserveException.hpp"
|
#include "utilities/preserveException.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define INJECTED_FIELD_COMPUTE_OFFSET(klass, name, signature, may_be_java) \
|
#define INJECTED_FIELD_COMPUTE_OFFSET(klass, name, signature, may_be_java) \
|
||||||
klass::_##name##_offset = JavaClasses::compute_injected_offset(JavaClasses::klass##_##name##_enum);
|
klass::_##name##_offset = JavaClasses::compute_injected_offset(JavaClasses::klass##_##name##_enum);
|
||||||
|
|
|
@ -40,19 +40,8 @@
|
||||||
#include "runtime/globals_extension.hpp"
|
#include "runtime/globals_extension.hpp"
|
||||||
#include "runtime/handles.inline.hpp"
|
#include "runtime/handles.inline.hpp"
|
||||||
#include "runtime/java.hpp"
|
#include "runtime/java.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "runtime/vmThread.hpp"
|
#include "runtime/vmThread.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// ConcurrentMarkSweepPolicy methods
|
// ConcurrentMarkSweepPolicy methods
|
||||||
|
|
|
@ -27,18 +27,7 @@
|
||||||
|
|
||||||
#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp"
|
#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp"
|
||||||
#include "gc_implementation/shared/concurrentGCThread.hpp"
|
#include "gc_implementation/shared/concurrentGCThread.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
#include "runtime/thread.inline.hpp"
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
class ConcurrentMarkSweepGeneration;
|
class ConcurrentMarkSweepGeneration;
|
||||||
class CMSCollector;
|
class CMSCollector;
|
||||||
|
|
|
@ -28,20 +28,8 @@
|
||||||
#include "runtime/atomic.hpp"
|
#include "runtime/atomic.hpp"
|
||||||
#include "runtime/mutexLocker.hpp"
|
#include "runtime/mutexLocker.hpp"
|
||||||
#include "runtime/safepoint.hpp"
|
#include "runtime/safepoint.hpp"
|
||||||
#include "runtime/thread.hpp"
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "utilities/workgroup.hpp"
|
#include "utilities/workgroup.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
bool DirtyCardQueue::apply_closure(CardTableEntryClosure* cl,
|
bool DirtyCardQueue::apply_closure(CardTableEntryClosure* cl,
|
||||||
bool consume,
|
bool consume,
|
||||||
|
|
|
@ -302,16 +302,28 @@ void G1BlockOffsetArray::check_all_cards(size_t start_card, size_t end_card) con
|
||||||
for (size_t c = start_card + 1; c <= end_card; c++ /* yeah! */) {
|
for (size_t c = start_card + 1; c <= end_card; c++ /* yeah! */) {
|
||||||
u_char entry = _array->offset_array(c);
|
u_char entry = _array->offset_array(c);
|
||||||
if (c - start_card > BlockOffsetArray::power_to_cards_back(1)) {
|
if (c - start_card > BlockOffsetArray::power_to_cards_back(1)) {
|
||||||
guarantee(entry > N_words, "Should be in logarithmic region");
|
guarantee(entry > N_words,
|
||||||
|
err_msg("Should be in logarithmic region - "
|
||||||
|
"entry: " UINT32_FORMAT ", "
|
||||||
|
"_array->offset_array(c): " UINT32_FORMAT ", "
|
||||||
|
"N_words: " UINT32_FORMAT,
|
||||||
|
entry, _array->offset_array(c), N_words));
|
||||||
}
|
}
|
||||||
size_t backskip = BlockOffsetArray::entry_to_cards_back(entry);
|
size_t backskip = BlockOffsetArray::entry_to_cards_back(entry);
|
||||||
size_t landing_card = c - backskip;
|
size_t landing_card = c - backskip;
|
||||||
guarantee(landing_card >= (start_card - 1), "Inv");
|
guarantee(landing_card >= (start_card - 1), "Inv");
|
||||||
if (landing_card >= start_card) {
|
if (landing_card >= start_card) {
|
||||||
guarantee(_array->offset_array(landing_card) <= entry, "monotonicity");
|
guarantee(_array->offset_array(landing_card) <= entry,
|
||||||
|
err_msg("Monotonicity - landing_card offset: " UINT32_FORMAT ", "
|
||||||
|
"entry: " UINT32_FORMAT,
|
||||||
|
_array->offset_array(landing_card), entry));
|
||||||
} else {
|
} else {
|
||||||
guarantee(landing_card == start_card - 1, "Tautology");
|
guarantee(landing_card == start_card - 1, "Tautology");
|
||||||
guarantee(_array->offset_array(landing_card) <= N_words, "Offset value");
|
// Note that N_words is the maximum offset value
|
||||||
|
guarantee(_array->offset_array(landing_card) <= N_words,
|
||||||
|
err_msg("landing card offset: " UINT32_FORMAT ", "
|
||||||
|
"N_words: " UINT32_FORMAT,
|
||||||
|
_array->offset_array(landing_card), N_words));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -536,17 +548,27 @@ void G1BlockOffsetArray::alloc_block_work2(HeapWord** threshold_, size_t* index_
|
||||||
// The offset can be 0 if the block starts on a boundary. That
|
// The offset can be 0 if the block starts on a boundary. That
|
||||||
// is checked by an assertion above.
|
// is checked by an assertion above.
|
||||||
size_t start_index = _array->index_for(blk_start);
|
size_t start_index = _array->index_for(blk_start);
|
||||||
HeapWord* boundary = _array->address_for_index(start_index);
|
HeapWord* boundary = _array->address_for_index(start_index);
|
||||||
assert((_array->offset_array(orig_index) == 0 &&
|
assert((_array->offset_array(orig_index) == 0 &&
|
||||||
blk_start == boundary) ||
|
blk_start == boundary) ||
|
||||||
(_array->offset_array(orig_index) > 0 &&
|
(_array->offset_array(orig_index) > 0 &&
|
||||||
_array->offset_array(orig_index) <= N_words),
|
_array->offset_array(orig_index) <= N_words),
|
||||||
"offset array should have been set");
|
err_msg("offset array should have been set - "
|
||||||
|
"orig_index offset: " UINT32_FORMAT ", "
|
||||||
|
"blk_start: " PTR_FORMAT ", "
|
||||||
|
"boundary: " PTR_FORMAT,
|
||||||
|
_array->offset_array(orig_index),
|
||||||
|
blk_start, boundary));
|
||||||
for (size_t j = orig_index + 1; j <= end_index; j++) {
|
for (size_t j = orig_index + 1; j <= end_index; j++) {
|
||||||
assert(_array->offset_array(j) > 0 &&
|
assert(_array->offset_array(j) > 0 &&
|
||||||
_array->offset_array(j) <=
|
_array->offset_array(j) <=
|
||||||
(u_char) (N_words+BlockOffsetArray::N_powers-1),
|
(u_char) (N_words+BlockOffsetArray::N_powers-1),
|
||||||
"offset array should have been set");
|
err_msg("offset array should have been set - "
|
||||||
|
UINT32_FORMAT " not > 0 OR "
|
||||||
|
UINT32_FORMAT " not <= " UINT32_FORMAT,
|
||||||
|
_array->offset_array(j),
|
||||||
|
_array->offset_array(j),
|
||||||
|
(u_char) (N_words+BlockOffsetArray::N_powers-1)));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -78,7 +78,9 @@ public:
|
||||||
virtual void resize(size_t new_word_size) = 0;
|
virtual void resize(size_t new_word_size) = 0;
|
||||||
|
|
||||||
virtual void set_bottom(HeapWord* new_bottom) {
|
virtual void set_bottom(HeapWord* new_bottom) {
|
||||||
assert(new_bottom <= _end, "new_bottom > _end");
|
assert(new_bottom <= _end,
|
||||||
|
err_msg("new_bottom (" PTR_FORMAT ") > _end (" PTR_FORMAT ")",
|
||||||
|
new_bottom, _end));
|
||||||
_bottom = new_bottom;
|
_bottom = new_bottom;
|
||||||
resize(pointer_delta(_end, _bottom));
|
resize(pointer_delta(_end, _bottom));
|
||||||
}
|
}
|
||||||
|
@ -134,29 +136,42 @@ private:
|
||||||
VirtualSpace _vs;
|
VirtualSpace _vs;
|
||||||
u_char* _offset_array; // byte array keeping backwards offsets
|
u_char* _offset_array; // byte array keeping backwards offsets
|
||||||
|
|
||||||
|
void check_index(size_t index, const char* msg) const {
|
||||||
|
assert(index < _vs.committed_size(),
|
||||||
|
err_msg("%s - "
|
||||||
|
"index: " SIZE_FORMAT ", _vs.committed_size: " SIZE_FORMAT,
|
||||||
|
msg, index, _vs.committed_size()));
|
||||||
|
}
|
||||||
|
|
||||||
|
void check_offset(size_t offset, const char* msg) const {
|
||||||
|
assert(offset <= N_words,
|
||||||
|
err_msg("%s - "
|
||||||
|
"offset: " UINT32_FORMAT", N_words: " UINT32_FORMAT,
|
||||||
|
msg, offset, N_words));
|
||||||
|
}
|
||||||
|
|
||||||
// Bounds checking accessors:
|
// Bounds checking accessors:
|
||||||
// For performance these have to devolve to array accesses in product builds.
|
// For performance these have to devolve to array accesses in product builds.
|
||||||
u_char offset_array(size_t index) const {
|
u_char offset_array(size_t index) const {
|
||||||
assert(index < _vs.committed_size(), "index out of range");
|
check_index(index, "index out of range");
|
||||||
return _offset_array[index];
|
return _offset_array[index];
|
||||||
}
|
}
|
||||||
|
|
||||||
void set_offset_array(size_t index, u_char offset) {
|
void set_offset_array(size_t index, u_char offset) {
|
||||||
assert(index < _vs.committed_size(), "index out of range");
|
check_index(index, "index out of range");
|
||||||
assert(offset <= N_words, "offset too large");
|
check_offset(offset, "offset too large");
|
||||||
_offset_array[index] = offset;
|
_offset_array[index] = offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
void set_offset_array(size_t index, HeapWord* high, HeapWord* low) {
|
void set_offset_array(size_t index, HeapWord* high, HeapWord* low) {
|
||||||
assert(index < _vs.committed_size(), "index out of range");
|
check_index(index, "index out of range");
|
||||||
assert(high >= low, "addresses out of order");
|
assert(high >= low, "addresses out of order");
|
||||||
assert(pointer_delta(high, low) <= N_words, "offset too large");
|
check_offset(pointer_delta(high, low), "offset too large");
|
||||||
_offset_array[index] = (u_char) pointer_delta(high, low);
|
_offset_array[index] = (u_char) pointer_delta(high, low);
|
||||||
}
|
}
|
||||||
|
|
||||||
void set_offset_array(HeapWord* left, HeapWord* right, u_char offset) {
|
void set_offset_array(HeapWord* left, HeapWord* right, u_char offset) {
|
||||||
assert(index_for(right - 1) < _vs.committed_size(),
|
check_index(index_for(right - 1), "right address out of range");
|
||||||
"right address out of range");
|
|
||||||
assert(left < right, "Heap addresses out of order");
|
assert(left < right, "Heap addresses out of order");
|
||||||
size_t num_cards = pointer_delta(right, left) >> LogN_words;
|
size_t num_cards = pointer_delta(right, left) >> LogN_words;
|
||||||
if (UseMemSetInBOT) {
|
if (UseMemSetInBOT) {
|
||||||
|
@ -171,7 +186,7 @@ private:
|
||||||
}
|
}
|
||||||
|
|
||||||
void set_offset_array(size_t left, size_t right, u_char offset) {
|
void set_offset_array(size_t left, size_t right, u_char offset) {
|
||||||
assert(right < _vs.committed_size(), "right address out of range");
|
check_index(right, "right index out of range");
|
||||||
assert(left <= right, "indexes out of order");
|
assert(left <= right, "indexes out of order");
|
||||||
size_t num_cards = right - left + 1;
|
size_t num_cards = right - left + 1;
|
||||||
if (UseMemSetInBOT) {
|
if (UseMemSetInBOT) {
|
||||||
|
@ -186,11 +201,10 @@ private:
|
||||||
}
|
}
|
||||||
|
|
||||||
void check_offset_array(size_t index, HeapWord* high, HeapWord* low) const {
|
void check_offset_array(size_t index, HeapWord* high, HeapWord* low) const {
|
||||||
assert(index < _vs.committed_size(), "index out of range");
|
check_index(index, "index out of range");
|
||||||
assert(high >= low, "addresses out of order");
|
assert(high >= low, "addresses out of order");
|
||||||
assert(pointer_delta(high, low) <= N_words, "offset too large");
|
check_offset(pointer_delta(high, low), "offset too large");
|
||||||
assert(_offset_array[index] == pointer_delta(high, low),
|
assert(_offset_array[index] == pointer_delta(high, low), "Wrong offset");
|
||||||
"Wrong offset");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool is_card_boundary(HeapWord* p) const;
|
bool is_card_boundary(HeapWord* p) const;
|
||||||
|
@ -481,7 +495,6 @@ class G1BlockOffsetArrayContigSpace: public G1BlockOffsetArray {
|
||||||
blk_start, blk_end);
|
blk_start, blk_end);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
G1BlockOffsetArrayContigSpace(G1BlockOffsetSharedArray* array, MemRegion mr);
|
G1BlockOffsetArrayContigSpace(G1BlockOffsetSharedArray* array, MemRegion mr);
|
||||||
|
|
||||||
|
|
|
@ -49,16 +49,17 @@ inline size_t G1BlockOffsetSharedArray::index_for(const void* p) const {
|
||||||
char* pc = (char*)p;
|
char* pc = (char*)p;
|
||||||
assert(pc >= (char*)_reserved.start() &&
|
assert(pc >= (char*)_reserved.start() &&
|
||||||
pc < (char*)_reserved.end(),
|
pc < (char*)_reserved.end(),
|
||||||
"p not in range.");
|
err_msg("p (" PTR_FORMAT ") not in reserved [" PTR_FORMAT ", " PTR_FORMAT ")",
|
||||||
|
p, (char*)_reserved.start(), (char*)_reserved.end()));
|
||||||
size_t delta = pointer_delta(pc, _reserved.start(), sizeof(char));
|
size_t delta = pointer_delta(pc, _reserved.start(), sizeof(char));
|
||||||
size_t result = delta >> LogN;
|
size_t result = delta >> LogN;
|
||||||
assert(result < _vs.committed_size(), "bad index from address");
|
check_index(result, "bad index from address");
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline HeapWord*
|
inline HeapWord*
|
||||||
G1BlockOffsetSharedArray::address_for_index(size_t index) const {
|
G1BlockOffsetSharedArray::address_for_index(size_t index) const {
|
||||||
assert(index < _vs.committed_size(), "bad index");
|
check_index(index, "index out of range");
|
||||||
HeapWord* result = _reserved.start() + (index << LogN_words);
|
HeapWord* result = _reserved.start() + (index << LogN_words);
|
||||||
assert(result >= _reserved.start() && result < _reserved.end(),
|
assert(result >= _reserved.start() && result < _reserved.end(),
|
||||||
err_msg("bad address from index result " PTR_FORMAT
|
err_msg("bad address from index result " PTR_FORMAT
|
||||||
|
|
|
@ -27,19 +27,7 @@
|
||||||
#include "gc_implementation/g1/heapRegion.hpp"
|
#include "gc_implementation/g1/heapRegion.hpp"
|
||||||
#include "gc_implementation/g1/satbQueue.hpp"
|
#include "gc_implementation/g1/satbQueue.hpp"
|
||||||
#include "runtime/mutexLocker.hpp"
|
#include "runtime/mutexLocker.hpp"
|
||||||
#include "runtime/thread.hpp"
|
#include "runtime/thread.inline.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
G1SATBCardTableModRefBS::G1SATBCardTableModRefBS(MemRegion whole_heap,
|
G1SATBCardTableModRefBS::G1SATBCardTableModRefBS(MemRegion whole_heap,
|
||||||
int max_covered_regions) :
|
int max_covered_regions) :
|
||||||
|
|
|
@ -28,18 +28,7 @@
|
||||||
#include "memory/allocation.inline.hpp"
|
#include "memory/allocation.inline.hpp"
|
||||||
#include "runtime/mutex.hpp"
|
#include "runtime/mutex.hpp"
|
||||||
#include "runtime/mutexLocker.hpp"
|
#include "runtime/mutexLocker.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
#include "runtime/thread.inline.hpp"
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
PtrQueue::PtrQueue(PtrQueueSet* qset, bool perm, bool active) :
|
PtrQueue::PtrQueue(PtrQueueSet* qset, bool perm, bool active) :
|
||||||
_qset(qset), _buf(NULL), _index(0), _active(active),
|
_qset(qset), _buf(NULL), _index(0), _active(active),
|
||||||
|
|
|
@ -52,14 +52,22 @@ void ThreadRootsMarkingTask::do_it(GCTaskManager* manager, uint which) {
|
||||||
PrintGCDetails && TraceParallelOldGCTasks, true, gclog_or_tty));
|
PrintGCDetails && TraceParallelOldGCTasks, true, gclog_or_tty));
|
||||||
ParCompactionManager* cm =
|
ParCompactionManager* cm =
|
||||||
ParCompactionManager::gc_thread_compaction_manager(which);
|
ParCompactionManager::gc_thread_compaction_manager(which);
|
||||||
|
|
||||||
PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm);
|
PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm);
|
||||||
|
CLDToOopClosure mark_and_push_from_clds(&mark_and_push_closure, true);
|
||||||
CodeBlobToOopClosure mark_and_push_in_blobs(&mark_and_push_closure, /*do_marking=*/ true);
|
CodeBlobToOopClosure mark_and_push_in_blobs(&mark_and_push_closure, /*do_marking=*/ true);
|
||||||
|
|
||||||
if (_java_thread != NULL)
|
if (_java_thread != NULL)
|
||||||
_java_thread->oops_do(&mark_and_push_closure, &mark_and_push_in_blobs);
|
_java_thread->oops_do(
|
||||||
|
&mark_and_push_closure,
|
||||||
|
&mark_and_push_from_clds,
|
||||||
|
&mark_and_push_in_blobs);
|
||||||
|
|
||||||
if (_vm_thread != NULL)
|
if (_vm_thread != NULL)
|
||||||
_vm_thread->oops_do(&mark_and_push_closure, &mark_and_push_in_blobs);
|
_vm_thread->oops_do(
|
||||||
|
&mark_and_push_closure,
|
||||||
|
&mark_and_push_from_clds,
|
||||||
|
&mark_and_push_in_blobs);
|
||||||
|
|
||||||
// Do the real work
|
// Do the real work
|
||||||
cm->follow_marking_stacks();
|
cm->follow_marking_stacks();
|
||||||
|
@ -89,7 +97,8 @@ void MarkFromRootsTask::do_it(GCTaskManager* manager, uint which) {
|
||||||
{
|
{
|
||||||
ResourceMark rm;
|
ResourceMark rm;
|
||||||
CodeBlobToOopClosure each_active_code_blob(&mark_and_push_closure, /*do_marking=*/ true);
|
CodeBlobToOopClosure each_active_code_blob(&mark_and_push_closure, /*do_marking=*/ true);
|
||||||
Threads::oops_do(&mark_and_push_closure, &each_active_code_blob);
|
CLDToOopClosure mark_and_push_from_cld(&mark_and_push_closure);
|
||||||
|
Threads::oops_do(&mark_and_push_closure, &mark_and_push_from_cld, &each_active_code_blob);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -495,8 +495,9 @@ void PSMarkSweep::mark_sweep_phase1(bool clear_all_softrefs) {
|
||||||
ParallelScavengeHeap::ParStrongRootsScope psrs;
|
ParallelScavengeHeap::ParStrongRootsScope psrs;
|
||||||
Universe::oops_do(mark_and_push_closure());
|
Universe::oops_do(mark_and_push_closure());
|
||||||
JNIHandles::oops_do(mark_and_push_closure()); // Global (strong) JNI handles
|
JNIHandles::oops_do(mark_and_push_closure()); // Global (strong) JNI handles
|
||||||
|
CLDToOopClosure mark_and_push_from_cld(mark_and_push_closure());
|
||||||
CodeBlobToOopClosure each_active_code_blob(mark_and_push_closure(), /*do_marking=*/ true);
|
CodeBlobToOopClosure each_active_code_blob(mark_and_push_closure(), /*do_marking=*/ true);
|
||||||
Threads::oops_do(mark_and_push_closure(), &each_active_code_blob);
|
Threads::oops_do(mark_and_push_closure(), &mark_and_push_from_cld, &each_active_code_blob);
|
||||||
ObjectSynchronizer::oops_do(mark_and_push_closure());
|
ObjectSynchronizer::oops_do(mark_and_push_closure());
|
||||||
FlatProfiler::oops_do(mark_and_push_closure());
|
FlatProfiler::oops_do(mark_and_push_closure());
|
||||||
Management::oops_do(mark_and_push_closure());
|
Management::oops_do(mark_and_push_closure());
|
||||||
|
@ -584,7 +585,8 @@ void PSMarkSweep::mark_sweep_phase3() {
|
||||||
// General strong roots.
|
// General strong roots.
|
||||||
Universe::oops_do(adjust_root_pointer_closure());
|
Universe::oops_do(adjust_root_pointer_closure());
|
||||||
JNIHandles::oops_do(adjust_root_pointer_closure()); // Global (strong) JNI handles
|
JNIHandles::oops_do(adjust_root_pointer_closure()); // Global (strong) JNI handles
|
||||||
Threads::oops_do(adjust_root_pointer_closure(), NULL);
|
CLDToOopClosure adjust_from_cld(adjust_root_pointer_closure());
|
||||||
|
Threads::oops_do(adjust_root_pointer_closure(), &adjust_from_cld, NULL);
|
||||||
ObjectSynchronizer::oops_do(adjust_root_pointer_closure());
|
ObjectSynchronizer::oops_do(adjust_root_pointer_closure());
|
||||||
FlatProfiler::oops_do(adjust_root_pointer_closure());
|
FlatProfiler::oops_do(adjust_root_pointer_closure());
|
||||||
Management::oops_do(adjust_root_pointer_closure());
|
Management::oops_do(adjust_root_pointer_closure());
|
||||||
|
|
|
@ -2436,7 +2436,8 @@ void PSParallelCompact::adjust_roots() {
|
||||||
// General strong roots.
|
// General strong roots.
|
||||||
Universe::oops_do(adjust_root_pointer_closure());
|
Universe::oops_do(adjust_root_pointer_closure());
|
||||||
JNIHandles::oops_do(adjust_root_pointer_closure()); // Global (strong) JNI handles
|
JNIHandles::oops_do(adjust_root_pointer_closure()); // Global (strong) JNI handles
|
||||||
Threads::oops_do(adjust_root_pointer_closure(), NULL);
|
CLDToOopClosure adjust_from_cld(adjust_root_pointer_closure());
|
||||||
|
Threads::oops_do(adjust_root_pointer_closure(), &adjust_from_cld, NULL);
|
||||||
ObjectSynchronizer::oops_do(adjust_root_pointer_closure());
|
ObjectSynchronizer::oops_do(adjust_root_pointer_closure());
|
||||||
FlatProfiler::oops_do(adjust_root_pointer_closure());
|
FlatProfiler::oops_do(adjust_root_pointer_closure());
|
||||||
Management::oops_do(adjust_root_pointer_closure());
|
Management::oops_do(adjust_root_pointer_closure());
|
||||||
|
|
|
@ -65,7 +65,8 @@ void ScavengeRootsTask::do_it(GCTaskManager* manager, uint which) {
|
||||||
case threads:
|
case threads:
|
||||||
{
|
{
|
||||||
ResourceMark rm;
|
ResourceMark rm;
|
||||||
Threads::oops_do(&roots_closure, NULL);
|
CLDToOopClosure* cld_closure = NULL; // Not needed. All CLDs are already visited.
|
||||||
|
Threads::oops_do(&roots_closure, cld_closure, NULL);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -120,13 +121,14 @@ void ThreadRootsTask::do_it(GCTaskManager* manager, uint which) {
|
||||||
|
|
||||||
PSPromotionManager* pm = PSPromotionManager::gc_thread_promotion_manager(which);
|
PSPromotionManager* pm = PSPromotionManager::gc_thread_promotion_manager(which);
|
||||||
PSScavengeRootsClosure roots_closure(pm);
|
PSScavengeRootsClosure roots_closure(pm);
|
||||||
|
CLDToOopClosure* roots_from_clds = NULL; // Not needed. All CLDs are already visited.
|
||||||
CodeBlobToOopClosure roots_in_blobs(&roots_closure, /*do_marking=*/ true);
|
CodeBlobToOopClosure roots_in_blobs(&roots_closure, /*do_marking=*/ true);
|
||||||
|
|
||||||
if (_java_thread != NULL)
|
if (_java_thread != NULL)
|
||||||
_java_thread->oops_do(&roots_closure, &roots_in_blobs);
|
_java_thread->oops_do(&roots_closure, roots_from_clds, &roots_in_blobs);
|
||||||
|
|
||||||
if (_vm_thread != NULL)
|
if (_vm_thread != NULL)
|
||||||
_vm_thread->oops_do(&roots_closure, &roots_in_blobs);
|
_vm_thread->oops_do(&roots_closure, roots_from_clds, &roots_in_blobs);
|
||||||
|
|
||||||
// Do the real work
|
// Do the real work
|
||||||
pm->drain_stacks(false);
|
pm->drain_stacks(false);
|
||||||
|
|
|
@ -28,19 +28,7 @@
|
||||||
#include "gc_implementation/shared/spaceDecorator.hpp"
|
#include "gc_implementation/shared/spaceDecorator.hpp"
|
||||||
#include "memory/sharedHeap.hpp"
|
#include "memory/sharedHeap.hpp"
|
||||||
#include "oops/oop.inline.hpp"
|
#include "oops/oop.inline.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
#include "runtime/thread.inline.hpp"
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
MutableNUMASpace::MutableNUMASpace(size_t alignment) : MutableSpace(alignment) {
|
MutableNUMASpace::MutableNUMASpace(size_t alignment) : MutableSpace(alignment) {
|
||||||
_lgrp_spaces = new (ResourceObj::C_HEAP, mtGC) GrowableArray<LGRPSpace*>(0, true);
|
_lgrp_spaces = new (ResourceObj::C_HEAP, mtGC) GrowableArray<LGRPSpace*>(0, true);
|
||||||
|
|
|
@ -30,19 +30,8 @@
|
||||||
#include "oops/oop.inline.hpp"
|
#include "oops/oop.inline.hpp"
|
||||||
#include "oops/instanceMirrorKlass.hpp"
|
#include "oops/instanceMirrorKlass.hpp"
|
||||||
#include "runtime/init.hpp"
|
#include "runtime/init.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "services/heapDumper.hpp"
|
#include "services/heapDumper.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef ASSERT
|
#ifdef ASSERT
|
||||||
|
|
|
@ -31,21 +31,9 @@
|
||||||
#include "oops/arrayOop.hpp"
|
#include "oops/arrayOop.hpp"
|
||||||
#include "prims/jvmtiExport.hpp"
|
#include "prims/jvmtiExport.hpp"
|
||||||
#include "runtime/sharedRuntime.hpp"
|
#include "runtime/sharedRuntime.hpp"
|
||||||
#include "runtime/thread.hpp"
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "services/lowMemoryDetector.hpp"
|
#include "services/lowMemoryDetector.hpp"
|
||||||
#include "utilities/copy.hpp"
|
#include "utilities/copy.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Inline allocation implementations.
|
// Inline allocation implementations.
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
|
|
||||||
#include "code/stubs.hpp"
|
#include "code/stubs.hpp"
|
||||||
#include "interpreter/bytecodes.hpp"
|
#include "interpreter/bytecodes.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "runtime/vmThread.hpp"
|
#include "runtime/vmThread.hpp"
|
||||||
#include "utilities/top.hpp"
|
#include "utilities/top.hpp"
|
||||||
#ifdef TARGET_ARCH_MODEL_x86_32
|
#ifdef TARGET_ARCH_MODEL_x86_32
|
||||||
|
@ -47,18 +48,6 @@
|
||||||
#ifdef TARGET_ARCH_MODEL_ppc
|
#ifdef TARGET_ARCH_MODEL_ppc
|
||||||
# include "interp_masm_ppc.hpp"
|
# include "interp_masm_ppc.hpp"
|
||||||
#endif
|
#endif
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// This file contains the platform-independent parts
|
// This file contains the platform-independent parts
|
||||||
// of the abstract interpreter and the abstract interpreter generator.
|
// of the abstract interpreter and the abstract interpreter generator.
|
||||||
|
|
|
@ -31,19 +31,8 @@
|
||||||
#include "oops/method.hpp"
|
#include "oops/method.hpp"
|
||||||
#include "runtime/frame.inline.hpp"
|
#include "runtime/frame.inline.hpp"
|
||||||
#include "runtime/signature.hpp"
|
#include "runtime/signature.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "utilities/top.hpp"
|
#include "utilities/top.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// The InterpreterRuntime is called by the interpreter for everything
|
// The InterpreterRuntime is called by the interpreter for everything
|
||||||
// that cannot/should not be dealt with in assembly and needs C support.
|
// that cannot/should not be dealt with in assembly and needs C support.
|
||||||
|
|
|
@ -43,19 +43,8 @@
|
||||||
#include "runtime/handles.inline.hpp"
|
#include "runtime/handles.inline.hpp"
|
||||||
#include "runtime/reflection.hpp"
|
#include "runtime/reflection.hpp"
|
||||||
#include "runtime/signature.hpp"
|
#include "runtime/signature.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "runtime/vmThread.hpp"
|
#include "runtime/vmThread.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------------------------------------------------
|
||||||
// Implementation of FieldAccessInfo
|
// Implementation of FieldAccessInfo
|
||||||
|
|
|
@ -290,7 +290,7 @@ void TreeList<Chunk_t, FreeList_t>::return_chunk_at_tail(TreeChunk<Chunk_t, Free
|
||||||
assert(chunk->list() == this, "list should be set for chunk");
|
assert(chunk->list() == this, "list should be set for chunk");
|
||||||
assert(tail() != NULL, "The tree list is embedded in the first chunk");
|
assert(tail() != NULL, "The tree list is embedded in the first chunk");
|
||||||
// which means that the list can never be empty.
|
// which means that the list can never be empty.
|
||||||
assert(!verify_chunk_in_free_list(chunk), "Double entry");
|
assert(!this->verify_chunk_in_free_list(chunk), "Double entry");
|
||||||
assert(head() == NULL || head()->prev() == NULL, "list invariant");
|
assert(head() == NULL || head()->prev() == NULL, "list invariant");
|
||||||
assert(tail() == NULL || tail()->next() == NULL, "list invariant");
|
assert(tail() == NULL || tail()->next() == NULL, "list invariant");
|
||||||
|
|
||||||
|
@ -300,7 +300,7 @@ void TreeList<Chunk_t, FreeList_t>::return_chunk_at_tail(TreeChunk<Chunk_t, Free
|
||||||
|
|
||||||
assert(!tail() || size() == tail()->size(), "Wrong sized chunk in list");
|
assert(!tail() || size() == tail()->size(), "Wrong sized chunk in list");
|
||||||
FreeList_t<Chunk_t>::increment_count();
|
FreeList_t<Chunk_t>::increment_count();
|
||||||
debug_only(increment_returned_bytes_by(chunk->size()*sizeof(HeapWord));)
|
debug_only(this->increment_returned_bytes_by(chunk->size()*sizeof(HeapWord));)
|
||||||
assert(head() == NULL || head()->prev() == NULL, "list invariant");
|
assert(head() == NULL || head()->prev() == NULL, "list invariant");
|
||||||
assert(tail() == NULL || tail()->next() == NULL, "list invariant");
|
assert(tail() == NULL || tail()->next() == NULL, "list invariant");
|
||||||
}
|
}
|
||||||
|
@ -314,7 +314,7 @@ void TreeList<Chunk_t, FreeList_t>::return_chunk_at_head(TreeChunk<Chunk_t, Free
|
||||||
assert(chunk->list() == this, "list should be set for chunk");
|
assert(chunk->list() == this, "list should be set for chunk");
|
||||||
assert(head() != NULL, "The tree list is embedded in the first chunk");
|
assert(head() != NULL, "The tree list is embedded in the first chunk");
|
||||||
assert(chunk != NULL, "returning NULL chunk");
|
assert(chunk != NULL, "returning NULL chunk");
|
||||||
assert(!verify_chunk_in_free_list(chunk), "Double entry");
|
assert(!this->verify_chunk_in_free_list(chunk), "Double entry");
|
||||||
assert(head() == NULL || head()->prev() == NULL, "list invariant");
|
assert(head() == NULL || head()->prev() == NULL, "list invariant");
|
||||||
assert(tail() == NULL || tail()->next() == NULL, "list invariant");
|
assert(tail() == NULL || tail()->next() == NULL, "list invariant");
|
||||||
|
|
||||||
|
@ -328,7 +328,7 @@ void TreeList<Chunk_t, FreeList_t>::return_chunk_at_head(TreeChunk<Chunk_t, Free
|
||||||
head()->link_after(chunk);
|
head()->link_after(chunk);
|
||||||
assert(!head() || size() == head()->size(), "Wrong sized chunk in list");
|
assert(!head() || size() == head()->size(), "Wrong sized chunk in list");
|
||||||
FreeList_t<Chunk_t>::increment_count();
|
FreeList_t<Chunk_t>::increment_count();
|
||||||
debug_only(increment_returned_bytes_by(chunk->size()*sizeof(HeapWord));)
|
debug_only(this->increment_returned_bytes_by(chunk->size()*sizeof(HeapWord));)
|
||||||
assert(head() == NULL || head()->prev() == NULL, "list invariant");
|
assert(head() == NULL || head()->prev() == NULL, "list invariant");
|
||||||
assert(tail() == NULL || tail()->next() == NULL, "list invariant");
|
assert(tail() == NULL || tail()->next() == NULL, "list invariant");
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,19 +37,8 @@
|
||||||
#include "runtime/globals_extension.hpp"
|
#include "runtime/globals_extension.hpp"
|
||||||
#include "runtime/handles.inline.hpp"
|
#include "runtime/handles.inline.hpp"
|
||||||
#include "runtime/java.hpp"
|
#include "runtime/java.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "runtime/vmThread.hpp"
|
#include "runtime/vmThread.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifndef SERIALGC
|
#ifndef SERIALGC
|
||||||
#include "gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.hpp"
|
#include "gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.hpp"
|
||||||
#include "gc_implementation/concurrentMarkSweep/cmsGCAdaptivePolicyCounters.hpp"
|
#include "gc_implementation/concurrentMarkSweep/cmsGCAdaptivePolicyCounters.hpp"
|
||||||
|
|
|
@ -38,20 +38,9 @@
|
||||||
#include "oops/instanceRefKlass.hpp"
|
#include "oops/instanceRefKlass.hpp"
|
||||||
#include "oops/oop.inline.hpp"
|
#include "oops/oop.inline.hpp"
|
||||||
#include "runtime/java.hpp"
|
#include "runtime/java.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "utilities/copy.hpp"
|
#include "utilities/copy.hpp"
|
||||||
#include "utilities/stack.inline.hpp"
|
#include "utilities/stack.inline.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// DefNewGeneration functions.
|
// DefNewGeneration functions.
|
||||||
|
|
|
@ -29,18 +29,7 @@
|
||||||
#include "memory/freeBlockDictionary.hpp"
|
#include "memory/freeBlockDictionary.hpp"
|
||||||
#include "memory/metablock.hpp"
|
#include "memory/metablock.hpp"
|
||||||
#include "memory/metachunk.hpp"
|
#include "memory/metachunk.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
#include "runtime/thread.inline.hpp"
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef PRODUCT
|
#ifndef PRODUCT
|
||||||
template <class Chunk> Mutex* FreeBlockDictionary<Chunk>::par_lock() const {
|
template <class Chunk> Mutex* FreeBlockDictionary<Chunk>::par_lock() const {
|
||||||
|
|
|
@ -29,21 +29,18 @@
|
||||||
#include "memory/genCollectedHeap.hpp"
|
#include "memory/genCollectedHeap.hpp"
|
||||||
#include "memory/universe.hpp"
|
#include "memory/universe.hpp"
|
||||||
#include "oops/oop.hpp"
|
#include "oops/oop.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
#ifdef TARGET_OS_FAMILY_linux
|
||||||
# include "os_linux.inline.hpp"
|
# include "os_linux.inline.hpp"
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
#endif
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
#ifdef TARGET_OS_FAMILY_solaris
|
||||||
# include "os_solaris.inline.hpp"
|
# include "os_solaris.inline.hpp"
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
#endif
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
#ifdef TARGET_OS_FAMILY_windows
|
||||||
# include "os_windows.inline.hpp"
|
# include "os_windows.inline.hpp"
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
#endif
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
#ifdef TARGET_OS_FAMILY_bsd
|
||||||
# include "os_bsd.inline.hpp"
|
# include "os_bsd.inline.hpp"
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// The direct lock/unlock calls do not force a collection if an unlock
|
// The direct lock/unlock calls do not force a collection if an unlock
|
||||||
|
|
|
@ -43,21 +43,10 @@
|
||||||
#include "runtime/fprofiler.hpp"
|
#include "runtime/fprofiler.hpp"
|
||||||
#include "runtime/handles.inline.hpp"
|
#include "runtime/handles.inline.hpp"
|
||||||
#include "runtime/synchronizer.hpp"
|
#include "runtime/synchronizer.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "runtime/vmThread.hpp"
|
#include "runtime/vmThread.hpp"
|
||||||
#include "utilities/copy.hpp"
|
#include "utilities/copy.hpp"
|
||||||
#include "utilities/events.hpp"
|
#include "utilities/events.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void GenMarkSweep::invoke_at_safepoint(int level, ReferenceProcessor* rp,
|
void GenMarkSweep::invoke_at_safepoint(int level, ReferenceProcessor* rp,
|
||||||
bool clear_all_softrefs) {
|
bool clear_all_softrefs) {
|
||||||
|
|
|
@ -30,6 +30,10 @@ void KlassToOopClosure::do_klass(Klass* k) {
|
||||||
k->oops_do(_oop_closure);
|
k->oops_do(_oop_closure);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CLDToOopClosure::do_cld(ClassLoaderData* cld) {
|
||||||
|
cld->oops_do(_oop_closure, &_klass_closure, _must_claim_cld);
|
||||||
|
}
|
||||||
|
|
||||||
void ObjectToOopClosure::do_object(oop obj) {
|
void ObjectToOopClosure::do_object(oop obj) {
|
||||||
obj->oop_iterate(_cl);
|
obj->oop_iterate(_cl);
|
||||||
}
|
}
|
||||||
|
|
|
@ -135,6 +135,20 @@ class KlassToOopClosure : public KlassClosure {
|
||||||
virtual void do_klass(Klass* k);
|
virtual void do_klass(Klass* k);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class CLDToOopClosure {
|
||||||
|
OopClosure* _oop_closure;
|
||||||
|
KlassToOopClosure _klass_closure;
|
||||||
|
bool _must_claim_cld;
|
||||||
|
|
||||||
|
public:
|
||||||
|
CLDToOopClosure(OopClosure* oop_closure, bool must_claim_cld = true) :
|
||||||
|
_oop_closure(oop_closure),
|
||||||
|
_klass_closure(oop_closure),
|
||||||
|
_must_claim_cld(must_claim_cld) {}
|
||||||
|
|
||||||
|
void do_cld(ClassLoaderData* cld);
|
||||||
|
};
|
||||||
|
|
||||||
// ObjectClosure is used for iterating through an object space
|
// ObjectClosure is used for iterating through an object space
|
||||||
|
|
||||||
class ObjectClosure : public Closure {
|
class ObjectClosure : public Closure {
|
||||||
|
|
|
@ -26,18 +26,7 @@
|
||||||
#include "memory/allocation.inline.hpp"
|
#include "memory/allocation.inline.hpp"
|
||||||
#include "memory/resourceArea.hpp"
|
#include "memory/resourceArea.hpp"
|
||||||
#include "runtime/mutexLocker.hpp"
|
#include "runtime/mutexLocker.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
#include "runtime/thread.inline.hpp"
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//------------------------------ResourceMark-----------------------------------
|
//------------------------------ResourceMark-----------------------------------
|
||||||
debug_only(int ResourceArea::_warned;) // to suppress multiple warnings
|
debug_only(int ResourceArea::_warned;) // to suppress multiple warnings
|
||||||
|
|
|
@ -26,18 +26,7 @@
|
||||||
#define SHARE_VM_MEMORY_RESOURCEAREA_HPP
|
#define SHARE_VM_MEMORY_RESOURCEAREA_HPP
|
||||||
|
|
||||||
#include "memory/allocation.hpp"
|
#include "memory/allocation.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
#include "runtime/thread.inline.hpp"
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// The resource area holds temporary data structures in the VM.
|
// The resource area holds temporary data structures in the VM.
|
||||||
// The actual allocation areas are thread local. Typical usage:
|
// The actual allocation areas are thread local. Typical usage:
|
||||||
|
|
|
@ -154,10 +154,12 @@ void SharedHeap::process_strong_roots(bool activate_scope,
|
||||||
if (!_process_strong_tasks->is_task_claimed(SH_PS_JNIHandles_oops_do))
|
if (!_process_strong_tasks->is_task_claimed(SH_PS_JNIHandles_oops_do))
|
||||||
JNIHandles::oops_do(roots);
|
JNIHandles::oops_do(roots);
|
||||||
// All threads execute this; the individual threads are task groups.
|
// All threads execute this; the individual threads are task groups.
|
||||||
|
CLDToOopClosure roots_from_clds(roots);
|
||||||
|
CLDToOopClosure* roots_from_clds_p = (is_scavenging ? NULL : &roots_from_clds);
|
||||||
if (ParallelGCThreads > 0) {
|
if (ParallelGCThreads > 0) {
|
||||||
Threads::possibly_parallel_oops_do(roots, code_roots);
|
Threads::possibly_parallel_oops_do(roots, roots_from_clds_p ,code_roots);
|
||||||
} else {
|
} else {
|
||||||
Threads::oops_do(roots, code_roots);
|
Threads::oops_do(roots, roots_from_clds_p, code_roots);
|
||||||
}
|
}
|
||||||
if (!_process_strong_tasks-> is_task_claimed(SH_PS_ObjectSynchronizer_oops_do))
|
if (!_process_strong_tasks-> is_task_claimed(SH_PS_ObjectSynchronizer_oops_do))
|
||||||
ObjectSynchronizer::oops_do(roots);
|
ObjectSynchronizer::oops_do(roots);
|
||||||
|
|
|
@ -790,7 +790,9 @@ ALL_SINCE_SAVE_MARKS_CLOSURES(ContigSpace_OOP_SINCE_SAVE_MARKS_DEFN)
|
||||||
|
|
||||||
// Very general, slow implementation.
|
// Very general, slow implementation.
|
||||||
HeapWord* ContiguousSpace::block_start_const(const void* p) const {
|
HeapWord* ContiguousSpace::block_start_const(const void* p) const {
|
||||||
assert(MemRegion(bottom(), end()).contains(p), "p not in space");
|
assert(MemRegion(bottom(), end()).contains(p),
|
||||||
|
err_msg("p (" PTR_FORMAT ") not in space [" PTR_FORMAT ", " PTR_FORMAT ")",
|
||||||
|
p, bottom(), end()));
|
||||||
if (p >= top()) {
|
if (p >= top()) {
|
||||||
return top();
|
return top();
|
||||||
} else {
|
} else {
|
||||||
|
@ -800,19 +802,27 @@ HeapWord* ContiguousSpace::block_start_const(const void* p) const {
|
||||||
last = cur;
|
last = cur;
|
||||||
cur += oop(cur)->size();
|
cur += oop(cur)->size();
|
||||||
}
|
}
|
||||||
assert(oop(last)->is_oop(), "Should be an object start");
|
assert(oop(last)->is_oop(),
|
||||||
|
err_msg(PTR_FORMAT " should be an object start", last));
|
||||||
return last;
|
return last;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t ContiguousSpace::block_size(const HeapWord* p) const {
|
size_t ContiguousSpace::block_size(const HeapWord* p) const {
|
||||||
assert(MemRegion(bottom(), end()).contains(p), "p not in space");
|
assert(MemRegion(bottom(), end()).contains(p),
|
||||||
|
err_msg("p (" PTR_FORMAT ") not in space [" PTR_FORMAT ", " PTR_FORMAT ")",
|
||||||
|
p, bottom(), end()));
|
||||||
HeapWord* current_top = top();
|
HeapWord* current_top = top();
|
||||||
assert(p <= current_top, "p is not a block start");
|
assert(p <= current_top,
|
||||||
assert(p == current_top || oop(p)->is_oop(), "p is not a block start");
|
err_msg("p > current top - p: " PTR_FORMAT ", current top: " PTR_FORMAT,
|
||||||
if (p < current_top)
|
p, current_top));
|
||||||
|
assert(p == current_top || oop(p)->is_oop(),
|
||||||
|
err_msg("p (" PTR_FORMAT ") is not a block start - "
|
||||||
|
"current_top: " PTR_FORMAT ", is_oop: %s",
|
||||||
|
p, current_top, BOOL_TO_STR(oop(p)->is_oop())));
|
||||||
|
if (p < current_top) {
|
||||||
return oop(p)->size();
|
return oop(p)->size();
|
||||||
else {
|
} else {
|
||||||
assert(p == current_top, "just checking");
|
assert(p == current_top, "just checking");
|
||||||
return pointer_delta(end(), (HeapWord*) p);
|
return pointer_delta(end(), (HeapWord*) p);
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,19 +28,8 @@
|
||||||
#include "memory/threadLocalAllocBuffer.inline.hpp"
|
#include "memory/threadLocalAllocBuffer.inline.hpp"
|
||||||
#include "memory/universe.inline.hpp"
|
#include "memory/universe.inline.hpp"
|
||||||
#include "oops/oop.inline.hpp"
|
#include "oops/oop.inline.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "utilities/copy.hpp"
|
#include "utilities/copy.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Thread-Local Edens support
|
// Thread-Local Edens support
|
||||||
|
|
||||||
|
|
|
@ -62,6 +62,7 @@
|
||||||
#include "runtime/javaCalls.hpp"
|
#include "runtime/javaCalls.hpp"
|
||||||
#include "runtime/sharedRuntime.hpp"
|
#include "runtime/sharedRuntime.hpp"
|
||||||
#include "runtime/synchronizer.hpp"
|
#include "runtime/synchronizer.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "runtime/timer.hpp"
|
#include "runtime/timer.hpp"
|
||||||
#include "runtime/vm_operations.hpp"
|
#include "runtime/vm_operations.hpp"
|
||||||
#include "services/memoryService.hpp"
|
#include "services/memoryService.hpp"
|
||||||
|
@ -69,18 +70,6 @@
|
||||||
#include "utilities/events.hpp"
|
#include "utilities/events.hpp"
|
||||||
#include "utilities/hashtable.inline.hpp"
|
#include "utilities/hashtable.inline.hpp"
|
||||||
#include "utilities/preserveException.hpp"
|
#include "utilities/preserveException.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifndef SERIALGC
|
#ifndef SERIALGC
|
||||||
#include "gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.hpp"
|
#include "gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.hpp"
|
||||||
#include "gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.hpp"
|
#include "gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.hpp"
|
||||||
|
|
|
@ -51,20 +51,9 @@
|
||||||
#include "runtime/handles.inline.hpp"
|
#include "runtime/handles.inline.hpp"
|
||||||
#include "runtime/javaCalls.hpp"
|
#include "runtime/javaCalls.hpp"
|
||||||
#include "runtime/mutexLocker.hpp"
|
#include "runtime/mutexLocker.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "services/threadService.hpp"
|
#include "services/threadService.hpp"
|
||||||
#include "utilities/dtrace.hpp"
|
#include "utilities/dtrace.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifndef SERIALGC
|
#ifndef SERIALGC
|
||||||
#include "gc_implementation/concurrentMarkSweep/cmsOopClosures.inline.hpp"
|
#include "gc_implementation/concurrentMarkSweep/cmsOopClosures.inline.hpp"
|
||||||
#include "gc_implementation/g1/g1CollectedHeap.inline.hpp"
|
#include "gc_implementation/g1/g1CollectedHeap.inline.hpp"
|
||||||
|
|
|
@ -24,19 +24,7 @@
|
||||||
|
|
||||||
#include "precompiled.hpp"
|
#include "precompiled.hpp"
|
||||||
#include "oops/markOop.hpp"
|
#include "oops/markOop.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
#include "runtime/thread.inline.hpp"
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
void markOopDesc::print_on(outputStream* st) const {
|
void markOopDesc::print_on(outputStream* st) const {
|
||||||
if (is_locked()) {
|
if (is_locked()) {
|
||||||
|
|
|
@ -27,19 +27,8 @@
|
||||||
#include "classfile/javaClasses.hpp"
|
#include "classfile/javaClasses.hpp"
|
||||||
#include "oops/oop.inline.hpp"
|
#include "oops/oop.inline.hpp"
|
||||||
#include "runtime/handles.inline.hpp"
|
#include "runtime/handles.inline.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "utilities/copy.hpp"
|
#include "utilities/copy.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
bool always_do_update_barrier = false;
|
bool always_do_update_barrier = false;
|
||||||
|
|
||||||
|
|
|
@ -26,20 +26,8 @@
|
||||||
#include "gc_interface/collectedHeap.hpp"
|
#include "gc_interface/collectedHeap.hpp"
|
||||||
#include "gc_interface/collectedHeap.inline.hpp"
|
#include "gc_interface/collectedHeap.inline.hpp"
|
||||||
#include "oops/oopsHierarchy.hpp"
|
#include "oops/oopsHierarchy.hpp"
|
||||||
#include "runtime/thread.hpp"
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "utilities/globalDefinitions.hpp"
|
#include "utilities/globalDefinitions.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CHECK_UNHANDLED_OOPS
|
#ifdef CHECK_UNHANDLED_OOPS
|
||||||
|
|
||||||
|
|
|
@ -69,6 +69,7 @@
|
||||||
#include "runtime/reflection.hpp"
|
#include "runtime/reflection.hpp"
|
||||||
#include "runtime/sharedRuntime.hpp"
|
#include "runtime/sharedRuntime.hpp"
|
||||||
#include "runtime/signature.hpp"
|
#include "runtime/signature.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "runtime/vm_operations.hpp"
|
#include "runtime/vm_operations.hpp"
|
||||||
#include "services/runtimeService.hpp"
|
#include "services/runtimeService.hpp"
|
||||||
#include "trace/tracing.hpp"
|
#include "trace/tracing.hpp"
|
||||||
|
@ -79,19 +80,15 @@
|
||||||
#include "utilities/histogram.hpp"
|
#include "utilities/histogram.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
#ifdef TARGET_OS_FAMILY_linux
|
||||||
# include "os_linux.inline.hpp"
|
# include "os_linux.inline.hpp"
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
#endif
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
#ifdef TARGET_OS_FAMILY_solaris
|
||||||
# include "os_solaris.inline.hpp"
|
# include "os_solaris.inline.hpp"
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
#endif
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
#ifdef TARGET_OS_FAMILY_windows
|
||||||
# include "os_windows.inline.hpp"
|
# include "os_windows.inline.hpp"
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
#endif
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
#ifdef TARGET_OS_FAMILY_bsd
|
||||||
# include "os_bsd.inline.hpp"
|
# include "os_bsd.inline.hpp"
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static jint CurrentVersion = JNI_VERSION_1_6;
|
static jint CurrentVersion = JNI_VERSION_1_6;
|
||||||
|
|
|
@ -53,24 +53,12 @@
|
||||||
#include "runtime/osThread.hpp"
|
#include "runtime/osThread.hpp"
|
||||||
#include "runtime/reflectionUtils.hpp"
|
#include "runtime/reflectionUtils.hpp"
|
||||||
#include "runtime/signature.hpp"
|
#include "runtime/signature.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "runtime/vframe.hpp"
|
#include "runtime/vframe.hpp"
|
||||||
#include "runtime/vmThread.hpp"
|
#include "runtime/vmThread.hpp"
|
||||||
#include "services/threadService.hpp"
|
#include "services/threadService.hpp"
|
||||||
#include "utilities/exceptions.hpp"
|
#include "utilities/exceptions.hpp"
|
||||||
#include "utilities/preserveException.hpp"
|
#include "utilities/preserveException.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define FIXLATER 0 // REMOVE this when completed.
|
#define FIXLATER 0 // REMOVE this when completed.
|
||||||
|
|
|
@ -41,22 +41,11 @@
|
||||||
#include "runtime/os.hpp"
|
#include "runtime/os.hpp"
|
||||||
#include "runtime/serviceThread.hpp"
|
#include "runtime/serviceThread.hpp"
|
||||||
#include "runtime/signature.hpp"
|
#include "runtime/signature.hpp"
|
||||||
|
#include "runtime/thread.inline.hpp"
|
||||||
#include "runtime/vframe.hpp"
|
#include "runtime/vframe.hpp"
|
||||||
#include "runtime/vframe_hp.hpp"
|
#include "runtime/vframe_hp.hpp"
|
||||||
#include "runtime/vm_operations.hpp"
|
#include "runtime/vm_operations.hpp"
|
||||||
#include "utilities/exceptions.hpp"
|
#include "utilities/exceptions.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// class JvmtiAgentThread
|
// class JvmtiAgentThread
|
||||||
|
|
|
@ -1485,14 +1485,6 @@ void Arguments::set_parallel_gc_flags() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (UseNUMA) {
|
|
||||||
if (FLAG_IS_DEFAULT(MinHeapDeltaBytes)) {
|
|
||||||
FLAG_SET_DEFAULT(MinHeapDeltaBytes, 64*M);
|
|
||||||
}
|
|
||||||
// For those collectors or operating systems (eg, Windows) that do
|
|
||||||
// not support full UseNUMA, we will map to UseNUMAInterleaving for now
|
|
||||||
UseNUMAInterleaving = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Arguments::set_g1_gc_flags() {
|
void Arguments::set_g1_gc_flags() {
|
||||||
|
@ -3332,6 +3324,22 @@ jint Arguments::parse(const JavaVMInitArgs* args) {
|
||||||
return JNI_OK;
|
return JNI_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
jint Arguments::adjust_after_os() {
|
||||||
|
#if INCLUDE_ALTERNATE_GCS
|
||||||
|
if (UseParallelGC || UseParallelOldGC) {
|
||||||
|
if (UseNUMA) {
|
||||||
|
if (FLAG_IS_DEFAULT(MinHeapDeltaBytes)) {
|
||||||
|
FLAG_SET_DEFAULT(MinHeapDeltaBytes, 64*M);
|
||||||
|
}
|
||||||
|
// For those collectors or operating systems (eg, Windows) that do
|
||||||
|
// not support full UseNUMA, we will map to UseNUMAInterleaving for now
|
||||||
|
UseNUMAInterleaving = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
return JNI_OK;
|
||||||
|
}
|
||||||
|
|
||||||
int Arguments::PropertyList_count(SystemProperty* pl) {
|
int Arguments::PropertyList_count(SystemProperty* pl) {
|
||||||
int count = 0;
|
int count = 0;
|
||||||
while(pl != NULL) {
|
while(pl != NULL) {
|
||||||
|
|
|
@ -409,6 +409,8 @@ class Arguments : AllStatic {
|
||||||
public:
|
public:
|
||||||
// Parses the arguments
|
// Parses the arguments
|
||||||
static jint parse(const JavaVMInitArgs* args);
|
static jint parse(const JavaVMInitArgs* args);
|
||||||
|
// Adjusts the arguments after the OS have adjusted the arguments
|
||||||
|
static jint adjust_after_os();
|
||||||
// Check for consistency in the selection of the garbage collector.
|
// Check for consistency in the selection of the garbage collector.
|
||||||
static bool check_gc_consistency();
|
static bool check_gc_consistency();
|
||||||
// Check consistecy or otherwise of VM argument settings
|
// Check consistecy or otherwise of VM argument settings
|
||||||
|
|
|
@ -721,7 +721,7 @@ JRT_LEAF(BasicType, Deoptimization::unpack_frames(JavaThread* thread, int exec_m
|
||||||
guarantee(false, "wrong number of expression stack elements during deopt");
|
guarantee(false, "wrong number of expression stack elements during deopt");
|
||||||
}
|
}
|
||||||
VerifyOopClosure verify;
|
VerifyOopClosure verify;
|
||||||
iframe->oops_interpreted_do(&verify, &rm, false);
|
iframe->oops_interpreted_do(&verify, NULL, &rm, false);
|
||||||
callee_size_of_parameters = mh->size_of_parameters();
|
callee_size_of_parameters = mh->size_of_parameters();
|
||||||
callee_max_locals = mh->max_locals();
|
callee_max_locals = mh->max_locals();
|
||||||
is_top_frame = false;
|
is_top_frame = false;
|
||||||
|
|
|
@ -26,18 +26,6 @@
|
||||||
#define SHARE_VM_RUNTIME_FPROFILER_HPP
|
#define SHARE_VM_RUNTIME_FPROFILER_HPP
|
||||||
|
|
||||||
#include "runtime/timer.hpp"
|
#include "runtime/timer.hpp"
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
|
||||||
# include "thread_linux.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_solaris
|
|
||||||
# include "thread_solaris.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_windows
|
|
||||||
# include "thread_windows.inline.hpp"
|
|
||||||
#endif
|
|
||||||
#ifdef TARGET_OS_FAMILY_bsd
|
|
||||||
# include "thread_bsd.inline.hpp"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// a simple flat profiler for Java
|
// a simple flat profiler for Java
|
||||||
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue