[ruby-core:64756] Re: [ruby-trunk - Bug #10202] TestBenchmark#test_realtime_output breaks on ARM

From: Eric Wong <normalperson@...>
Date: 2014-09-04 08:41:48 UTC
List: ruby-core #64756
v.ondruch@tiscali.cz wrote:
> http://paste.fedoraproject.org/130884/81461414/

So I think everything looks right with FUTEX_WAIT_BITSET_PRIVATE
taking > 1.0s according to strace.

And your CLOCK_MONOTONIC output seems about right, but _RAW may not
be...

Reading more about it[1], CLOCK_MONOTONIC_RAW is probably not be the
right clock to use for us since NTP corrects for _frequency_ adjustments
which we're likely to want for Benchmark.realtime measurements.

Furthermore, futex syscalls (for sleep duration) takes into account the
NTP adjustments which CLOCK_MONOTONIC_RAW ignores.  Same goes for other
sleep mechanisms exposed to userspace (select/poll).

I'm leaning towards ignoring the existence of CLOCK_MONOTONIC_RAW
entirely.

Just curious, can you show strace with Benchmark.realtime {} wrapped
around sleep?  Now I'm willing to bet CLOCK_MONOTONIC_RAW is off in
your case.

[1] this thread, where John Stultz explains how CLOCK_MONOTONIC
    is frequency (but not offset) corrected:
    https://lkml.org/lkml/2014/7/17/718

In This Thread

Prev Next