Hello , please review this small test fix .

The test test/jdk/sun/management/HotspotRuntimeMBean/GetTotalSafepointTime.java 
fails sometimes on fast Linux machines with this error message :

java.lang.RuntimeException: Total safepoint time illegal value: 0 ms (MIN = 1; 
MAX = 9223372036854775807)

looks like the total safepoint time is too low currently on these machines, it 
is < 1 ms.

There might be several ways to handle this :

  *   Change the test  in a way that it might generate nigher safepoint times
  *   Allow  safepoint time  == 0 ms
  *   Offer an additional interface that gives  safepoint times  with finer 
granularity ( currently the HS has safepoint time values in ns , see  
jdk/src/hotspot/share/runtime/safepoint.cpp   SafepointTracing::end

But it is converted on ms in this code

114jlong RuntimeService::safepoint_time_ms() {
115  return UsePerfData ?
116    Management::ticks_to_ms(_safepoint_time_ticks->get_value()) : -1;
117}

064jlong Management::ticks_to_ms(jlong ticks) {
2065  assert(os::elapsed_frequency() > 0, "Must be non-zero");
2066  return (jlong)(((double)ticks / (double)os::elapsed_frequency())
2067                 * (double)1000.0);
2068}



Currently I go for  the first attempt (and try to generate  higher safepoint 
times in my patch) .

Bug/webrev :

https://bugs.openjdk.java.net/browse/JDK-8228658

http://cr.openjdk.java.net/~mbaesken/webrevs/8228658.0/


Thanks, Matthias

Reply via email to