[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 14/45] kvm: Hyper-V SynIC irq routing support
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PULL 14/45] kvm: Hyper-V SynIC irq routing support |
Date: |
Thu, 17 Dec 2015 18:46:10 +0100 |
From: Andrey Smetanin <address@hidden>
Signed-off-by: Andrey Smetanin <address@hidden>
Reviewed-by: Roman Kagan <address@hidden>
Signed-off-by: Denis V. Lunev <address@hidden>
CC: Paolo Bonzini <address@hidden>
CC: Richard Henderson <address@hidden>
CC: Eduardo Habkost <address@hidden>
CC: "Andreas Färber" <address@hidden>
CC: Marcelo Tosatti <address@hidden>
CC: Roman Kagan <address@hidden>
CC: Denis V. Lunev <address@hidden>
CC: address@hidden
Signed-off-by: Paolo Bonzini <address@hidden>
---
include/sysemu/kvm.h | 1 +
kvm-all.c | 33 +++++++++++++++++++++++++++++++++
2 files changed, 34 insertions(+)
diff --git a/include/sysemu/kvm.h b/include/sysemu/kvm.h
index b31f325..9a569f1 100644
--- a/include/sysemu/kvm.h
+++ b/include/sysemu/kvm.h
@@ -455,6 +455,7 @@ int kvm_irqchip_update_msi_route(KVMState *s, int virq,
MSIMessage msg,
void kvm_irqchip_release_virq(KVMState *s, int virq);
int kvm_irqchip_add_adapter_route(KVMState *s, AdapterInfo *adapter);
+int kvm_irqchip_add_hv_sint_route(KVMState *s, uint32_t vcpu, uint32_t sint);
int kvm_irqchip_add_irqfd_notifier_gsi(KVMState *s, EventNotifier *n,
EventNotifier *rn, int virq);
diff --git a/kvm-all.c b/kvm-all.c
index ed707fe..e78a378 100644
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -1300,6 +1300,34 @@ int kvm_irqchip_add_adapter_route(KVMState *s,
AdapterInfo *adapter)
return virq;
}
+int kvm_irqchip_add_hv_sint_route(KVMState *s, uint32_t vcpu, uint32_t sint)
+{
+ struct kvm_irq_routing_entry kroute = {};
+ int virq;
+
+ if (!kvm_gsi_routing_enabled()) {
+ return -ENOSYS;
+ }
+ if (!kvm_check_extension(s, KVM_CAP_HYPERV_SYNIC)) {
+ return -ENOSYS;
+ }
+ virq = kvm_irqchip_get_virq(s);
+ if (virq < 0) {
+ return virq;
+ }
+
+ kroute.gsi = virq;
+ kroute.type = KVM_IRQ_ROUTING_HV_SINT;
+ kroute.flags = 0;
+ kroute.u.hv_sint.vcpu = vcpu;
+ kroute.u.hv_sint.sint = sint;
+
+ kvm_add_routing_entry(s, &kroute);
+ kvm_irqchip_commit_routes(s);
+
+ return virq;
+}
+
#else /* !KVM_CAP_IRQ_ROUTING */
void kvm_init_irq_routing(KVMState *s)
@@ -1325,6 +1353,11 @@ int kvm_irqchip_add_adapter_route(KVMState *s,
AdapterInfo *adapter)
return -ENOSYS;
}
+int kvm_irqchip_add_hv_sint_route(KVMState *s, uint32_t vcpu, uint32_t sint)
+{
+ return -ENOSYS;
+}
+
static int kvm_irqchip_assign_irqfd(KVMState *s, int fd, int virq, bool assign)
{
abort();
--
2.5.0
- [Qemu-devel] [PULL 05/45] memory: emulate ioeventfd, (continued)
- [Qemu-devel] [PULL 05/45] memory: emulate ioeventfd, Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 03/45] exec: Remove unnecessary RAM_FILE flag, Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 08/45] vmw_pvscsi: Introduce 'x-old-pci-configuration' backword compatability property, Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 06/45] vmw_pvscsi: Set device subsystem and revision, Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 09/45] vmw_pvscsi: coding: Introduce PVSCSIClass, Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 07/45] vmw_pvscsi: Change offset of msi pci capability, Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 10/45] vmw_pvscsi: The pvscsi device is a PCIE endpoint, Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 11/45] vmw_pvscsi: Introduce 'x-disable-pcie' backword compatability property, Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 14/45] kvm: Hyper-V SynIC irq routing support,
Paolo Bonzini <=
- [Qemu-devel] [PULL 13/45] target-i386/kvm: Hyper-V SynIC MSR's support, Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 15/45] target-i386/hyperv: Hyper-V SynIC SINT routing and vcpu exit, Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 12/45] linux-headers: update from kvm/next, Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 16/45] hw/misc: Hyper-V test device 'hyperv-testdev', Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 18/45] kvm: add support for -machine kernel_irqchip=split, Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 17/45] target-i386/kvm: Hyper-V SynIC timers MSR's support, Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 20/45] qemu-char: append opt to stop truncation of serial file, Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 19/45] kvm: x86: add support for KVM_CAP_SPLIT_IRQCHIP, Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 23/45] cris: avoid "naked" qemu_log, Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 22/45] alpha: convert "naked" qemu_log to tracepoint, Paolo Bonzini, 2015/12/17