Hi all, this small patch series prevents Qemu from waking up needlessly on Xen several times a second in order to check some timers.
The first patch stops Qemu from emulating the PIT on Xen, the second patch disables the rtc_clock entirely. The third patch makes use of a new mechanism to receive buffered io event notifications from Xen, so that Qemu doesn't need to check the buffered io page for data 10 times a sec for the entire life of the VM. The fourth patch fixes win32_rearm_timer and mm_rearm_timer that risk an overflow if INT64_MAX is passed as delta. The fifth patch changes qemu_next_alarm_deadline only to check the expire time of a clock if it is enabled. Finally the last patch increases the default select timeout to 1h: nothing should rely on the select timeout to be 1sec, so we might as well increase it to 1h. Changes in v3: - added a new patch to fix win32_rearm_timer and mm_rearm_timer, that risk an overflow if INT64_MAX is passed as delta. Shortlog and diffstat follow: Stefano Stabellini (6): xen: do not initialize the interval timer emulator xen: disable rtc_clock xen: introduce an event channel for buffered io event notifications timers: the rearm function should be able to handle delta = INT64_MAX qemu_next_alarm_deadline: check the expire time of a clock only if it is enabled qemu_calculate_timeout: increase minimum timeout to 1h hw/pc.c | 7 +++++-- qemu-timer.c | 30 ++++++++++++++++++------------ xen-all.c | 43 +++++++++++++++++++++++++++++++++++++------ 3 files changed, 60 insertions(+), 20 deletions(-) A git tree available here: git://xenbits.xen.org/people/sstabellini/qemu-dm.git timers-3 Cheers, Stefano