Mercurial > hg > release > icedtea7-forest-2.4 > hotspot
changeset 4969:b59e02d9e72b icedtea-2.4.3
Merge jdk7u45-b31
author | andrew |
---|---|
date | Wed, 16 Oct 2013 15:17:08 +0100 |
parents | 1c5a7e22a4d6 (current diff) 520b7b3d9153 (diff) |
children | 0505a797849f |
files | .hgtags make/hotspot_version make/windows/makefiles/sa.make src/share/vm/memory/allocation.hpp |
diffstat | 6 files changed, 83 insertions(+), 24 deletions(-) [+] |
line wrap: on
line diff
--- a/.hgtags Sat Aug 24 00:14:46 2013 -0700 +++ b/.hgtags Wed Oct 16 15:17:08 2013 +0100 @@ -484,6 +484,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 @@ -565,3 +583,24 @@ 0000000000000000000000000000000000000000 icedtea-2.4.2 0000000000000000000000000000000000000000 icedtea-2.4.2 b732355257e3452875a1a8e5a5de2c553dfa705c icedtea-2.4.2 +efaa26fb6de2ecb8506fb8b785a429d040e96768 jdk7u40-b61 +df6f37a7311d35072a07c1425a7aadee469a09b6 jdk7u40-b62 +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 +429884602206fcf5314c8b953c06d54d337558ca jdk7u45-b16 +0c0dc384915cafd9bfaa2fe5792a629a22d1b990 jdk7u45-b17 +12374864c655a2cefb0d65caaacf215d5365ec5f jdk7u45-b18 +3677c8cc3c89c0fa608f485b84396e4cf755634b jdk7u45-b30
--- a/make/hotspot_version Sat Aug 24 00:14:46 2013 -0700 +++ b/make/hotspot_version Wed Oct 16 15:17:08 2013 +0100 @@ -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/src/os/bsd/vm/os_bsd.cpp Sat Aug 24 00:14:46 2013 -0700 +++ b/src/os/bsd/vm/os_bsd.cpp Wed Oct 16 15:17:08 2013 +0100 @@ -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/runtime/mutexLocker.cpp Sat Aug 24 00:14:46 2013 -0700 +++ b/src/share/vm/runtime/mutexLocker.cpp Wed Oct 16 15:17:08 2013 +0100 @@ -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 Sat Aug 24 00:14:46 2013 -0700 +++ b/src/share/vm/runtime/mutexLocker.hpp Wed Oct 16 15:17:08 2013 +0100 @@ -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
--- a/src/share/vm/services/gcNotifier.cpp Sat Aug 24 00:14:46 2013 -0700 +++ b/src/share/vm/services/gcNotifier.cpp Wed Oct 16 15:17:08 2013 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -209,11 +209,11 @@ GCNotificationRequest *request = getRequest(); if (request != NULL) { NotificationMark nm(request); - Handle objGcInfo = createGcInfo(request->gcManager, request->gcStatInfo, THREAD); + Handle objGcInfo = createGcInfo(request->gcManager, request->gcStatInfo, CHECK); - Handle objName = java_lang_String::create_from_platform_dependent_str(request->gcManager->name(), CHECK); - Handle objAction = java_lang_String::create_from_platform_dependent_str(request->gcAction, CHECK); - Handle objCause = java_lang_String::create_from_platform_dependent_str(request->gcCause, CHECK); + Handle objName = java_lang_String::create_from_str(request->gcManager->name(), CHECK); + Handle objAction = java_lang_String::create_from_str(request->gcAction, CHECK); + Handle objCause = java_lang_String::create_from_str(request->gcCause, CHECK); klassOop k = Management::sun_management_GarbageCollectorImpl_klass(CHECK); instanceKlassHandle gc_mbean_klass(THREAD, k);