All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [RFC 0/7] KVM PCI/MSI passthrough with mach-virt
@ 2016-01-27 13:51 Eric Auger
  2016-01-27 13:51 ` [Qemu-devel] [RFC 1/7] linux-headers: partial update for VFIO reserved IOVA registration Eric Auger
                   ` (6 more replies)
  0 siblings, 7 replies; 12+ messages in thread
From: Eric Auger @ 2016-01-27 13:51 UTC (permalink / raw)
  To: eric.auger, eric.auger, qemu-devel, qemu-arm, peter.maydell,
	alex.williamson, pranav.sawargaonkar, p.fedin, pbonzini, agraf
  Cc: Bharat.Bhushan, suravee.suthikulpanit, christoffer.dall

This series enables KVM PCI/MSI passthrough with mach-virt.

A new memory region type is introduced (reserved iova). On
vfio_listener_region_add this IOVA region is registered to the kernel with
VFIO_IOMMU_MAP_DMA (using the new VFIO_DMA_MAP_FLAG_MSI_RESERVED_IOVA flag).

The host VFIO PCI driver then can use this IOVA window to map some host
physical addresses, accessed by passthrough'ed PCI devices, through the IOMMU.
The first goal is to map host MSI controller frames (GICv2M, GITS_TRANSLATER).

mach-virt currently instantiates a 16x64kB reserved IOVA window. This
provisions for future usage. Most probably this exceeds MSI binding needs.

The series includes Pranav/Tushar' series:
QEMU, [v2 0/2] Generic PCIe host bridge INTx determination for INTx routing
((https://lists.nongnu.org/archive/html/qemu-devel/2015-04/msg04361.html))

Those patches are not mandated for PCI/MSI passthrough to work but without
those, the following warning is observed and can puzzle the end-user:
"qemu-system-aarch64: PCI: Bug - unimplemented PCI INTx routing (gpex-pcihost)"

If prefered, this series can be maintained separately. I just put them here
for consistency.

Best Regards

Eric

Dependencies:
The series depends on kernel series: "[PATCH 00/10] KVM PCIe/MSI passthrough on
ARM/ARM64", (https://lkml.org/lkml/2016/1/26/371)

Git:
QEMU:
https://git.linaro.org/people/eric.auger/qemu.git/shortlog/refs/heads/v2.5.0-pci-passthrough-rfc

Kernel:
https://git.linaro.org/people/eric.auger/linux.git/shortlog/refs/heads/v4.5-rc1-pcie-passthrough-v1

Testing:
- on ARM64 AMD Overdrive HW with one e1000e PCIe card.

Eric Auger (7):
  linux-headers: partial update for VFIO reserved IOVA registration
  Add a function to determine interrupt number for INTx routing
  Generic PCIe host bridge INTx determination for INTx routing
  hw: vfio: common: introduce vfio_register_reserved_iova
  memory: add reserved_iova region type
  hw: arm: virt: register reserved IOVA region
  hw: vfio: common: adapt vfio_listeners for reserved_iova region

 hw/arm/virt.c              | 14 ++++++++++
 hw/pci-host/gpex.c         | 12 ++++++++
 hw/vfio/common.c           | 68 ++++++++++++++++++++++++++++++++++++----------
 include/exec/memory.h      | 29 ++++++++++++++++++++
 include/hw/arm/virt.h      |  1 +
 include/hw/pci-host/gpex.h |  1 +
 linux-headers/linux/vfio.h | 15 ++++++++--
 memory.c                   | 11 ++++++++
 8 files changed, 134 insertions(+), 17 deletions(-)

-- 
1.9.1

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

end of thread, other threads:[~2016-01-28 10:20 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-01-27 13:51 [Qemu-devel] [RFC 0/7] KVM PCI/MSI passthrough with mach-virt Eric Auger
2016-01-27 13:51 ` [Qemu-devel] [RFC 1/7] linux-headers: partial update for VFIO reserved IOVA registration Eric Auger
2016-01-27 13:51 ` [Qemu-devel] [RFC 2/7] Add a function to determine interrupt number for INTx routing Eric Auger
2016-01-27 13:51 ` [Qemu-devel] [RFC 3/7] Generic PCIe host bridge INTx determination " Eric Auger
2016-01-27 13:51 ` [Qemu-devel] [RFC 4/7] hw: vfio: common: introduce vfio_register_reserved_iova Eric Auger
2016-01-27 13:51 ` [Qemu-devel] [RFC 5/7] memory: add reserved_iova region type Eric Auger
2016-01-27 13:51 ` [Qemu-devel] [RFC 6/7] hw: arm: virt: register reserved IOVA region Eric Auger
2016-01-28  7:10   ` Pavel Fedin
2016-01-28  9:39     ` Eric Auger
2016-01-28 10:10   ` Peter Maydell
2016-01-28 10:20     ` Eric Auger
2016-01-27 13:51 ` [Qemu-devel] [RFC 7/7] hw: vfio: common: adapt vfio_listeners for reserved_iova region Eric Auger

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.