Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964932AbWEBS4E (ORCPT ); Tue, 2 May 2006 14:56:04 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S964968AbWEBS4D (ORCPT ); Tue, 2 May 2006 14:56:03 -0400 Received: from caramon.arm.linux.org.uk ([212.18.232.186]:19474 "EHLO caramon.arm.linux.org.uk") by vger.kernel.org with ESMTP id S964932AbWEBS4B (ORCPT ); Tue, 2 May 2006 14:56:01 -0400 Date: Tue, 2 May 2006 19:55:56 +0100 From: Russell King To: Nicolas Pitre Cc: Andi Kleen , linux-kernel@vger.kernel.org Subject: Re: sched_clock() uses are broken Message-ID: <20060502185555.GB4223@flint.arm.linux.org.uk> Mail-Followup-To: Nicolas Pitre , Andi Kleen , linux-kernel@vger.kernel.org References: <20060502132953.GA30146@flint.arm.linux.org.uk> <20060502165009.GA4223@flint.arm.linux.org.uk> <200605021901.13882.ak@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.1i Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1275 Lines: 32 On Tue, May 02, 2006 at 01:18:25PM -0400, Nicolas Pitre wrote: > On Tue, 2 May 2006, Andi Kleen wrote: > > > On Tuesday 02 May 2006 18:50, Russell King wrote: > > > > > You're right assuming you have a 64-bit TSC, but ARM has at best a > > > 32-bit cycle counter which rolls over about every 179 seconds - with > > > gives a range of values from sched_clock from 0 to 178956970625 or > > > 0x29AAAAAA81. > > > > > > That's rather more of a problem than having it happen every 208 days. > > > > Ok but you know it's always 32bit right? You can fix it up then > > with your proposal of a sched_diff() > > > > The problem would be fixing it up with a unknown number of bits. > > Just shift it left so you know you always have the most significant bits > valid. The sched_diff() would take care of scaling it back to nanosecs. sched_clock is currently defined to return nanoseconds so this isn't a possibility. -- Russell King Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/ maintainer of: 2.6 Serial core - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/