Mercurial > hg > icedtea7-forest-aarch64 > hotspot
changeset 4998:79d6c7579df1
Merge
author | asaha |
---|---|
date | Tue, 01 Oct 2013 12:38:15 -0700 |
parents | 583e3b215735 (current diff) 429884602206 (diff) |
children | 06fd4dba2fb8 |
files | .hgtags |
diffstat | 8 files changed, 89 insertions(+), 28 deletions(-) [+] |
line wrap: on
line diff
--- a/.hgtags Thu Sep 12 17:17:21 2013 -0700 +++ b/.hgtags Tue Oct 01 12:38:15 2013 -0700 @@ -476,6 +476,24 @@ 8386245b59c3e82b7c728b7d3832ea342c62615d jdk7u21-b50 c5e4585a045fe165d067ec0e98af42eace20c5f8 jdk7u21-b12 00dbf9fa12ec6b1ba15d9a9a12495f50e10837bf jdk7u21-b31 +bf2d84c5103d98db1697b50071a649ea23c4e33d jdk7u25-b01 +07119340f80f77dfcb03fa568641e80b43d4be74 jdk7u25-b02 +655bea6843fb7beabd8d9eeda59572c0c7055b85 jdk7u25-b03 +96a4e612195c0d753be24cf38fea0ee8ce30edcf jdk7u25-b04 +7151c26b838828a20cb28595ef1f70403d1868cf jdk7u25-b05 +fbb5f6083dd00ca7417e4a45311f33918bb2a5f0 jdk7u25-b06 +83abf4b2fc8a5bb7226177c5e4334bd0bfd7a8df jdk7u25-b07 +525252cd9fca4869c3fd81bc61299a85e73ff9c7 jdk7u25-b08 +706a255a8404b7e41579cea278df6bb87c314567 jdk7u25-b09 +402184622f60a2ba35479bdf124a8d4694835406 jdk7u25-b10 +cca49a35bf83664456af112482ffb3a7465d21fa jdk7u25-b11 +7ca68c0674df72fdd784de337c049404d2b5b0c3 jdk7u25-b12 +3e145a686fedd9eefdcb6b714241200ed236b41d jdk7u25-b13 +4fafaf293aa5666e8c9f5ca1d96c3f752305f586 jdk7u25-b14 +40acb370626fbc439e4cfed8854960a83a376fba jdk7u25-b15 +97a3ebd62052410e0709035f40032d3f2113ed86 jdk7u25-b30 +b80a290e6e3011097273525c4f352c70b9857464 jdk7u25-b16 +273e8afccd6ef9e10e9fe121f7b323755191f3cc jdk7u25-b32 e3d2c238e29c421c3b5c001e400acbfb30790cfc jdk7u14-b14 860ae068f4dff62a77c8315f0335b7e935087e86 hs24-b34 12619005c5e29be6e65f0dc9891ca19d9ffb1aaa jdk7u14-b15 @@ -549,4 +567,20 @@ 4e779305ed58e21b433626ac06b5eb884055183b jdk7u40-b42 b8d8caf6df744d5342b5d284376a005e86c0b108 hs24-b56 eceae04782438987cd747e1c76e4085f50b43a18 jdk7u40-b43 +af1fc2868a2b919727bfbb0858449bd991bbee4a jdk7u40-b60 +5fb434aa203c32b4551167b922a70e79831ffdf4 jdk7u45-b01 +f2039061ba49de742ae88cc3123fd1237965d665 jdk7u45-b02 +d6fd3f84a30ce82a37fc39b6e5e9d73bd8054ab2 jdk7u45-b03 +7f16aa9067386aeb3668336aa6cd63ef3dc4f44a jdk7u45-b04 +b4fe146b820b47d8b59bbb9dc9d43221436ed0ae jdk7u45-b05 +63efa616e54dd3545e16a5aa1917662548b18ee5 jdk7u45-b06 +f6748e6123b6745497d69addffdff38e224a77c5 jdk7u45-b07 +06bcab9ef18355dccc87401fc24dbd5f15615db0 jdk7u45-b08 +996b6863b3b2468cece20d7a6f571f9ec1b7830c jdk7u45-b09 +bcaf889eea9e64d30f8c3aefdcdc2c2ee29406f2 jdk7u45-b10 +7ca907428850dc2aa99ee4a906446e479dbeb392 jdk7u45-b11 +ed1505510ea0e94b17f968cdb3e8aba13c99d543 jdk7u45-b12 +89f99af7a7bbdadb5b8cf781c7d899c22df64b71 jdk7u45-b13 +718d1e9223dd0359d9ccef81fb82c32215702fe8 jdk7u45-b14 +9ad76a08e5edfe24e95eef84e15fef261bff1abf jdk7u45-b15 ae4adc1492d1c90a70bd2d139a939fc0c8329be9 jdk7u60-b00
--- a/make/hotspot_version Thu Sep 12 17:17:21 2013 -0700 +++ b/make/hotspot_version Tue Oct 01 12:38:15 2013 -0700 @@ -34,8 +34,8 @@ HOTSPOT_VM_COPYRIGHT=Copyright 2013 HS_MAJOR_VER=24 -HS_MINOR_VER=0 -HS_BUILD_NUMBER=56 +HS_MINOR_VER=45 +HS_BUILD_NUMBER=08 JDK_MAJOR_VER=1 JDK_MINOR_VER=7
--- a/make/windows/makefiles/compile.make Thu Sep 12 17:17:21 2013 -0700 +++ b/make/windows/makefiles/compile.make Tue Oct 01 12:38:15 2013 -0700 @@ -172,6 +172,7 @@ PRODUCT_OPT_OPTION = /O2 /Oy- FASTDEBUG_OPT_OPTION = /O2 /Oy- DEBUG_OPT_OPTION = /Od +SAFESEH_FLAG = /SAFESEH !endif !if "$(COMPILER_NAME)" == "VS2005" @@ -190,6 +191,7 @@ !if "x$(MT)" == "x" MT=mt.exe !endif +SAFESEH_FLAG = /SAFESEH !endif !if "$(COMPILER_NAME)" == "VS2008" @@ -203,6 +205,7 @@ !if "x$(MT)" == "x" MT=mt.exe !endif +SAFESEH_FLAG = /SAFESEH !endif !if "$(COMPILER_NAME)" == "VS2010" @@ -216,9 +219,11 @@ !if "x$(MT)" == "x" MT=mt.exe !endif +SAFESEH_FLAG = /SAFESEH +!endif + !if "$(BUILDARCH)" == "i486" -LD_FLAGS = /SAFESEH $(LD_FLAGS) -!endif +LD_FLAGS = $(SAFESEH_FLAG) $(LD_FLAGS) !endif # If NO_OPTIMIZATIONS is defined in the environment, turn everything off
--- a/make/windows/makefiles/sa.make Thu Sep 12 17:17:21 2013 -0700 +++ b/make/windows/makefiles/sa.make Tue Oct 01 12:38:15 2013 -0700 @@ -107,6 +107,9 @@ !if "$(ENABLE_FULL_DEBUG_SYMBOLS)" == "1" SA_LFLAGS = $(SA_LFLAGS) -map -debug !endif +!if "$(BUILDARCH)" == "i486" +SA_LFLAGS = $(SAFESEH_FLAG) $(SA_LFLAGS) +!endif # Note that we do not keep sawindbj.obj around as it would then # get included in the dumpbin command in build_vm_def.sh
--- a/src/os/bsd/vm/os_bsd.cpp Thu Sep 12 17:17:21 2013 -0700 +++ b/src/os/bsd/vm/os_bsd.cpp Tue Oct 01 12:38:15 2013 -0700 @@ -971,13 +971,14 @@ #endif #ifdef __APPLE__ -static uint64_t locate_unique_thread_id() { +static uint64_t locate_unique_thread_id(mach_port_t mach_thread_port) { // Additional thread_id used to correlate threads in SA thread_identifier_info_data_t m_ident_info; mach_msg_type_number_t count = THREAD_IDENTIFIER_INFO_COUNT; - thread_info(::mach_thread_self(), THREAD_IDENTIFIER_INFO, + thread_info(mach_thread_port, THREAD_IDENTIFIER_INFO, (thread_info_t) &m_ident_info, &count); + return m_ident_info.thread_id; } #endif @@ -1009,9 +1010,14 @@ #ifdef _ALLBSD_SOURCE #ifdef __APPLE__ - // thread_id is mach thread on macos - osthread->set_thread_id(::mach_thread_self()); - osthread->set_unique_thread_id(locate_unique_thread_id()); + // thread_id is mach thread on macos, which pthreads graciously caches and provides for us + mach_port_t thread_id = ::pthread_mach_thread_np(::pthread_self()); + guarantee(thread_id != 0, "thread id missing from pthreads"); + osthread->set_thread_id(thread_id); + + uint64_t unique_thread_id = locate_unique_thread_id(thread_id); + guarantee(unique_thread_id != 0, "unique thread id was not found"); + osthread->set_unique_thread_id(unique_thread_id); #else // thread_id is pthread_id on BSD osthread->set_thread_id(::pthread_self()); @@ -1207,8 +1213,14 @@ // Store pthread info into the OSThread #ifdef _ALLBSD_SOURCE #ifdef __APPLE__ - osthread->set_thread_id(::mach_thread_self()); - osthread->set_unique_thread_id(locate_unique_thread_id()); + // thread_id is mach thread on macos, which pthreads graciously caches and provides for us + mach_port_t thread_id = ::pthread_mach_thread_np(::pthread_self()); + guarantee(thread_id != 0, "just checking"); + osthread->set_thread_id(thread_id); + + uint64_t unique_thread_id = locate_unique_thread_id(thread_id); + guarantee(unique_thread_id != 0, "just checking"); + osthread->set_unique_thread_id(unique_thread_id); #else osthread->set_thread_id(::pthread_self()); #endif @@ -1830,7 +1842,7 @@ intx os::current_thread_id() { #ifdef __APPLE__ - return (intx)::mach_thread_self(); + return (intx)::pthread_mach_thread_np(::pthread_self()); #else return (intx)::pthread_self(); #endif
--- a/src/share/vm/classfile/classFileParser.cpp Thu Sep 12 17:17:21 2013 -0700 +++ b/src/share/vm/classfile/classFileParser.cpp Tue Oct 01 12:38:15 2013 -0700 @@ -2028,8 +2028,8 @@ } if (lvt_cnt == max_lvt_cnt) { max_lvt_cnt <<= 1; - REALLOC_RESOURCE_ARRAY(u2, localvariable_table_length, lvt_cnt, max_lvt_cnt); - REALLOC_RESOURCE_ARRAY(u2*, localvariable_table_start, lvt_cnt, max_lvt_cnt); + localvariable_table_length = REALLOC_RESOURCE_ARRAY(u2, localvariable_table_length, lvt_cnt, max_lvt_cnt); + localvariable_table_start = REALLOC_RESOURCE_ARRAY(u2*, localvariable_table_start, lvt_cnt, max_lvt_cnt); } localvariable_table_start[lvt_cnt] = parse_localvariable_table(code_length, @@ -2058,8 +2058,8 @@ // Parse local variable type table if (lvtt_cnt == max_lvtt_cnt) { max_lvtt_cnt <<= 1; - REALLOC_RESOURCE_ARRAY(u2, localvariable_type_table_length, lvtt_cnt, max_lvtt_cnt); - REALLOC_RESOURCE_ARRAY(u2*, localvariable_type_table_start, lvtt_cnt, max_lvtt_cnt); + localvariable_type_table_length = REALLOC_RESOURCE_ARRAY(u2, localvariable_type_table_length, lvtt_cnt, max_lvtt_cnt); + localvariable_type_table_start = REALLOC_RESOURCE_ARRAY(u2*, localvariable_type_table_start, lvtt_cnt, max_lvtt_cnt); } localvariable_type_table_start[lvtt_cnt] = parse_localvariable_table(code_length, @@ -4051,9 +4051,8 @@ for (int index = 0; index < num_methods; index++) { methodOop m = (methodOop)methods->obj_at(index); - // skip private, static and <init> methods - if ((!m->is_private()) && - (!m->is_static()) && + // skip static and <init> methods + if ((!m->is_static()) && (m->name() != vmSymbols::object_initializer_name())) { Symbol* name = m->name();
--- a/src/share/vm/runtime/mutexLocker.cpp Thu Sep 12 17:17:21 2013 -0700 +++ b/src/share/vm/runtime/mutexLocker.cpp Tue Oct 01 12:38:15 2013 -0700 @@ -133,13 +133,15 @@ Mutex* Management_lock = NULL; Monitor* Service_lock = NULL; -Mutex* Stacktrace_lock = NULL; +Monitor* PeriodicTask_lock = NULL; -Monitor* JfrQuery_lock = NULL; +#ifdef INCLUDE_TRACE +Mutex* JfrStacktrace_lock = NULL; Monitor* JfrMsg_lock = NULL; Mutex* JfrBuffer_lock = NULL; Mutex* JfrStream_lock = NULL; -Monitor* PeriodicTask_lock = NULL; +Mutex* JfrThreadGroups_lock = NULL; +#endif #define MAX_NUM_MUTEX 128 static Monitor * _mutex_array[MAX_NUM_MUTEX]; @@ -215,7 +217,6 @@ def(Patching_lock , Mutex , special, true ); // used for safepointing and code patching. def(ObjAllocPost_lock , Monitor, special, false); def(Service_lock , Monitor, special, true ); // used for service thread operations - def(Stacktrace_lock , Mutex, special, true ); // used for JFR stacktrace database def(JmethodIdCreation_lock , Mutex , leaf, true ); // used for creating jmethodIDs. def(SystemDictionary_lock , Monitor, leaf, true ); // lookups done by VM thread @@ -278,12 +279,17 @@ def(MethodCompileQueue_lock , Monitor, nonleaf+4, true ); def(Debug2_lock , Mutex , nonleaf+4, true ); def(Debug3_lock , Mutex , nonleaf+4, true ); - def(CompileThread_lock , Monitor, nonleaf+5, false ); + def(CompileThread_lock , Monitor, nonleaf+5, false); + def(PeriodicTask_lock , Monitor, nonleaf+5, true); +#ifdef INCLUDE_TRACE def(JfrMsg_lock , Monitor, leaf, true); def(JfrBuffer_lock , Mutex, nonleaf+1, true); + def(JfrThreadGroups_lock , Mutex, nonleaf+1, true); def(JfrStream_lock , Mutex, nonleaf+2, true); - def(PeriodicTask_lock , Monitor, nonleaf+5, true); + def(JfrStacktrace_lock , Mutex, special, true ); +#endif + } GCMutexLocker::GCMutexLocker(Monitor * mutex) {
--- a/src/share/vm/runtime/mutexLocker.hpp Thu Sep 12 17:17:21 2013 -0700 +++ b/src/share/vm/runtime/mutexLocker.hpp Tue Oct 01 12:38:15 2013 -0700 @@ -135,13 +135,15 @@ extern Mutex* Management_lock; // a lock used to serialize JVM management extern Monitor* Service_lock; // a lock used for service thread operation -extern Mutex* Stacktrace_lock; // used to guard access to the stacktrace table +extern Monitor* PeriodicTask_lock; // protects the periodic task structure -extern Monitor* JfrQuery_lock; // protects JFR use +#ifdef INCLUDE_TRACE +extern Mutex* JfrStacktrace_lock; // used to guard access to the JFR stacktrace table extern Monitor* JfrMsg_lock; // protects JFR messaging extern Mutex* JfrBuffer_lock; // protects JFR buffer operations extern Mutex* JfrStream_lock; // protects JFR stream access -extern Monitor* PeriodicTask_lock; // protects the periodic task structure +extern Mutex* JfrThreadGroups_lock; // protects JFR access to Thread Groups +#endif // A MutexLocker provides mutual exclusion with respect to a given mutex // for the scope which contains the locker. The lock is an OS lock, not