Hyper-V SynIC (synthetic interrupt controller) device implementation. The implementation contains: * msr's support * irq routing setup * irq injection * irq ack callback registration * event/message pages changes tracking at Hyper-V exit * Hyper-V test device to test SynIC by kvm-unit-tests
Andrey Smetanin (7): standard-headers/x86: add Hyper-V SynIC constants target-i386/kvm: Hyper-V SynIC MSR's support linux-headers/kvm: add Hyper-V SynIC irq routing type and struct kvm: Hyper-V SynIC irq routing support linux-headers/kvm: KVM_EXIT_HYPERV type and struct target-i386/hyperv: Hyper-V SynIC SINT routing and vCPU exit hw/misc: Hyper-V test device 'hyperv-testdev' default-configs/i386-softmmu.mak | 1 + default-configs/x86_64-softmmu.mak | 1 + hw/misc/Makefile.objs | 1 + hw/misc/hyperv_testdev.c | 164 ++++++++++++++++++++++++++++++ include/standard-headers/asm-x86/hyperv.h | 12 +++ include/sysemu/kvm.h | 1 + kvm-all.c | 33 ++++++ linux-headers/linux/kvm.h | 25 +++++ target-i386/Makefile.objs | 2 +- target-i386/cpu-qom.h | 1 + target-i386/cpu.c | 1 + target-i386/cpu.h | 5 + target-i386/hyperv.c | 127 +++++++++++++++++++++++ target-i386/hyperv.h | 42 ++++++++ target-i386/kvm.c | 66 +++++++++++- target-i386/machine.c | 39 +++++++ 16 files changed, 519 insertions(+), 2 deletions(-) create mode 100644 hw/misc/hyperv_testdev.c create mode 100644 target-i386/hyperv.c create mode 100644 target-i386/hyperv.h Signed-off-by: Andrey Smetanin <asmeta...@virtuozzo.com> Reviewed-by: Roman Kagan <rka...@virtuozzo.com> Signed-off-by: Denis V. Lunev <d...@openvz.org> CC: Vitaly Kuznetsov <vkuzn...@redhat.com> CC: "K. Y. Srinivasan" <k...@microsoft.com> CC: Gleb Natapov <g...@kernel.org> CC: Paolo Bonzini <pbonz...@redhat.com> CC: Roman Kagan <rka...@virtuozzo.com> CC: Denis V. Lunev <d...@openvz.org> CC: k...@vger.kernel.org CC: virtualizat...@lists.linux-foundation.org -- 2.4.3