search for: kvm_set_irq

Displaying 18 results from an estimated 18 matches for "kvm_set_irq".

Did you mean: svm_set_irq
2011 Feb 25
2
Bug inkvm_set_irq
...f this is a bug in kvm module code or in the vhost_net code. Feb 23 13:56:19 ayrshire.u06.univ-nantes.prive kernel: [ 685.243100] BUG: unable to handle kernel paging request at 0000000000002458 Feb 23 13:56:19 ayrshire.u06.univ-nantes.prive kernel: [ 685.243250] IP: [<ffffffffa041aa8a>] kvm_set_irq+0x2a/0x130 [kvm] Feb 23 13:56:19 ayrshire.u06.univ-nantes.prive kernel: [ 685.243378] PGD 45d363067 PUD 45e77a067 PMD 0 Feb 23 13:56:19 ayrshire.u06.univ-nantes.prive kernel: [ 685.243556] Oops: 0000 [#1] SMP Feb 23 13:56:19 ayrshire.u06.univ-nantes.prive kernel: [ 685.243692] last sysfs file...
2011 Feb 25
2
Bug inkvm_set_irq
...f this is a bug in kvm module code or in the vhost_net code. Feb 23 13:56:19 ayrshire.u06.univ-nantes.prive kernel: [ 685.243100] BUG: unable to handle kernel paging request at 0000000000002458 Feb 23 13:56:19 ayrshire.u06.univ-nantes.prive kernel: [ 685.243250] IP: [<ffffffffa041aa8a>] kvm_set_irq+0x2a/0x130 [kvm] Feb 23 13:56:19 ayrshire.u06.univ-nantes.prive kernel: [ 685.243378] PGD 45d363067 PUD 45e77a067 PMD 0 Feb 23 13:56:19 ayrshire.u06.univ-nantes.prive kernel: [ 685.243556] Oops: 0000 [#1] SMP Feb 23 13:56:19 ayrshire.u06.univ-nantes.prive kernel: [ 685.243692] last sysfs file...
2008 Jun 27
8
PCI device assignment to guests
The main change from the patches I sent out earlier this week is support for guests that use the PIC. A callback for PIC irq ack handling is also introduced. Currently, there's no mechanism to register/unregister callers to the irq ack callbacks, but they can be added when there's more than one user for the functionality. Please review.
2008 Jun 27
8
PCI device assignment to guests
The main change from the patches I sent out earlier this week is support for guests that use the PIC. A callback for PIC irq ack handling is also introduced. Currently, there's no mechanism to register/unregister callers to the irq ack callbacks, but they can be added when there's more than one user for the functionality. Please review.
2014 Nov 13
1
[RFC PATCH] virtio-mmio: support for multiple irqs
...n we use only virtio-mmio or vhost-net without irqfd, the device uses qemu_set_irq(within qemu) to inject interrupt and at the same time qemu update "VIRTIO_MMIO_INTERRUPT_STATUS" to tell guest driver whom this interrupt to. All these things are done by qemu. Though qemu_set_irq will call kvm_set_irq to do the real interrupt inject, but the trigger is qemu and it can update the "VIRTIO_MMIO_INTERRUPT_STATUS" register before injecting the interrupt. But if we use vhost-net with irqfd, the device uses ioeventfd mechanism to inject interrupt. When an interrupt happened, it doesn't t...
2014 Nov 13
1
[RFC PATCH] virtio-mmio: support for multiple irqs
...n we use only virtio-mmio or vhost-net without irqfd, the device uses qemu_set_irq(within qemu) to inject interrupt and at the same time qemu update "VIRTIO_MMIO_INTERRUPT_STATUS" to tell guest driver whom this interrupt to. All these things are done by qemu. Though qemu_set_irq will call kvm_set_irq to do the real interrupt inject, but the trigger is qemu and it can update the "VIRTIO_MMIO_INTERRUPT_STATUS" register before injecting the interrupt. But if we use vhost-net with irqfd, the device uses ioeventfd mechanism to inject interrupt. When an interrupt happened, it doesn't t...
2008 Jul 07
0
[PATCH] KVM: Add irq ack notifier list
...t are interested in when interrupts are acked, for example time drift compenstation. Signed-off-by: Avi Kivity <avi at qumranet.com> diff --git a/arch/x86/kvm/irq.c b/arch/x86/kvm/irq.c index 0d9e552..9091195 100644 --- a/arch/x86/kvm/irq.c +++ b/arch/x86/kvm/irq.c @@ -111,3 +111,25 @@ void kvm_set_irq(struct kvm *kvm, int irq, int level) kvm_ioapic_set_irq(kvm->arch.vioapic, irq, level); kvm_pic_set_irq(pic_irqchip(kvm), irq, level); } + +void kvm_notify_acked_irq(struct kvm *kvm, unsigned gsi) +{ + struct kvm_irq_ack_notifier *kian; + struct hlist_node *n; + + hlist_for_each_entry(kian,...
2014 Nov 12
2
[RFC PATCH] virtio-mmio: support for multiple irqs
On 2014/11/11 23:11, Pawel Moll wrote: > On Tue, 2014-11-04 at 09:35 +0000, Shannon Zhao wrote: >> As the current virtio-mmio only support single irq, >> so some advanced features such as vhost-net with irqfd >> are not supported. And the net performance is not >> the best without vhost-net and irqfd supporting. > > Could you, please, help understanding me where
2014 Nov 12
2
[RFC PATCH] virtio-mmio: support for multiple irqs
On 2014/11/11 23:11, Pawel Moll wrote: > On Tue, 2014-11-04 at 09:35 +0000, Shannon Zhao wrote: >> As the current virtio-mmio only support single irq, >> so some advanced features such as vhost-net with irqfd >> are not supported. And the net performance is not >> the best without vhost-net and irqfd supporting. > > Could you, please, help understanding me where
2015 Oct 09
0
[PATCH 1/2] kvm/x86: Hyper-V synthetic interrupt controller
...si(struct kvm *kvm, struct kvm_kernel_irq_routing_entry *entries, int gsi); int kvm_irq_map_chip_pin(struct kvm *kvm, unsigned irqchip, unsigned pin); +int kvm_hv_get_sint_gsi(struct kvm_vcpu *vcpu, u32 sint); +int kvm_hv_set_sint_gsi(struct kvm *kvm, u32 vcpu_id, u32 sint, int gsi); int kvm_set_irq(struct kvm *kvm, int irq_source_id, u32 irq, int level, bool line_status); int kvm_set_irq_inatomic(struct kvm *kvm, int irq_source_id, u32 irq, int level); int kvm_set_msi(struct kvm_kernel_irq_routing_entry *irq_entry, struct kvm *kvm, int irq_source_id, int level, bool line_status); +int...
2009 May 11
0
[PATCH 1/2] qemu-kvm: add MSI-X support
...{ + return MSIX_PAGE_SIZE; +} + +/* TODO: convert to qemu_set_irq and friends, to make this work without kvm */ +/* Send an MSI-X message */ +void msix_notify(PCIDevice *dev, unsigned vector) +{ + if (vector < dev->msix_irq_entries_nr && dev->msix_entry_used[vector]) + kvm_set_irq(dev->msix_irq_entries[vector].gsi, 1, NULL); +} + +/* Mark vector as used. */ +int msix_vector_use(PCIDevice *dev, unsigned vector) +{ + uint8_t *table_entry = dev->msix_table_page + vector * MSIX_ENTRY_SIZE; + struct kvm_irq_routing_entry *entry = dev->msix_irq_entries + vector; +...
2009 May 11
0
[PATCH 1/2] qemu-kvm: add MSI-X support
...{ + return MSIX_PAGE_SIZE; +} + +/* TODO: convert to qemu_set_irq and friends, to make this work without kvm */ +/* Send an MSI-X message */ +void msix_notify(PCIDevice *dev, unsigned vector) +{ + if (vector < dev->msix_irq_entries_nr && dev->msix_entry_used[vector]) + kvm_set_irq(dev->msix_irq_entries[vector].gsi, 1, NULL); +} + +/* Mark vector as used. */ +int msix_vector_use(PCIDevice *dev, unsigned vector) +{ + uint8_t *table_entry = dev->msix_table_page + vector * MSIX_ENTRY_SIZE; + struct kvm_irq_routing_entry *entry = dev->msix_irq_entries + vector; +...
2009 May 20
0
[PATCHv2-RFC 1/2] qemu-kvm: add MSI-X support
...{ + return MSIX_PAGE_SIZE; +} + +/* TODO: convert to qemu_set_irq and friends, to make this work without kvm */ +/* Send an MSI-X message */ +void msix_notify(PCIDevice *dev, unsigned vector) +{ + if (vector < dev->msix_irq_entries_nr && dev->msix_entry_used[vector]) + kvm_set_irq(dev->msix_irq_entries[vector].gsi, 1, NULL); +} + +/* Mark vector as used. */ +int msix_vector_use(PCIDevice *dev, unsigned vector) +{ + uint8_t *table_entry = dev->msix_table_page + vector * MSIX_ENTRY_SIZE; + struct kvm_irq_routing_entry *entry = dev->msix_irq_entries + vector; +...
2009 May 20
0
[PATCHv2-RFC 1/2] qemu-kvm: add MSI-X support
...{ + return MSIX_PAGE_SIZE; +} + +/* TODO: convert to qemu_set_irq and friends, to make this work without kvm */ +/* Send an MSI-X message */ +void msix_notify(PCIDevice *dev, unsigned vector) +{ + if (vector < dev->msix_irq_entries_nr && dev->msix_entry_used[vector]) + kvm_set_irq(dev->msix_irq_entries[vector].gsi, 1, NULL); +} + +/* Mark vector as used. */ +int msix_vector_use(PCIDevice *dev, unsigned vector) +{ + uint8_t *table_entry = dev->msix_table_page + vector * MSIX_ENTRY_SIZE; + struct kvm_irq_routing_entry *entry = dev->msix_irq_entries + vector; +...
2015 Oct 09
5
[PATCH 0/2] Hyper-V synthetic interrupt controller
This patchset implements the KVM part of the synthetic interrupt controller (synic) which is a building block of the Hyper-V paravirtualized device bus (vmbus). Synic is a lapic extension, which is controlled via MSRs and maintains for each vCPU - 16 synthetic interrupt "lines" (SINT's); each can be configured to trigger a specific interrupt vector optionally with auto-EOI
2015 Oct 09
5
[PATCH 0/2] Hyper-V synthetic interrupt controller
This patchset implements the KVM part of the synthetic interrupt controller (synic) which is a building block of the Hyper-V paravirtualized device bus (vmbus). Synic is a lapic extension, which is controlled via MSRs and maintains for each vCPU - 16 synthetic interrupt "lines" (SINT's); each can be configured to trigger a specific interrupt vector optionally with auto-EOI
2015 Oct 16
10
[PATCH v2 0/9] Hyper-V synthetic interrupt controller
This patchset implements the KVM part of the synthetic interrupt controller (SynIC) which is a building block of the Hyper-V paravirtualized device bus (vmbus). SynIC is a lapic extension, which is controlled via MSRs and maintains for each vCPU - 16 synthetic interrupt "lines" (SINT's); each can be configured to trigger a specific interrupt vector optionally with auto-EOI
2015 Oct 16
10
[PATCH v2 0/9] Hyper-V synthetic interrupt controller
This patchset implements the KVM part of the synthetic interrupt controller (SynIC) which is a building block of the Hyper-V paravirtualized device bus (vmbus). SynIC is a lapic extension, which is controlled via MSRs and maintains for each vCPU - 16 synthetic interrupt "lines" (SINT's); each can be configured to trigger a specific interrupt vector optionally with auto-EOI