summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAlex Bligh <alex@alex.org.uk>2013-08-21 16:02:57 +0100
committerStefan Hajnoczi <stefanha@redhat.com>2013-08-22 19:10:28 +0200
commitac70aafc28bec4d1014082f0c6659a368c5a95bd (patch)
tree44fe4dafc708c49787dd77901601fb006c720b31 /include
parenta3a726ae09cdf6d277ac88cd725cf50d5849db2c (diff)
downloadqemu-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.h13
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
*