From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57961) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZVKOy-0000Po-O8 for qemu-devel@nongnu.org; Fri, 28 Aug 2015 10:13:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZVKOv-0004zR-Hc for qemu-devel@nongnu.org; Fri, 28 Aug 2015 10:13:08 -0400 Received: from mx1.redhat.com ([209.132.183.28]:43036) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZVKOv-0004zC-Cf for qemu-devel@nongnu.org; Fri, 28 Aug 2015 10:13:05 -0400 Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (Postfix) with ESMTPS id 0107FC1C4BBC for ; Fri, 28 Aug 2015 14:13:04 +0000 (UTC) Date: Fri, 28 Aug 2015 15:12:59 +0100 From: Stefan Hajnoczi Message-ID: <20150828141259.GE30542@stefanha-thinkpad.redhat.com> References: <1440703987-29012-1-git-send-email-lvivier@redhat.com> <1440703987-29012-4-git-send-email-lvivier@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1440703987-29012-4-git-send-email-lvivier@redhat.com> Subject: Re: [Qemu-devel] [PATCH v3 3/9] pcnet: remove muldiv64() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Laurent Vivier Cc: Paolo Bonzini , qemu-devel@nongnu.org, "Michael S . Tsirkin" On Thu, Aug 27, 2015 at 09:33:01PM +0200, Laurent Vivier wrote: > Originally, timers were ticks based, and it made sense to > add ticks to current time to know when to trigger an alarm. > > But since commit: > > 7447545 change all other clock references to use nanosecond resolution accessors > > All timers use nanoseconds and we need to convert ticks to nanoseconds, by > doing something like: > > y = muldiv64(x, get_ticks_per_sec(), PCI_FREQUENCY) > > where x is the number of device ticks and y the number of system ticks. > > y is used as nanoseconds in timer functions, > it works because 1 tick is 1 nanosecond. > (get_ticks_per_sec() is 10^9) > > But as PCI frequency is 33 MHz, we can also do: > > y = x * 30; /* 33 MHz PCI period is 30 ns */ > > Which is much more simple. > > This implies a 33.333333 MHz PCI frequency, > but this is correct. > > Signed-off-by: Laurent Vivier > --- > v3: part of "PCI: remove muldiv64()" > hw/net/pcnet.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) Reviewed-by: Stefan Hajnoczi