Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751483AbdFHXvJ (ORCPT ); Thu, 8 Jun 2017 19:51:09 -0400 Received: from mail-pg0-f42.google.com ([74.125.83.42]:34885 "EHLO mail-pg0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751132AbdFHXvG (ORCPT ); Thu, 8 Jun 2017 19:51:06 -0400 From: John Stultz To: lkml Cc: John Stultz , Thomas Gleixner , Ingo Molnar , Miroslav Lichvar , Richard Cochran , Prarit Bhargava , Stephen Boyd , Daniel Mentz Subject: [PATCH 0/3 v3] Fixes for two recently found timekeeping bugs Date: Thu, 8 Jun 2017 16:44:19 -0700 Message-Id: <1496965462-20003-1-git-send-email-john.stultz@linaro.org> X-Mailer: git-send-email 2.7.4 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2369 Lines: 67 As part of the Linaro Linux Kernel Functional Test (LKFT) effort, test failures from kselftest/timer's inconsistency-check were reported connected to CLOCK_MONOTONIC_RAW, on the HiKey platform. Digging in I found that an old issue with how sub-ns accounting is handled with the RAW time which was fixed long ago with the CLOCK_MONOTONIC/REALTIME ids, but missed with RAW time, was present. Additionally, running further tests, I uncovered an issue with how the clocksource read function is handled when clocksources are changed, which can cause crashes. Both of these issues have not been uncovered in x86 based testing due to x86 not using vDSO to accelerate CLOCK_MONOTONIC_RAW, combined with the HiKey's arch_timer clocksource being fast to access but incrementing slowly enough to get multiple reads using the same counter value (which helps uncover time handing issues), along with the fact that none of the x86 clocksources making use of the clocksource argument passed to the read function. This patchset addresses these two issues. Thanks so much to help from Will Deacon in getting the needed adjustments to the arm64 vDSO in place. Also thanks to Daniel Mentz who also properly diagnosed the MONOTONIC_RAW issue in parallel while I was woking on this patchset. As always feedback would be appreciated! thanks -john v2: * Addressed style/phrasing feedback from Ingo * Dropped the final cleanup patch, since it can wait for 4.13-rc v3: * Incorperated Thomas' suggested commit message * Addressed clock->read(clock) race that also affects the fast-timekeeper Cc: Thomas Gleixner Cc: Ingo Molnar Cc: Miroslav Lichvar Cc: Richard Cochran Cc: Prarit Bhargava Cc: Stephen Boyd Cc: Daniel Mentz John Stultz (2): time: Fix clock->read(clock) race around clocksource changes time: Fix CLOCK_MONOTONIC_RAW sub-nanosecond accounting Will Deacon (1): arm64: vdso: Fix nsec handling for CLOCK_MONOTONIC_RAW arch/arm64/kernel/vdso.c | 5 ++- arch/arm64/kernel/vdso/gettimeofday.S | 1 - include/linux/timekeeper_internal.h | 5 +-- kernel/time/timekeeping.c | 71 +++++++++++++++++++++++------------ 4 files changed, 51 insertions(+), 31 deletions(-) -- 2.7.4