OSDN Git Service

hw/xen: Implement EVTCHNOP_bind_virq
authorDavid Woodhouse <dwmw@amazon.co.uk>
Tue, 13 Dec 2022 22:40:56 +0000 (22:40 +0000)
committerDavid Woodhouse <dwmw@amazon.co.uk>
Wed, 1 Mar 2023 08:22:50 +0000 (08:22 +0000)
commitc723d4c15e224e9d058384eecd30559580836c7a
tree351ae167553fa0c4ef6eca1fdb40ccab364488c7
parent190cc3c0edd60876150959ee9f242363e40d168e
hw/xen: Implement EVTCHNOP_bind_virq

Add the array of virq ports to each vCPU so that we can deliver timers,
debug ports, etc. Global virqs are allocated against vCPU 0 initially,
but can be migrated to other vCPUs (when we implement that).

The kernel needs to know about VIRQ_TIMER in order to accelerate timers,
so tell it via KVM_XEN_VCPU_ATTR_TYPE_TIMER. Also save/restore the value
of the singleshot timer across migration, as the kernel will handle the
hypercalls automatically now.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Reviewed-by: Paul Durrant <paul@xen.org>
hw/i386/kvm/xen_evtchn.c
hw/i386/kvm/xen_evtchn.h
include/sysemu/kvm_xen.h
target/i386/cpu.h
target/i386/kvm/xen-emu.c
target/i386/machine.c