Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp4066878imm; Mon, 14 May 2018 01:59:46 -0700 (PDT) X-Google-Smtp-Source: AB8JxZqjJWXWkW+QhbwcpI0wXlyRmTgNn1mkXqdvDSvB0MU/kU+NNXxhXauT8J747rTJAYEFEzyP X-Received: by 2002:a63:7804:: with SMTP id t4-v6mr1078076pgc.323.1526288386905; Mon, 14 May 2018 01:59:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1526288386; cv=none; d=google.com; s=arc-20160816; b=PMVFqaJW7wWNrpAwcJYryvhvZzAGC4ZjEhE8xvlh+fjGVnctDzypuPYeafDLyPGPMs obGqgVgFZs9JEroF0UgGVNhwFw3yky78ncmdA0cTqIXOnyTjiM674daYCwwFJKHwvjZ8 bqC7Hf2NCYAp3J4KONcPY9id31s4BqeNpxmaOzLiqFXlMWa3xZ6/djHqgwVTPVr1qUpA T0pg9U0AUCXUL/IiWjsRyRMpxKinTfFzX/ABWdQcOnxLMyTe/Bas2tI6aMrwBM/sSva/ onYw2Ue4mWYYoLo4OQZbf049Yrn+lz3CW6RSYqNWHkZXqYdpTB6Pb9rfUMDXjXtx0+l0 uDbQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=sSEMab6IMNQz3/RjvLiWiFX+Zq0WYBiRrZjP2qAXMUY=; b=opxb5lPiF6rTmGC6UoQqnFkPoXtFDZPwpVOLompGIMi9xlGkImkiQd580gZbMafQYM iMB6OrKLtq6VZ2e0fEETCzUXfzAFt3zmCyENV/NvkHsGiCZPbVCtx2VUgG98cIHLiljC FVAiw1N4u4pdEiasISGM8xoB7mtX0eVAuw5xX5VcE7VqVbX859YZ3efcWlNPVRLCOg7I gb4w84tRmH++tghJnHtJqSxsdUn9D6HZ6a9f3Jgbiflev4DAttkB4dTbWt1YMl+TnIq4 euyq1WhiA0J+lo88wOlQsmNkiAMbCM4yrpDbwFnqZlR9U6nftF6H67LbPNstpOwv5ZV7 dZkA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=S3M7cEnx; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u69-v6si7321117pgd.467.2018.05.14.01.59.31; Mon, 14 May 2018 01:59:46 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=S3M7cEnx; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752482AbeENI5s (ORCPT + 99 others); Mon, 14 May 2018 04:57:48 -0400 Received: from mail-pl0-f66.google.com ([209.85.160.66]:44264 "EHLO mail-pl0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752052AbeENI5o (ORCPT ); Mon, 14 May 2018 04:57:44 -0400 Received: by mail-pl0-f66.google.com with SMTP id e6-v6so6963931plt.11 for ; Mon, 14 May 2018 01:57:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=sSEMab6IMNQz3/RjvLiWiFX+Zq0WYBiRrZjP2qAXMUY=; b=S3M7cEnxZRj3XZAA0deHFLTu6i/658UiAOzK3xugklP42QwqR0i4lXVFdJmegRujfx 91gtG1iFaMttC3Vh67DJVGgkEEcQfffiDv6CS9RpepOQJvHTAksZ9Zr0KiejdiLMmX5y SY0oyLGX/XuPzckONQ7lqzXGpdmi45nk/7aMg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=sSEMab6IMNQz3/RjvLiWiFX+Zq0WYBiRrZjP2qAXMUY=; b=c+3VB+N2uKloRvcvPe3DBLiHgcsBuD9KrqM/DjsX+g46rBCVGbf6MTO9RExC2N7H44 xLRNgKjNgyOfJavFBkFTxB/uOVEpfrBvKbFMM7KCBDWsB77Dw2d8wEpvmqyuBUW6N9vq /+EQPAxgU7PQ+rYjHxo9udGwtfdpGsws8rXH6srQtJL+0l9PxWmlDzs1/6WYFtdH5EFF /lqFcrE98vn+8nVfumdVkVJOgpjfIY0Ktz1+treyp7YwO6v8Aw29+DATs8ZGeZPDp1Se HYaPMpNdBpPmo7QBY1JCVOlbn/At5nbBrYnHJtLXADdSQ+0qQYSx/+V1g05leZG03Kbo sA8g== X-Gm-Message-State: ALKqPwenKlMt99yw19bQJdS2LeuvwjUE9LpkFvQ2cSfj25V8IRkngzMu tTElwrzLutmG8vVQ5GhH56D6jA== X-Received: by 2002:a17:902:d24:: with SMTP id 33-v6mr8923909plu.22.1526288263753; Mon, 14 May 2018 01:57:43 -0700 (PDT) Received: from baolinwangubtpc.spreadtrum.com ([117.18.48.102]) by smtp.gmail.com with ESMTPSA id x71-v6sm23308158pfe.47.2018.05.14.01.57.33 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 14 May 2018 01:57:43 -0700 (PDT) From: Baolin Wang To: tglx@linutronix.de, john.stultz@linaro.org, daniel.lezcano@linaro.org, arnd@arndb.de, tony@atomide.com, aaro.koskinen@iki.fi, linux@armlinux.org.uk, mark.rutland@arm.com, marc.zyngier@arm.com Cc: baolin.wang@linaro.org, broonie@kernel.org, paulmck@linux.vnet.ibm.com, mlichvar@redhat.com, rdunlap@infradead.org, kstewart@linuxfoundation.org, gregkh@linuxfoundation.org, pombredanne@nexb.com, thierry.reding@gmail.com, jonathanh@nvidia.com, heiko@sntech.de, linus.walleij@linaro.org, viresh.kumar@linaro.org, mingo@kernel.org, hpa@zytor.com, peterz@infradead.org, douly.fnst@cn.fujitsu.com, len.brown@intel.com, rajvi.jingar@intel.com, alexandre.belloni@bootlin.com, x86@kernel.org, linux-arm-kernel@lists.infradead.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org Subject: [RFC PATCH 10/10] time: timekeeping: Remove time compensating from nonstop clocksources Date: Mon, 14 May 2018 16:55:36 +0800 Message-Id: X-Mailer: git-send-email 1.7.9.5 In-Reply-To: References: In-Reply-To: References: Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Since we have converted all nonstop clocksources to use persistent clock, thus we can simplify the time compensating by removing the nonstop clocksources. Now we can compensate the suspend time for the OS time from the persistent clock or rtc device. Signed-off-by: Baolin Wang --- kernel/time/timekeeping.c | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c index 49cbcee..48d2a80 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c @@ -1666,7 +1666,6 @@ void timekeeping_inject_sleeptime64(struct timespec64 *delta) void timekeeping_resume(void) { struct timekeeper *tk = &tk_core.timekeeper; - struct clocksource *clock = tk->tkr_mono.clock; unsigned long flags; struct timespec64 ts_new, ts_delta; u64 cycle_now; @@ -1682,27 +1681,17 @@ void timekeeping_resume(void) /* * After system resumes, we need to calculate the suspended time and - * compensate it for the OS time. There are 3 sources that could be - * used: Nonstop clocksource during suspend, persistent clock and rtc - * device. + * compensate it for the OS time. There are 2 sources that could be + * used: persistent clock and rtc device. * * One specific platform may have 1 or 2 or all of them, and the * preference will be: - * suspend-nonstop clocksource -> persistent clock -> rtc + * persistent clock -> rtc * The less preferred source will only be tried if there is no better * usable source. The rtc part is handled separately in rtc core code. */ cycle_now = tk_clock_read(&tk->tkr_mono); - if ((clock->flags & CLOCK_SOURCE_SUSPEND_NONSTOP) && - cycle_now > tk->tkr_mono.cycle_last) { - u64 nsec, cyc_delta; - - cyc_delta = clocksource_delta(cycle_now, tk->tkr_mono.cycle_last, - tk->tkr_mono.mask); - nsec = mul_u64_u32_shr(cyc_delta, clock->mult, clock->shift); - ts_delta = ns_to_timespec64(nsec); - sleeptime_injected = true; - } else if (timespec64_compare(&ts_new, &timekeeping_suspend_time) > 0) { + if (timespec64_compare(&ts_new, &timekeeping_suspend_time) > 0) { ts_delta = timespec64_sub(ts_new, timekeeping_suspend_time); sleeptime_injected = true; } -- 1.7.9.5