comparison src/share/vm/runtime/synchronizer.cpp @ 4006:436b4a3231bf

7098194: integrate macosx-port changes Summary: Integrate bsd-port/hotspot and macosx-port/hotspot changes as of 2011.09.29. Reviewed-by: kvn, dholmes, never, phh Contributed-by: Christos Zoulas <christos@zoulas.com>, Greg Lewis <glewis@eyesbeyond.com>, Kurt Miller <kurt@intricatesoftware.com>, Alexander Strange <astrange@apple.com>, Mike Swingler <swingler@apple.com>, Roger Hoover <rhoover@apple.com>, Victor Hernandez <vhernandez@apple.com>, Pratik Solanki <psolanki@apple.com>
author dcubed
date Thu, 13 Oct 2011 09:35:42 -0700
parents f08d439fab8c
children 04b9a2566eec da91efe96a93
comparison
equal deleted inserted replaced
4005:2ef3386478e6 4006:436b4a3231bf
75 #ifdef DTRACE_ENABLED 75 #ifdef DTRACE_ENABLED
76 76
77 // Only bother with this argument setup if dtrace is available 77 // Only bother with this argument setup if dtrace is available
78 // TODO-FIXME: probes should not fire when caller is _blocked. assert() accordingly. 78 // TODO-FIXME: probes should not fire when caller is _blocked. assert() accordingly.
79 79
80 HS_DTRACE_PROBE_DECL5(hotspot, monitor__wait,
81 jlong, uintptr_t, char*, int, long);
82 HS_DTRACE_PROBE_DECL4(hotspot, monitor__waited,
83 jlong, uintptr_t, char*, int);
84
85 #define DTRACE_MONITOR_PROBE_COMMON(klassOop, thread) \ 80 #define DTRACE_MONITOR_PROBE_COMMON(klassOop, thread) \
86 char* bytes = NULL; \ 81 char* bytes = NULL; \
87 int len = 0; \ 82 int len = 0; \
88 jlong jtid = SharedRuntime::get_java_tid(thread); \ 83 jlong jtid = SharedRuntime::get_java_tid(thread); \
89 Symbol* klassname = ((oop)(klassOop))->klass()->klass_part()->name(); \ 84 Symbol* klassname = ((oop)(klassOop))->klass()->klass_part()->name(); \
90 if (klassname != NULL) { \ 85 if (klassname != NULL) { \
91 bytes = (char*)klassname->bytes(); \ 86 bytes = (char*)klassname->bytes(); \
92 len = klassname->utf8_length(); \ 87 len = klassname->utf8_length(); \
93 } 88 }
94 89
90 #ifndef USDT2
91 HS_DTRACE_PROBE_DECL5(hotspot, monitor__wait,
92 jlong, uintptr_t, char*, int, long);
93 HS_DTRACE_PROBE_DECL4(hotspot, monitor__waited,
94 jlong, uintptr_t, char*, int);
95
95 #define DTRACE_MONITOR_WAIT_PROBE(monitor, klassOop, thread, millis) \ 96 #define DTRACE_MONITOR_WAIT_PROBE(monitor, klassOop, thread, millis) \
96 { \ 97 { \
97 if (DTraceMonitorProbes) { \ 98 if (DTraceMonitorProbes) { \
98 DTRACE_MONITOR_PROBE_COMMON(klassOop, thread); \ 99 DTRACE_MONITOR_PROBE_COMMON(klassOop, thread); \
99 HS_DTRACE_PROBE5(hotspot, monitor__wait, jtid, \ 100 HS_DTRACE_PROBE5(hotspot, monitor__wait, jtid, \
108 HS_DTRACE_PROBE4(hotspot, monitor__##probe, jtid, \ 109 HS_DTRACE_PROBE4(hotspot, monitor__##probe, jtid, \
109 (uintptr_t)(monitor), bytes, len); \ 110 (uintptr_t)(monitor), bytes, len); \
110 } \ 111 } \
111 } 112 }
112 113
114 #else /* USDT2 */
115
116 #define DTRACE_MONITOR_WAIT_PROBE(monitor, klassOop, thread, millis) \
117 { \
118 if (DTraceMonitorProbes) { \
119 DTRACE_MONITOR_PROBE_COMMON(klassOop, thread); \
120 HOTSPOT_MONITOR_WAIT(jtid, \
121 (uintptr_t)(monitor), bytes, len, (millis)); \
122 } \
123 }
124
125 #define HOTSPOT_MONITOR_PROBE_waited HOTSPOT_MONITOR_PROBE_WAITED
126
127 #define DTRACE_MONITOR_PROBE(probe, monitor, klassOop, thread) \
128 { \
129 if (DTraceMonitorProbes) { \
130 DTRACE_MONITOR_PROBE_COMMON(klassOop, thread); \
131 HOTSPOT_MONITOR_PROBE_##probe(jtid, /* probe = waited */ \
132 (uintptr_t)(monitor), bytes, len); \
133 } \
134 }
135
136 #endif /* USDT2 */
113 #else // ndef DTRACE_ENABLED 137 #else // ndef DTRACE_ENABLED
114 138
115 #define DTRACE_MONITOR_WAIT_PROBE(klassOop, thread, millis, mon) {;} 139 #define DTRACE_MONITOR_WAIT_PROBE(klassOop, thread, millis, mon) {;}
116 #define DTRACE_MONITOR_PROBE(probe, klassOop, thread, mon) {;} 140 #define DTRACE_MONITOR_PROBE(probe, klassOop, thread, mon) {;}
117 141