[PATCH 0/3] Enabling htimer support for CLOCK_MONOTONIC_RAW

From: Marc Zyngier
Date: Fri Jan 15 2016 - 12:41:29 EST


In some (admitedly rare) cases, a kernel subsystem wants to obtain a
timer that is not affected by NTP whatsoever. An example of this is
the KVM/ARM timer, which uses a hrtimer to back a vcpu timer when the
vcpu is not running. If we let this backup timer being corrected by
NTP, the guest ends up being woken up at the wrong time, and confusion
follows.

This series adds a new hrtimer base (HRTIMER_BASE_MONOTONIC_RAW),
which gets used when CLOCK_MONOTONIC_RAW is passed to hrtimer_init,
making its behaviour very similar to that of the posix timers.

It also adds a new check for illegal values passed to hrtimer_init (it
seems way too easy to confuse the hrtimer code by giving it a posix
timer clockid). The last patch simply switches the KVM/ARM timer to
CLOCK_MONOTONIC_RAW.

Please note that I only have a limited understanding of how the
hrtimer subsystem actually works, so I'd appreciate any comment on how
this could otherwise be done.

It has been (very lightly) tested on arm64.

Marc Zyngier (3):
hrtimer: Add support for CLOCK_MONOTONIC_RAW
hrtimer: Catch illegal clockids
KVM: arm/arm64: timer: Switch to CLOCK_MONOTONIC_RAW

include/linux/hrtimer.h | 1 +
kernel/time/hrtimer.c | 18 ++++++++++++++++--
virt/kvm/arm/arch_timer.c | 4 ++--
3 files changed, 19 insertions(+), 4 deletions(-)

--
2.1.4