qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/7] remove useless muldiv64()
@ 2015-08-25 20:44 Laurent Vivier
  2015-08-25 20:44 ` [Qemu-devel] [PATCH 1/7] PCI: remove muldiv64() Laurent Vivier
                   ` (7 more replies)
  0 siblings, 8 replies; 11+ messages in thread
From: Laurent Vivier @ 2015-08-25 20:44 UTC (permalink / raw)
  To: qemu-devel, Peter Maydell, Stefan Hajnoczi, Michael S . Tsirkin,
	Paolo Bonzini, Aurelien Jarno, Leon Alrae, Jia Liu, Jason Wang

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(), TIMER_FREQ)

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 if get_ticks_per_sec() / TIMER_FREQ is an integer, we can do:

    y = x * TIMER_PERIOD;

Laurent Vivier (7):
  PCI: remove muldiv64()
  mips: remove muldiv64()
  openrisc: remove muldiv64()
  arm: remove muldiv64()
  hpet: remove muldiv64()
  bt: remove muldiv64()
  net: remove muldiv64()

 hw/bt/hci.c                |  4 ++--
 hw/mips/cputimer.c         | 19 ++++++++-----------
 hw/net/pcnet.c             |  3 +--
 hw/net/rtl8139.c           | 14 ++++++--------
 hw/openrisc/cputimer.c     |  7 +++----
 hw/timer/hpet.c            |  6 +++---
 hw/watchdog/wdt_i6300esb.c | 11 +++--------
 include/hw/timer/hpet.h    |  4 ++--
 net/dump.c                 |  2 +-
 target-arm/helper.c        |  9 +++------
 tests/rtl8139-test.c       |  2 +-
 11 files changed, 33 insertions(+), 48 deletions(-)

-- 
2.1.0

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2015-08-25 22:51 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-25 20:44 [Qemu-devel] [PATCH 0/7] remove useless muldiv64() Laurent Vivier
2015-08-25 20:44 ` [Qemu-devel] [PATCH 1/7] PCI: remove muldiv64() Laurent Vivier
2015-08-25 20:44 ` [Qemu-devel] [PATCH 2/7] mips: " Laurent Vivier
2015-08-25 20:44 ` [Qemu-devel] [PATCH 3/7] openrisc: " Laurent Vivier
2015-08-25 20:44 ` [Qemu-devel] [PATCH 4/7] arm: " Laurent Vivier
2015-08-25 21:11   ` Peter Crosthwaite
2015-08-25 21:36     ` Laurent Vivier
2015-08-25 20:44 ` [Qemu-devel] [PATCH 5/7] hpet: " Laurent Vivier
2015-08-25 20:44 ` [Qemu-devel] [PATCH 6/7] bt: " Laurent Vivier
2015-08-25 20:44 ` [Qemu-devel] [PATCH 7/7] net: " Laurent Vivier
2015-08-25 22:51 ` [Qemu-devel] [PATCH 0/7] remove useless muldiv64() Paolo Bonzini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).