[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 0/5] Allow memory_region_register_iommu_notifier() to fail
From: |
Peter Xu |
Subject: |
Re: [PATCH v2 0/5] Allow memory_region_register_iommu_notifier() to fail |
Date: |
Fri, 20 Sep 2019 14:16:28 +0800 |
User-agent: |
Mutt/1.11.4 (2019-03-13) |
On Thu, Sep 19, 2019 at 02:18:40PM +0200, Eric Auger wrote:
> This series allows the memory_region_register_iommu_notifier()
> to fail. As of now, when a MAP notifier is attempted to be
> registered along with SMMUv3, Intel iommu without caching mode
> or AMD IOMMU, we exit in the IOMMU MR notify_flag_changed()
> callback. In case of VFIO assigned device hotplug, this could be
> handled more nicely directly within the VFIO code, simply rejecting
> the hotplug without exiting. This is what the series achieves
> by handling the memory_region_register_iommu_notifier() returned
> value.
Could I ask what's the code path for ARM when the hot plug failed? Is
that vfio_realize() then vfio_connect_container() will fail with this?
if (container->error) {
ret = container->error;
error_setg_errno(errp, -ret,
"memory listener initialization failed for container");
goto listener_release_exit;
}
If so, I would again suggest you to use Error** in patch 1. IMHO we
can let vfio_listener_region_add() to be the first one to use the
Error** so that instead of this:
/*
* On the initfn path, store the first error in the container so we
* can gracefully fail. Runtime, there's not much we can do other
* than throw a hardware error.
*/
if (!container->initialized) {
if (!container->error) {
container->error = ret;
}
} else {
hw_error("vfio: DMA mapping failed, unable to continue");
}
We can also cache the Error** into container and return to user if the
user is using QMP which should be better than the int number (or
again, maybe return both errors?). IIUC error_report() will not work
for QMP.
Regards,
--
Peter Xu
- [Qemu-devel] [PATCH v2 0/5] Allow memory_region_register_iommu_notifier() to fail, Eric Auger, 2019/09/19
- [Qemu-devel] [PATCH v2 2/5] vfio/common: Handle memory_region_register_iommu_notifier() failure, Eric Auger, 2019/09/19
- [Qemu-devel] [PATCH v2 1/5] memory: allow memory_region_register_iommu_notifier() to fail, Eric Auger, 2019/09/19
- [Qemu-devel] [PATCH v2 3/5] exec: assert on memory_region_register_iommu_notifier() failure, Eric Auger, 2019/09/19
- [Qemu-devel] [PATCH v2 5/5] amd_iommu: Let amdvi_iommu_notify_flag_changed() fail, Eric Auger, 2019/09/19
- [Qemu-devel] [PATCH v2 4/5] vhost: assert on memory_region_register_iommu_notifier() failure, Eric Auger, 2019/09/19
- Re: [PATCH v2 0/5] Allow memory_region_register_iommu_notifier() to fail,
Peter Xu <=