From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from sc8-sf-mx1-b.sourceforge.net ([10.3.1.91] helo=mail.sourceforge.net) by sc8-sf-list1-new.sourceforge.net with esmtp (Exim 4.43) id 1KP3Jf-0004i4-Ml for user-mode-linux-devel@lists.sourceforge.net; Fri, 01 Aug 2008 15:41:43 -0700 Received: from saraswathi.solana.com ([198.99.130.12]) by mail.sourceforge.net with esmtps (TLSv1:AES256-SHA:256) (Exim 4.44) id 1KP3Jd-0001nA-6l for user-mode-linux-devel@lists.sourceforge.net; Fri, 01 Aug 2008 15:41:43 -0700 Date: Fri, 1 Aug 2008 18:41:25 -0400 From: Jeff Dike Message-ID: <20080801224125.GA13729@c2.user-mode-linux.org> MIME-Version: 1.0 Content-Disposition: inline Subject: [uml-devel] [PATCH 2/14] uml: fix bad NTP interaction with clock List-Id: The user-mode Linux development list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: user-mode-linux-devel-bounces@lists.sourceforge.net Errors-To: user-mode-linux-devel-bounces@lists.sourceforge.net To: stable@kernel.org Cc: WANG Cong , LKML , uml-devel >From 2b95eda726d565d4abe3cac045022d3141a11b23 Mon Sep 17 00:00:00 2001 UML's supposed nanosecond clock interacts badly with NTP when NTP decides that the clock has drifted ahead and needs to be slowed down. Slowing down the clock is done by decrementing the cycle-to-nanosecond multiplier, which is 1. Decrementing that gives you 0 and time is stopped. This is fixed by switching to a microsecond clock, with a multiplier of 1000. Signed-off-by: Jeff Dike Cc: WANG Cong Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- arch/um/kernel/time.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/um/kernel/time.c b/arch/um/kernel/time.c index e066e84..5036c81 100644 --- a/arch/um/kernel/time.c +++ b/arch/um/kernel/time.c @@ -74,7 +74,7 @@ static irqreturn_t um_timer(int irq, void *dev) static cycle_t itimer_read(void) { - return os_nsecs(); + return os_nsecs() / 1000; } static struct clocksource itimer_clocksource = { @@ -82,7 +82,7 @@ static struct clocksource itimer_clocksource = { .rating = 300, .read = itimer_read, .mask = CLOCKSOURCE_MASK(64), - .mult = 1, + .mult = 1000, .shift = 0, .flags = CLOCK_SOURCE_IS_CONTINUOUS, }; -- 1.5.5.1 ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1760922AbYHAWmk (ORCPT ); Fri, 1 Aug 2008 18:42:40 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1756649AbYHAWlq (ORCPT ); Fri, 1 Aug 2008 18:41:46 -0400 Received: from saraswathi.solana.com ([198.99.130.12]:52108 "EHLO saraswathi.solana.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754428AbYHAWlp (ORCPT ); Fri, 1 Aug 2008 18:41:45 -0400 Date: Fri, 1 Aug 2008 18:41:25 -0400 From: Jeff Dike To: stable@kernel.org Cc: LKML , uml-devel , WANG Cong Subject: [PATCH 2/14] uml: fix bad NTP interaction with clock Message-ID: <20080801224125.GA13729@c2.user-mode-linux.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.18 (2008-05-17) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org >>From 2b95eda726d565d4abe3cac045022d3141a11b23 Mon Sep 17 00:00:00 2001 UML's supposed nanosecond clock interacts badly with NTP when NTP decides that the clock has drifted ahead and needs to be slowed down. Slowing down the clock is done by decrementing the cycle-to-nanosecond multiplier, which is 1. Decrementing that gives you 0 and time is stopped. This is fixed by switching to a microsecond clock, with a multiplier of 1000. Signed-off-by: Jeff Dike Cc: WANG Cong Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- arch/um/kernel/time.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/um/kernel/time.c b/arch/um/kernel/time.c index e066e84..5036c81 100644 --- a/arch/um/kernel/time.c +++ b/arch/um/kernel/time.c @@ -74,7 +74,7 @@ static irqreturn_t um_timer(int irq, void *dev) static cycle_t itimer_read(void) { - return os_nsecs(); + return os_nsecs() / 1000; } static struct clocksource itimer_clocksource = { @@ -82,7 +82,7 @@ static struct clocksource itimer_clocksource = { .rating = 300, .read = itimer_read, .mask = CLOCKSOURCE_MASK(64), - .mult = 1, + .mult = 1000, .shift = 0, .flags = CLOCK_SOURCE_IS_CONTINUOUS, }; -- 1.5.5.1