[RFC 0/2] Propagate virtual timer interrupts to userspace

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This patchset allows virtual timer to function without vGIC. In this case
the interrupt should be handled by userspace GIC emulation.

In order to signal an interrupt a VM exit is performed with KVM_EXIT_IRQ
return code. Together with the code, IRQ number and level is returned.

'level' is actually reserved for possible future level-sensitive interrupts.
For them KVM_EXIT_IRQ code would be generated upon line state transition
to the specified level. For edge-sensitive interrupts actually only 'irq'
number is meaningful, signalling trigger condition on the specified IRQ.
However, 'level' still denotes active state (1 for low-to-high edge or 0
for high-to-low edge).

Currently there's no additional API to specify how to treate particular
IRQs in the userspace. The userspace is assumed just to know it. On ARM
architecture all interrupts are processed by KVM as if they were
edge-sensitive, therefore timer interrupt as signalled as edge-sensitive,
active high.

This patch set is to be applied on top of "Allow to use KVM without
in-kernel irqchip" one.

Pavel Fedin (2):
  Introduce KVM_EXIT_IRQ
  Send KVM_EXIT_IRQ from timer if irqchip is not used

 arch/arm/kvm/arm.c        | 18 +++++++++++-------
 include/linux/kvm_host.h  |  7 +++++++
 include/uapi/linux/kvm.h  |  3 +++
 virt/kvm/arm/arch_timer.c |  6 ++++++
 4 files changed, 27 insertions(+), 7 deletions(-)

-- 
2.4.4

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux