[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-trivial] [PATCH][TRIVIAL] i6300esb: fix timer overflow
From: |
Richard W.M. Jones |
Subject: |
Re: [Qemu-trivial] [PATCH][TRIVIAL] i6300esb: fix timer overflow |
Date: |
Tue, 4 Aug 2015 14:47:07 +0100 |
User-agent: |
Mutt/1.5.20 (2009-12-10) |
On Tue, Aug 04, 2015 at 10:27:31AM +0200, Laurent Vivier wrote:
> --- a/hw/watchdog/wdt_i6300esb.c
> +++ b/hw/watchdog/wdt_i6300esb.c
> @@ -136,7 +136,7 @@ static void i6300esb_restart_timer(I6300State *d, int
> stage)
> * multiply here can exceed 64-bits, before we divide by 33MHz, so
> * we use a higher-precision intermediate result.
> */
> - timeout = muldiv64(get_ticks_per_sec(), timeout, 33000000);
> + timeout = muldiv64(timeout, get_ticks_per_sec(), 33000000);
>
> i6300esb_debug("stage %d, timeout %" PRIi64 "\n", d->stage, timeout);
Here are the test results for this (v2) patch:
Requested timeout Observed timeout
60 58
120 120
250 253
270 274
500 507
520 529
1010 1026
1030 1045
2046 2078
2500 ioctl: WDIOC_SETTIMEOUT: error setting timeout: Invalid argument
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-p2v converts physical machines to virtual machines. Boot with a
live CD or over the network (PXE) and turn machines into KVM guests.
http://libguestfs.org/virt-v2v