comparison src/share/vm/prims/unsafe.cpp @ 1324:e392695de029

6935224: Adding new DTrace probes to work with Palantir Summary: Adding probes related to thread scheduling and class initialization Reviewed-by: kamg, never
author fparain
date Wed, 17 Mar 2010 11:01:05 +0100
parents df6caf649ff7
children c18cbe5936b8
comparison
equal deleted inserted replaced
1323:cd20a6f46fec 1324:e392695de029
26 * Implementation of class sun.misc.Unsafe 26 * Implementation of class sun.misc.Unsafe
27 */ 27 */
28 28
29 #include "incls/_precompiled.incl" 29 #include "incls/_precompiled.incl"
30 #include "incls/_unsafe.cpp.incl" 30 #include "incls/_unsafe.cpp.incl"
31
32 HS_DTRACE_PROBE_DECL3(hotspot, thread__park__begin, uintptr_t, int, long long);
33 HS_DTRACE_PROBE_DECL1(hotspot, thread__park__end, uintptr_t);
34 HS_DTRACE_PROBE_DECL1(hotspot, thread__unpark, uintptr_t);
31 35
32 #define MAX_OBJECT_SIZE \ 36 #define MAX_OBJECT_SIZE \
33 ( arrayOopDesc::header_size(T_DOUBLE) * HeapWordSize \ 37 ( arrayOopDesc::header_size(T_DOUBLE) * HeapWordSize \
34 + ((julong)max_jint * sizeof(double)) ) 38 + ((julong)max_jint * sizeof(double)) )
35 39
1081 } 1085 }
1082 UNSAFE_END 1086 UNSAFE_END
1083 1087
1084 UNSAFE_ENTRY(void, Unsafe_Park(JNIEnv *env, jobject unsafe, jboolean isAbsolute, jlong time)) 1088 UNSAFE_ENTRY(void, Unsafe_Park(JNIEnv *env, jobject unsafe, jboolean isAbsolute, jlong time))
1085 UnsafeWrapper("Unsafe_Park"); 1089 UnsafeWrapper("Unsafe_Park");
1090 HS_DTRACE_PROBE3(hotspot, thread__park__begin, thread->parker(), (int) isAbsolute, time);
1086 JavaThreadParkedState jtps(thread, time != 0); 1091 JavaThreadParkedState jtps(thread, time != 0);
1087 thread->parker()->park(isAbsolute != 0, time); 1092 thread->parker()->park(isAbsolute != 0, time);
1093 HS_DTRACE_PROBE1(hotspot, thread__park__end, thread->parker());
1088 UNSAFE_END 1094 UNSAFE_END
1089 1095
1090 UNSAFE_ENTRY(void, Unsafe_Unpark(JNIEnv *env, jobject unsafe, jobject jthread)) 1096 UNSAFE_ENTRY(void, Unsafe_Unpark(JNIEnv *env, jobject unsafe, jobject jthread))
1091 UnsafeWrapper("Unsafe_Unpark"); 1097 UnsafeWrapper("Unsafe_Unpark");
1092 Parker* p = NULL; 1098 Parker* p = NULL;
1114 } 1120 }
1115 } 1121 }
1116 } 1122 }
1117 } 1123 }
1118 if (p != NULL) { 1124 if (p != NULL) {
1125 HS_DTRACE_PROBE1(hotspot, thread__unpark, p);
1119 p->unpark(); 1126 p->unpark();
1120 } 1127 }
1121 UNSAFE_END 1128 UNSAFE_END
1122 1129
1123 UNSAFE_ENTRY(jint, Unsafe_Loadavg(JNIEnv *env, jobject unsafe, jdoubleArray loadavg, jint nelem)) 1130 UNSAFE_ENTRY(jint, Unsafe_Loadavg(JNIEnv *env, jobject unsafe, jdoubleArray loadavg, jint nelem))