linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/7] KVM: arm/arm64: gsi routing support
@ 2015-06-29 15:37 Eric Auger
  2015-06-29 15:37 ` [PATCH 1/7] KVM: api: add kvm_irq_routing_extended_msi Eric Auger
                   ` (7 more replies)
  0 siblings, 8 replies; 52+ messages in thread
From: Eric Auger @ 2015-06-29 15:37 UTC (permalink / raw)
  To: eric.auger, eric.auger, linux-arm-kernel, marc.zyngier,
	christoffer.dall, andre.przywara, kvmarm, kvm
  Cc: linux-kernel, patches, p.fedin, pbonzini

With the advent of GICv3 ITS in-kernel emulation, KVM GSI routing
appears to be requested. More specifically MSI routing is needed.
irqchip routing does not sound to be really useful on arm but usage of
MSI routing also mandates to integrate irqchip routing. The initial
implementation of irqfd on arm must be upgraded with the integration
of kvm irqchip.c code and the implementation of its standard hooks
in the architecture specific part.

In case KVM_SET_GSI_ROUTING ioctl is not called, a default routing
table with flat irqchip routing entries is built enabling to inject gsi
corresponding to the SPI indexes seen by the guest.

As soon as KVM_SET_GSI_ROUTING is called, user-space overwrites this
default routing table and is responsible for building the whole routing
table.

for arm/arm64 KVM_SET_GSI_ROUTING has a limited support:
- only applies to KVM_IRQFD and not to KVM_IRQ_LINE

- irqchip routing was tested on Calxeda midway (VFIO with irqfd)
- MSI routing without GICv3 ITS was tested using APM Xgene-I
  (qemu VIRTIO-PCI vhost net without gsi_direct_mapping).
- MSI routing with GICv2 ITS is NOT yet tested.

Code can be found at https://git.linaro.org/people/eric.auger/linux.git/shortlog/refs/heads/v4.1-gsi-routing-patch

It applies on Andre's [PATCH 00/13] arm64: KVM: GICv3 ITS emulation
(http://www.spinics.net/lists/kvm/msg117402.html)

History:

RFC -> PATCH:
- clearly state limited support on arm/arm64:
  KVM_IRQ_LINE not impacted by GSI routing
- add default routing table feature (new patch file)
- changed uapi to use padding field area
- reword api.txt


Eric Auger (7):
  KVM: api: add kvm_irq_routing_extended_msi
  KVM: kvm_host: add kvm_extended_msi
  KVM: irqchip: convey devid to kvm_set_msi
  KVM: arm/arm64: enable irqchip routing
  KVM: arm/arm64: build a default routing table
  KVM: arm/arm64: enable MSI routing
  KVM: arm: implement kvm_set_msi by gsi direct mapping

 Documentation/virtual/kvm/api.txt |  30 ++++++++--
 arch/arm/include/asm/kvm_host.h   |   2 +
 arch/arm/kvm/Kconfig              |   3 +
 arch/arm/kvm/Makefile             |   2 +-
 arch/arm64/include/asm/kvm_host.h |   1 +
 arch/arm64/kvm/Kconfig            |   2 +
 arch/arm64/kvm/Makefile           |   2 +-
 include/kvm/arm_vgic.h            |   9 ---
 include/linux/kvm_host.h          |  10 ++++
 include/uapi/linux/kvm.h          |   6 +-
 virt/kvm/arm/vgic.c               | 117 ++++++++++++++++++++++++++++----------
 virt/kvm/irqchip.c                |  20 +++++--
 12 files changed, 154 insertions(+), 50 deletions(-)

-- 
1.9.1


^ permalink raw reply	[flat|nested] 52+ messages in thread

end of thread, other threads:[~2015-07-07 10:58 UTC | newest]

Thread overview: 52+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-29 15:37 [PATCH 0/7] KVM: arm/arm64: gsi routing support Eric Auger
2015-06-29 15:37 ` [PATCH 1/7] KVM: api: add kvm_irq_routing_extended_msi Eric Auger
2015-07-02  7:26   ` Pavel Fedin
2015-07-02  8:41     ` Pavel Fedin
2015-07-02 14:50       ` Eric Auger
2015-07-02 14:49     ` Eric Auger
2015-07-02 15:14       ` Andre Przywara
2015-07-02 15:22         ` Eric Auger
2015-07-02 15:39           ` Pavel Fedin
2015-07-02 15:41             ` Eric Auger
2015-07-03 15:29               ` Pavel Fedin
2015-07-03 15:42                 ` Eric Auger
2015-07-03  9:05     ` Andre Przywara
2015-07-03 15:53       ` Andre Przywara
2015-07-06  6:42       ` Pavel Fedin
2015-07-06  8:30         ` Andre Przywara
2015-07-06  9:30           ` Christoffer Dall
2015-07-06 10:05             ` Andre Przywara
2015-07-06 10:37               ` Christoffer Dall
2015-07-06 11:07                 ` Paolo Bonzini
2015-07-06 11:23                   ` Andre Przywara
2015-07-06 11:51                     ` Paolo Bonzini
2015-07-06 13:32                       ` Pavel Fedin
2015-07-06 15:01                         ` Eric Auger
2015-07-06 15:52                           ` Andre Przywara
2015-07-06 17:02                             ` Eric Auger
2015-07-07  7:23                             ` Pavel Fedin
2015-07-07  7:43                               ` Eric Auger
2015-07-06 15:37                         ` Andre Przywara
2015-07-06 15:54                           ` Paolo Bonzini
2015-07-06 16:08                             ` Andre Przywara
2015-07-07  7:16                           ` Pavel Fedin
2015-07-07 10:02                             ` Andre Przywara
2015-07-07 10:57                               ` Pavel Fedin
2015-07-06 12:08                     ` Christoffer Dall
2015-07-06 13:33                       ` Pavel Fedin
2015-07-06 15:09                       ` Andre Przywara
2015-06-29 15:37 ` [PATCH 2/7] KVM: kvm_host: add kvm_extended_msi Eric Auger
2015-07-02 17:03   ` Andre Przywara
2015-06-29 15:37 ` [PATCH 3/7] KVM: irqchip: convey devid to kvm_set_msi Eric Auger
2015-06-29 15:37 ` [PATCH 4/7] KVM: arm/arm64: enable irqchip routing Eric Auger
2015-06-30 13:39   ` Andre Przywara
2015-06-30 14:02     ` Eric Auger
2015-06-29 15:37 ` [PATCH 5/7] KVM: arm/arm64: build a default routing table Eric Auger
2015-06-29 15:37 ` [PATCH 6/7] KVM: arm/arm64: enable MSI routing Eric Auger
2015-06-29 15:37 ` [PATCH 7/7] KVM: arm: implement kvm_set_msi by gsi direct mapping Eric Auger
2015-07-02  7:53   ` Pavel Fedin
2015-07-02 15:02     ` Eric Auger
2015-07-02 15:37       ` Pavel Fedin
2015-07-02 17:10   ` Andre Przywara
2015-07-03  5:34     ` Eric Auger
2015-07-05 19:40 ` [PATCH 0/7] KVM: arm/arm64: gsi routing support Christoffer Dall

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).