Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751942AbdF1WcD (ORCPT ); Wed, 28 Jun 2017 18:32:03 -0400 Received: from mail-pf0-f195.google.com ([209.85.192.195]:35009 "EHLO mail-pf0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751537AbdF1Wb4 (ORCPT ); Wed, 28 Jun 2017 18:31:56 -0400 Date: Thu, 29 Jun 2017 07:31:53 +0900 From: Stafford Horne To: John Stultz Cc: LKML , Thomas Gleixner , Stephen Boyd Subject: Re: [PATCH] timekeeping: Use proper timekeeper for debug code Message-ID: <20170628223153.GA2589@lianli.shorne-pla.net> References: <20170628132135.13622-1-shorne@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.8.0 (2017-02-23) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1708 Lines: 38 On Wed, Jun 28, 2017 at 10:39:21AM -0700, John Stultz wrote: > On Wed, Jun 28, 2017 at 6:21 AM, Stafford Horne wrote: > > When CONFIG_DEBUG_TIMEKEEPING is enabled the timekeeping_check_update() > > function will update status like last_warning and underflow_seen on the > > timekeeper. > > > > If there are issues found this state is used to rate limit the warnings > > that get printed. > > > > This rate limiting doesn't really really work if stored in real_tk as > > the shadow timekeeper is overwritten onto real_tk at the end of every > > update_wall_time() call, resetting last_warning and other statuses. > > > > Fix rate limiting by using the shadow_timekeeper for > > timekeeping_check_update(). > > > > Fixes: commit 57d05a93ada7 ("time: Rework debugging variables so they aren't global") > > Signed-off-by: Stafford Horne > > Interesting! Thanks for submitting this! Out of curiosity, can you > also talk about the underlying issue that made you come across this > issue? I am working on OpenRISC SMP support. There was one issue where the per_cpu internal timers (used as clocksource) were not in sync, this pointed it out. There is another issue right now when switching from jiffies to the openrisc clocksource. Which is maybe ok because each have different starting points. [ 0.160000] clocksource: Switched to clocksource openrisc_timer [ 0.220000] INFO: timekeeping: Cycle offset (4294173293) is larger than the 'openrisc_timer' clock's 50% safety margin (2147483647) [ 0.220000] timekeeping: Your kernel is still fine, but is feeling a bit nervous Let me know if you want me to add this to the commit message in a v2. -Stafford