RFR 6523160: RuntimeMXBean.getUptime() returns negative values

Jaroslav Bachorik jaroslav.bachorik at oracle.com
Tue Oct 8 05:36:36 PDT 2013


On 8.10.2013 09:34, David Holmes wrote:
> Jaroslav,
>
> On 2/10/2013 6:47 PM, Jaroslav Bachorik wrote:
>> Hello,
>>
>> currently the JVM uptime reported by the RuntimeMXBean is based on
>> System.currentTimeMillis() which makes it susceptible to changes of the
>> OS time (eg. changing timezone, NTP synchronization etc.). The uptime
>> should not depend on the system time and should be calculated using a
>> monotonic clock source.
>>
>> There is already the way to get the actual JVM uptime in ticks. It is
>> accessible as Management::timestamp() and the ticks are convertible to
>> milliseconds using Management::ticks_to_ms(ts_ticks) thus making it very
>> easy to switch to the monotonic clock based uptime.
>
> Maybe I'm missing something but TiumeStamp updates using
> os::elapsed_counter() which on Linux uses gettimeofday so is not a
> monotonic clock source.

Hm, yes. I wasn't aware of this linux/bsd specific.

Is there any reason why a non monotonic clock source is used for 
timestamping except of the historical one? os::javaTimeNanos() uses 
montonic clock when available - why can't be the same used for 
os::elapsed_counter() especially when a counter based on "gettimeofday" 
is not really a counter?

-JB-

>
> David
> -----
>
>
>
>> The patch consists of the hotspot and jdk parts.
>>
>> For the hotspot a new constant needs to be introduced in
>> src/share/vm/services/jmm.h and the actual logic to obtain the uptime in
>> milliseconds is added in src/share/vm/services/management.cpp.
>>
>> For the jdk the changes comprise of adding the necessary JNI bridging
>> methods in order to get the new uptime, introducing the same constant
>> that is used in hotspot and changes to mapfile-vers files in order to
>> properly build the native library.
>>
>> Issue:   https://bugs.openjdk.java.net/browse/JDK-6523160
>> Webrev:  http://cr.openjdk.java.net/~jbachorik/6523160/webrev.00
>>
>> Thanks,
>>
>> -JB-



More information about the serviceability-dev mailing list