diff options
author | Alex Bligh <alex@alex.org.uk> | 2013-08-21 16:02:57 +0100 |
---|---|---|
committer | Stefan Hajnoczi <stefanha@redhat.com> | 2013-08-22 19:10:28 +0200 |
commit | ac70aafc28bec4d1014082f0c6659a368c5a95bd (patch) | |
tree | 44fe4dafc708c49787dd77901601fb006c720b31 /include | |
parent | a3a726ae09cdf6d277ac88cd725cf50d5849db2c (diff) | |
download | qemu-ac70aafc28bec4d1014082f0c6659a368c5a95bd.tar.gz qemu-ac70aafc28bec4d1014082f0c6659a368c5a95bd.tar.bz2 qemu-ac70aafc28bec4d1014082f0c6659a368c5a95bd.zip |
aio / timers: Use all timerlists in icount warp calculations
Notify all timerlists derived from vm_clock in icount warp
calculations.
When calculating timer delay based on vm_clock deadline, use
all timerlists.
For compatibility, maintain an apparent bug where when using
icount, if no vm_clock timer was set, qemu_clock_deadline
would return INT32_MAX and always set an icount clock expiry
about 2 seconds ahead.
NB: thread safety - when different timerlists sit on different
threads, this will need some locking.
Signed-off-by: Alex Bligh <alex@alex.org.uk>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/qemu/timer.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/include/qemu/timer.h b/include/qemu/timer.h index 205324481a..1265ad2991 100644 --- a/include/qemu/timer.h +++ b/include/qemu/timer.h @@ -103,6 +103,7 @@ int64_t qemu_clock_deadline(QEMUClock *clock); * @clock: the clock to operate on * * Calculate the timeout of the earliest expiring timer + * on the default timer list associated with the clock * in nanoseconds, or -1 if no timer is set to expire. * * Returns: time until expiry in nanoseconds or -1 @@ -126,6 +127,18 @@ int64_t qemu_clock_deadline_ns(QEMUClock *clock); bool qemu_clock_use_for_deadline(QEMUClock *clock); /** + * qemu_clock_use_for_deadline: + * @clock: the clock to operate on + * + * Calculate the deadline across all timer lists associated + * with a clock (as opposed to just the default one) + * in nanoseconds, or -1 if no timer is set to expire. + * + * Returns: time until expiry in nanoseconds or -1 + */ +int64_t qemu_clock_deadline_ns_all(QEMUClock *clock); + +/** * qemu_clock_get_main_loop_timerlist: * @clock: the clock to operate on * |