From: Eric Auger <eric.auger@redhat.com>
To: eric.auger.pro@gmail.com, eric.auger@redhat.com,
qemu-devel@nongnu.org, qemu-arm@nongnu.org, mst@redhat.com,
jean-philippe@linaro.org, peter.maydell@linaro.org,
clg@redhat.com, yanghliu@redhat.com, zhenzhong.duan@intel.com,
alex.williamson@redhat.com
Subject: [PATCH 0/7] VIRTIO-IOMMU/HostIOMMUDevice: Fixes and page size mask rework
Date: Wed, 26 Jun 2024 10:26:45 +0200 [thread overview]
Message-ID: <20240626082727.1278530-1-eric.auger@redhat.com> (raw)
The 2 first patches are fixes of
cf2647a76e ("virtio-iommu: Compute host reserved regions")
They can be taken separately of the rest.
Then the series uses the HostIOMMUDevice interface to fetch
information about the page size mask supported along the assigned
device and propagate it to the virtio-iommu. This is a similar
work as what was done in
VIRTIO-IOMMU/VFIO: Fix host iommu geometry handling series
but this time for the page size mask. Using this new
infrastructure allows to handle page size mask conflicts
earlier on device hotplug as opposed to current QEMU
abort:
qemu-system-aarch64: virtio-iommu virtio-iommu-memory-region-8-0
does not support frozen granule 0x10000
qemu: hardware error: vfio: DMA mapping failed, unable to continue
With this series the hotplug nicely fails.
Also this allows to remove hacks consisting in transiently enabling
IOMMU MRs to collect coldplugged device page size mask before machine
init. Those hacks were introduced by
94df5b2180d6 ("virtio-iommu: Fix 64kB host page size VFIO device
assignment")
The series can be found at:
https://github.com/eauger/qemu/tree/virtio-iommu-psmask-rework-v1
Eric Auger (7):
virtio-iommu: Fix error handling in
virtio_iommu_set_host_iova_ranges()
vfio-container-base: Introduce vfio_container_get_iova_ranges() helper
HostIOMMUDevice : remove Error handle from get_iova_ranges callback
HostIOMMUDevice: Introduce get_page_size_mask() callback
virtio-iommu : Retrieve page size mask on
virtio_iommu_set_iommu_device()
memory: remove IOMMU MR iommu_set_page_size_mask() callback
virtio-iommu: Revert transient enablement of IOMMU MR in bypass mode
include/exec/memory.h | 38 --------
include/hw/vfio/vfio-container-base.h | 9 ++
include/sysemu/host_iommu_device.h | 11 ++-
hw/vfio/common.c | 8 --
hw/vfio/container-base.c | 15 ++++
hw/vfio/container.c | 16 ++--
hw/vfio/iommufd.c | 21 +++--
hw/virtio/virtio-iommu.c | 121 +++++++++++++-------------
system/memory.c | 13 ---
hw/virtio/trace-events | 2 +-
10 files changed, 117 insertions(+), 137 deletions(-)
--
2.41.0
next reply other threads:[~2024-06-26 8:28 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-26 8:26 Eric Auger [this message]
2024-06-26 8:26 ` [PATCH 1/7] virtio-iommu: Fix error handling in virtio_iommu_set_host_iova_ranges() Eric Auger
2024-06-26 10:39 ` Cédric Le Goater
2024-06-26 8:26 ` [PATCH 2/7] vfio-container-base: Introduce vfio_container_get_iova_ranges() helper Eric Auger
2024-06-26 12:42 ` Cédric Le Goater
2024-06-26 8:26 ` [PATCH 3/7] HostIOMMUDevice : remove Error handle from get_iova_ranges callback Eric Auger
2024-06-26 12:43 ` Cédric Le Goater
2024-06-26 8:26 ` [PATCH 4/7] HostIOMMUDevice: Introduce get_page_size_mask() callback Eric Auger
2024-06-26 12:44 ` Cédric Le Goater
2024-06-27 3:06 ` Duan, Zhenzhong
2024-06-27 8:59 ` Eric Auger
2024-06-27 11:25 ` Duan, Zhenzhong
2024-06-26 8:26 ` [PATCH 5/7] virtio-iommu : Retrieve page size mask on virtio_iommu_set_iommu_device() Eric Auger
2024-06-27 11:32 ` Duan, Zhenzhong
2024-06-27 13:57 ` Eric Auger
2024-06-26 8:26 ` [PATCH 6/7] memory: remove IOMMU MR iommu_set_page_size_mask() callback Eric Auger
2024-06-26 16:56 ` Cédric Le Goater
2024-06-26 8:26 ` [PATCH 7/7] virtio-iommu: Revert transient enablement of IOMMU MR in bypass mode Eric Auger
2024-06-26 17:10 ` Cédric Le Goater
2024-07-01 20:07 ` [PATCH 0/7] VIRTIO-IOMMU/HostIOMMUDevice: Fixes and page size mask rework Michael S. Tsirkin
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=20240626082727.1278530-1-eric.auger@redhat.com \
--to=eric.auger@redhat.com \
--cc=alex.williamson@redhat.com \
--cc=clg@redhat.com \
--cc=eric.auger.pro@gmail.com \
--cc=jean-philippe@linaro.org \
--cc=mst@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=yanghliu@redhat.com \
--cc=zhenzhong.duan@intel.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).