Nowadays, we run hpet on iothread. But there are so many undetermined jobs on iothread. It will heavily affect the accuracy of hpet's timing. When running on a dedicated thread, the accuracy of timing is only determined by scheduler. which is more fixed.
This series depend on the thread-safe patches for timers. And it is just for discussion. And code is premature. Liu Ping Fan (5): irq: introduce route method in IRQState to get gsi irq: implement route method of ioapic irqfd: equip irqfd with polarity hpet: deliver irq by irqfd when in dedicated thread mode hpet: run on dedicate thread hw/core/irq.c | 39 ++++++++++++++++++++++ hw/core/qdev.c | 8 +++++ hw/i386/kvm/i8259.c | 8 ++++- hw/i386/kvm/ioapic.c | 21 +++++++++++- hw/i386/pc_q35.c | 4 +-- hw/misc/vfio.c | 4 +-- hw/timer/hpet.c | 85 ++++++++++++++++++++++++++++++++++++++++++++--- hw/virtio/virtio-pci.c | 2 +- include/hw/irq.h | 5 +++ include/hw/qdev-core.h | 2 ++ include/sysemu/kvm.h | 4 ++- kvm-all.c | 14 ++++---- linux-headers/linux/kvm.h | 3 ++ 13 files changed, 180 insertions(+), 19 deletions(-) -- 1.8.1.4