[patch 10/11] x86/vdso: Move cycle_last handling into the caller

Vitaly Kuznetsov
Fri, 14 Sep 2018 15:26:01 -0000

Thomas Gleixner <tglx at linutronix.de> writes:

> Dereferencing gtod->cycle_last all over the place and foing the cycles
<
> last comparison in the vclock read functions generates horrible code. Doing
> it at the call site is much better and gains a few cycles both for TSC and
> pvclock.
>
> Caveat: This adds the comparison to the hyperv vclock as well, but I have
> no way to test that.

While the change looks obviously correct for Hyper-V vclock too, by saying
that you encouraged me to give the whole series a shot. I did and turns
out Hyper-V vclock is broken: simple clock_gettime(CLOCK_REALTIME, )
test goes from 70 cpu cycles to 1000 (meaning that we're falling back to
syscall I guess). Bisecting now, stay tuned!

--
  Vitaly