From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ingo Molnar Subject: Re: MSEC_TO_JIFFIES is messed up... Date: Wed, 12 May 2004 22:03:05 +0200 Sender: linux-kernel-owner@vger.kernel.org Message-ID: <20040512200305.GA16078@elte.hu> References: <20040512020700.6f6aa61f.akpm@osdl.org> <20040512181903.GG13421@kroah.com> <40A26FFA.4030701@pobox.com> <20040512193349.GA14936@elte.hu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Jeff Garzik , Greg KH , Andrew Morton , Linux Kernel Mailing List , Netdev Return-path: To: Davide Libenzi Content-Disposition: inline In-Reply-To: List-Id: netdev.vger.kernel.org * Davide Libenzi wrote: > > why is it wrong? > > For HZ == 1000 it's fine, even if it'd better to explicitly make it HZ > dependent and let the compiler to discard them. the compiler cannot discard the multiplication and the division from the following: x * 1000 / 1000 due to overflows. But we know that HZ is 1000 in the arch-dependent param.h, and in sched.c we use the HZ dependent variant: #ifndef JIFFIES_TO_MSEC # define JIFFIES_TO_MSEC(x) ((x) * 1000 / HZ) #endif #ifndef MSEC_TO_JIFFIES # define MSEC_TO_JIFFIES(x) ((x) * HZ / 1000) #endif Ingo