From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752791AbcAORl0 (ORCPT ); Fri, 15 Jan 2016 12:41:26 -0500 Received: from foss.arm.com ([217.140.101.70]:54456 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752789AbcAORlX (ORCPT ); Fri, 15 Jan 2016 12:41:23 -0500 From: Marc Zyngier To: Thomas Gleixner Cc: , Tomasz Nowicki , Christoffer Dall Subject: [PATCH 0/3] Enabling htimer support for CLOCK_MONOTONIC_RAW Date: Fri, 15 Jan 2016 17:41:07 +0000 Message-Id: <1452879670-16133-1-git-send-email-marc.zyngier@arm.com> X-Mailer: git-send-email 2.1.4 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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