Hyper-V SynIC (synthetic interrupt controller) support: * msr's support * irq routing setup * irq injection * irq ack's callbacks * event/message pages changes tracking at Hyper-V exit * Hyper-V test device to test SynIC by kvm-unit-tests
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: Paolo Bonzini <pbonz...@redhat.com> CC: Richard Henderson <r...@twiddle.net> CC: Eduardo Habkost <ehabk...@redhat.com> CC: "Andreas Färber" <afaer...@suse.de> CC: Marcelo Tosatti <mtosa...@redhat.com> CC: Roman Kagan <rka...@virtuozzo.com> CC: Denis V. Lunev <d...@openvz.org> CC: k...@vger.kernel.org Changes v2: * linux headers update by scripts moved into separate patche * activate Hyper-V SynIC by enabling corresponding vcpu cap * reject cpu initialization if user requested Hyper-V SynIC but kernel does not support Hyper-V SynIC Andrey Smetanin (5): headers: Linux kernel Hyper-V SynIC defines target-i386/kvm: Hyper-V SynIC MSR's support kvm: Hyper-V SynIC irq routing support 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 | 73 ++++++++++++- target-i386/machine.c | 39 +++++++ 16 files changed, 526 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 -- 2.4.3