295 SEND_FLAGS_OF_TYPE(StringFlag, ccstr);
296 }
297
298 class VM_GC_SendObjectCountEvent : public VM_GC_HeapInspection {
299 public:
300 VM_GC_SendObjectCountEvent() : VM_GC_HeapInspection(NULL, true) {}
301 virtual void doit() {
302 ObjectCountEventSender::enable_requestable_event();
303 collect();
304 ObjectCountEventSender::disable_requestable_event();
305 }
306 };
307
308 TRACE_REQUEST_FUNC(ObjectCount) {
309 VM_GC_SendObjectCountEvent op;
310 VMThread::execute(&op);
311 }
312
313 class VM_G1SendHeapRegionInfoEvents : public VM_Operation {
314 virtual void doit() {
315 G1HeapRegionEventSender::send_events();
316 }
317 virtual VMOp_Type type() const { return VMOp_HeapIterateOperation; }
318 };
319
320 TRACE_REQUEST_FUNC(G1HeapRegionInformation) {
321 if (UseG1GC) {
322 VM_G1SendHeapRegionInfoEvents op;
323 VMThread::execute(&op);
324 }
325 }
326
327 // Java Mission Control (JMC) uses (Java) Long.MIN_VALUE to describe that a
328 // long value is undefined.
329 static jlong jmc_undefined_long = min_jlong;
330
331 TRACE_REQUEST_FUNC(GCConfiguration) {
332 GCConfiguration conf;
333 jlong pause_target = conf.has_pause_target_default_value() ? jmc_undefined_long : conf.pause_target();
334 EventGCConfiguration event;
335 event.set_youngCollector(conf.young_collector());
|
295 SEND_FLAGS_OF_TYPE(StringFlag, ccstr);
296 }
297
298 class VM_GC_SendObjectCountEvent : public VM_GC_HeapInspection {
299 public:
300 VM_GC_SendObjectCountEvent() : VM_GC_HeapInspection(NULL, true) {}
301 virtual void doit() {
302 ObjectCountEventSender::enable_requestable_event();
303 collect();
304 ObjectCountEventSender::disable_requestable_event();
305 }
306 };
307
308 TRACE_REQUEST_FUNC(ObjectCount) {
309 VM_GC_SendObjectCountEvent op;
310 VMThread::execute(&op);
311 }
312
313 class VM_G1SendHeapRegionInfoEvents : public VM_Operation {
314 virtual void doit() {
315 #if INCLUDE_G1GC
316 G1HeapRegionEventSender::send_events();
317 #endif
318 }
319 virtual VMOp_Type type() const { return VMOp_HeapIterateOperation; }
320 };
321
322 TRACE_REQUEST_FUNC(G1HeapRegionInformation) {
323 if (UseG1GC) {
324 VM_G1SendHeapRegionInfoEvents op;
325 VMThread::execute(&op);
326 }
327 }
328
329 // Java Mission Control (JMC) uses (Java) Long.MIN_VALUE to describe that a
330 // long value is undefined.
331 static jlong jmc_undefined_long = min_jlong;
332
333 TRACE_REQUEST_FUNC(GCConfiguration) {
334 GCConfiguration conf;
335 jlong pause_target = conf.has_pause_target_default_value() ? jmc_undefined_long : conf.pause_target();
336 EventGCConfiguration event;
337 event.set_youngCollector(conf.young_collector());
|