From: Eric Auger <eric.auger@linaro.org>
To: eric.auger@st.com, eric.auger@linaro.org, qemu-devel@nongnu.org,
qemu-arm@nongnu.org, peter.maydell@linaro.org,
alex.williamson@redhat.com, pranav.sawargaonkar@gmail.com,
p.fedin@samsung.com, pbonzini@redhat.com, agraf@suse.de
Cc: Bharat.Bhushan@freescale.com, suravee.suthikulpanit@amd.com,
christoffer.dall@linaro.org
Subject: [Qemu-arm] [RFC v2 0/8] KVM PCI/MSI passthrough with mach-virt
Date: Fri, 29 Jan 2016 16:53:41 +0000 [thread overview]
Message-ID: <1454086429-4373-1-git-send-email-eric.auger@linaro.org> (raw)
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.
To avoid wasting guest PA, we now map the reserved region onto the
platform bus MMIO.
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)"
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-v2
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.
History:
RFC v1 -> RFC v2:
- now uses platform bus MMIO for mapping reserved IOVA region; hence the
new patch file:
"hw: platform-bus: enable to map any memory region onto the platform-bus"
Eric Auger (8):
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: platform-bus: enable to map any memory region onto the
platform-bus
hw: arm: virt: register reserved IOVA region
hw: vfio: common: adapt vfio_listeners for reserved_iova region
hw/arm/virt.c | 23 ++++++++++++----
hw/core/platform-bus.c | 26 +++++++++++-------
hw/pci-host/gpex.c | 12 ++++++++
hw/vfio/common.c | 68 ++++++++++++++++++++++++++++++++++++----------
include/exec/memory.h | 29 ++++++++++++++++++++
include/hw/pci-host/gpex.h | 1 +
include/hw/platform-bus.h | 7 +++++
linux-headers/linux/vfio.h | 15 ++++++++--
memory.c | 11 ++++++++
9 files changed, 160 insertions(+), 32 deletions(-)
--
1.9.1
next reply other threads:[~2016-01-29 16:54 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-29 16:53 Eric Auger [this message]
2016-01-29 16:53 ` [Qemu-arm] [RFC v2 1/8] linux-headers: partial update for VFIO reserved IOVA registration Eric Auger
2016-01-29 16:53 ` [Qemu-devel] [RFC v2 2/8] Add a function to determine interrupt number for INTx routing Eric Auger
2016-01-29 16:53 ` [Qemu-arm] [RFC v2 3/8] Generic PCIe host bridge INTx determination " Eric Auger
2016-02-16 18:14 ` Peter Maydell
2016-02-18 18:15 ` Eric Auger
2016-01-29 16:53 ` [Qemu-devel] [RFC v2 4/8] hw: vfio: common: introduce vfio_register_reserved_iova Eric Auger
2016-01-29 16:53 ` [Qemu-arm] [RFC v2 5/8] memory: add reserved_iova region type Eric Auger
2016-01-29 16:53 ` [Qemu-arm] [RFC v2 6/8] hw: platform-bus: enable to map any memory region onto the platform-bus Eric Auger
2016-02-16 18:16 ` Peter Maydell
2016-01-29 16:53 ` [Qemu-devel] [RFC v2 7/8] hw: arm: virt: register reserved IOVA region Eric Auger
2016-02-16 18:21 ` [Qemu-arm] " Peter Maydell
2016-02-18 18:48 ` Eric Auger
2016-01-29 16:53 ` [Qemu-arm] [RFC v2 8/8] hw: vfio: common: adapt vfio_listeners for reserved_iova region Eric Auger
2016-02-16 18:23 ` [Qemu-arm] [RFC v2 0/8] KVM PCI/MSI passthrough with mach-virt Peter Maydell
2016-05-04 11:18 ` [Qemu-devel] " Yehuda Yitschak
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1454086429-4373-1-git-send-email-eric.auger@linaro.org \
--to=eric.auger@linaro.org \
--cc=Bharat.Bhushan@freescale.com \
--cc=agraf@suse.de \
--cc=alex.williamson@redhat.com \
--cc=christoffer.dall@linaro.org \
--cc=eric.auger@st.com \
--cc=p.fedin@samsung.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=pranav.sawargaonkar@gmail.com \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=suravee.suthikulpanit@amd.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).