< prev index next >

src/hotspot/share/jfr/periodic/jfrPeriodic.cpp

Print this page


 248 
 249 TRACE_REQUEST_FUNC(ThreadContextSwitchRate) {
 250   double rate = 0.0;
 251   int ret_val = JfrOSInterface::context_switch_rate(&rate);
 252   if (ret_val == OS_ERR) {
 253     log_debug(jfr, system)( "Unable to generate requestable event ThreadContextSwitchRate");
 254     return;
 255   }
 256   if (ret_val == FUNCTIONALITY_NOT_IMPLEMENTED) {
 257     return;
 258   }
 259   if (ret_val == OS_OK) {
 260     EventThreadContextSwitchRate event;
 261     event.set_switchRate((float)rate + 0.0f);
 262     event.commit();
 263   }
 264 }
 265 
 266 #define SEND_FLAGS_OF_TYPE(eventType, flagType)                   \
 267   do {                                                            \
 268     JVMFlag *flag = JVMFlag::flags;                               \
 269     while (flag->_name != NULL) {                                 \
 270       if (flag->is_ ## flagType()) {                              \
 271         if (flag->is_unlocked()) {                                \
 272           Event ## eventType event;                               \
 273           event.set_name(flag->_name);                            \
 274           event.set_value(flag->get_ ## flagType());              \
 275           event.set_origin(flag->get_origin());                   \
 276           event.commit();                                         \
 277         }                                                         \
 278       }                                                           \
 279       ++flag;                                                     \
 280     }                                                             \
 281   } while (0)
 282 
 283 TRACE_REQUEST_FUNC(IntFlag) {
 284   SEND_FLAGS_OF_TYPE(IntFlag, int);
 285 }
 286 
 287 TRACE_REQUEST_FUNC(UnsignedIntFlag) {
 288   SEND_FLAGS_OF_TYPE(UnsignedIntFlag, uint);
 289 }
 290 
 291 TRACE_REQUEST_FUNC(LongFlag) {
 292   SEND_FLAGS_OF_TYPE(LongFlag, intx);
 293 }
 294 
 295 TRACE_REQUEST_FUNC(UnsignedLongFlag) {
 296   SEND_FLAGS_OF_TYPE(UnsignedLongFlag, uintx);
 297   SEND_FLAGS_OF_TYPE(UnsignedLongFlag, uint64_t);
 298   SEND_FLAGS_OF_TYPE(UnsignedLongFlag, size_t);
 299 }




 248 
 249 TRACE_REQUEST_FUNC(ThreadContextSwitchRate) {
 250   double rate = 0.0;
 251   int ret_val = JfrOSInterface::context_switch_rate(&rate);
 252   if (ret_val == OS_ERR) {
 253     log_debug(jfr, system)( "Unable to generate requestable event ThreadContextSwitchRate");
 254     return;
 255   }
 256   if (ret_val == FUNCTIONALITY_NOT_IMPLEMENTED) {
 257     return;
 258   }
 259   if (ret_val == OS_OK) {
 260     EventThreadContextSwitchRate event;
 261     event.set_switchRate((float)rate + 0.0f);
 262     event.commit();
 263   }
 264 }
 265 
 266 #define SEND_FLAGS_OF_TYPE(eventType, flagType)                   \
 267   do {                                                            \
 268     JVMFlag *flag;                                                \
 269     JVMFLAG_FOR_EACH(flag) {                                      \
 270       if (flag->is_ ## flagType()) {                              \
 271         if (flag->is_unlocked()) {                                \
 272           Event ## eventType event;                               \
 273           event.set_name(flag->name());                           \
 274           event.set_value(flag->get_ ## flagType());              \
 275           event.set_origin(flag->get_origin());                   \
 276           event.commit();                                         \
 277         }                                                         \
 278       }                                                           \

 279     }                                                             \
 280   } while (0)
 281 
 282 TRACE_REQUEST_FUNC(IntFlag) {
 283   SEND_FLAGS_OF_TYPE(IntFlag, int);
 284 }
 285 
 286 TRACE_REQUEST_FUNC(UnsignedIntFlag) {
 287   SEND_FLAGS_OF_TYPE(UnsignedIntFlag, uint);
 288 }
 289 
 290 TRACE_REQUEST_FUNC(LongFlag) {
 291   SEND_FLAGS_OF_TYPE(LongFlag, intx);
 292 }
 293 
 294 TRACE_REQUEST_FUNC(UnsignedLongFlag) {
 295   SEND_FLAGS_OF_TYPE(UnsignedLongFlag, uintx);
 296   SEND_FLAGS_OF_TYPE(UnsignedLongFlag, uint64_t);
 297   SEND_FLAGS_OF_TYPE(UnsignedLongFlag, size_t);
 298 }


< prev index next >