RFR (M): 8235741: Inappropriate uses of os::javaTimeMillis()
Robbin Ehn
robbin.ehn at oracle.com
Wed Jan 22 08:54:50 UTC 2020
Hi David, yes, thanks!
/Robbin
On 1/22/20 7:56 AM, David Holmes wrote:
> Hi Robbin,
>
> Can you confirm you are okay with latest changes please.
>
> http://cr.openjdk.java.net/~dholmes/8235741/webrev.v3/
>
> Thanks,
> David
> -----
>
> On 13/01/2020 11:08 pm, Robbin Ehn wrote:
>> Hi David, looks good, thanks!
>>
>> /Robbin
>>
>> On 1/13/20 8:13 AM, David Holmes wrote:
>>> webrev: http://cr.openjdk.java.net/~dholmes/8235741/webrev/
>>> bug: https://bugs.openjdk.java.net/browse/JDK-8235741
>>>
>>> Full details in the bug report about the existing uses of javaTimeMillis(),
>>> many of which just want an elapsed time in ms and so should be using
>>> javaTimeNanos() and convert to ms. This covers areas all across the VM.
>>>
>>> Only non-simple change is in os_perf_linux.cpp (and the same code will be in
>>> os_perf_aix.cpp once it has been validated). There we are tracking an elapsed
>>> time in ms but relative to the boot time, which is seconds since the epoch.
>>> Consequently the first interval has to be calculated using javaTimeMillis,
>>> but after that we can use javaTimeNanos (using a new 'first time' captured at
>>> the same time we used javaTimeMillis). I think I have the logic right but
>>> other than through JFR this code seems unused and I have limited means of
>>> testing it. The JFR test jdk/jfr/event/os/TestThreadContextSwitches.java
>>> exercises the code but the results of running that test seems to exhibit
>>> arbitrary randomness in the rates reported - e.g. 0 to 16000Hz - both with
>>> and without my change, so not really that useful. Stefan K. suggested a gtest
>>> which I may look into - though it is frustrating to have to expend such
>>> effort to validate this.
>>>
>>> Other testing tiers 1-3.
>>>
>>> Thanks,
>>> David
More information about the hotspot-dev
mailing list