[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [PATCH 5/7] memory: Allow replay of IOMMU mapping notific
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-ppc] [PATCH 5/7] memory: Allow replay of IOMMU mapping notifications |
Date: |
Fri, 25 Sep 2015 13:20:12 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 |
On 24/09/2015 06:33, David Gibson wrote:
> When we have guest visible IOMMUs, we allow notifiers to be registered
> which will be informed of all changes to IOMMU mappings. This is used by
> vfio to keep the host IOMMU mappings in sync with guest IOMMU mappings.
>
> However, unlike with a memory region listener, an iommu notifier won't be
> told about any mappings which already exist in the (guest) IOMMU at the
> time it is registered. This can cause problems if hotplugging a VFIO
> device onto a guest bus which had existing guest IOMMU mappings, but didn't
> previously have an VFIO devices (and hence no host IOMMU mappings).
>
> This adds a memory_region_register_iommu_notifier_replay() function to
> handle this case. As well as registering the new notifier it replays
> existing mappings. Because the IOMMU memory region doesn't internally
> remember the granularity of the guest IOMMU it has a small hack where the
> caller must specify a granularity at which to replay mappings.
>
> If there are finer mappings in the guest IOMMU these will be reported in
> the iotlb structures passed to the notifier which it must handle (probably
> causing it to flag an error). This isn't new - the VFIO iommu notifier
> must already handle notifications about guest IOMMU mappings too short
> for it to represent in the host IOMMU.
>
> Signed-off-by: David Gibson <address@hidden>
The patch is okay, just two questions:
1) Is there a case where using the no-replay functions makes sense?
2) You could add a ->replay function to the iommu_ops to optimize it, if
you want.
Paolo
- [Qemu-ppc] [PATCH 2/7] vfio: Generalize vfio_listener_region_add failure path, (continued)
- [Qemu-ppc] [PATCH 2/7] vfio: Generalize vfio_listener_region_add failure path, David Gibson, 2015/09/24
- [Qemu-ppc] [PATCH 4/7] vfio: Record host IOMMU's available IO page sizes, David Gibson, 2015/09/24
- [Qemu-ppc] [PATCH 5/7] memory: Allow replay of IOMMU mapping notifications, David Gibson, 2015/09/24
- Re: [Qemu-ppc] [PATCH 5/7] memory: Allow replay of IOMMU mapping notifications,
Paolo Bonzini <=
- Re: [Qemu-ppc] [PATCH 5/7] memory: Allow replay of IOMMU mapping notifications, David Gibson, 2015/09/25
- Re: [Qemu-ppc] [PATCH 5/7] memory: Allow replay of IOMMU mapping notifications, Paolo Bonzini, 2015/09/25
- Re: [Qemu-ppc] [PATCH 5/7] memory: Allow replay of IOMMU mapping notifications, David Gibson, 2015/09/26
- Re: [Qemu-ppc] [PATCH 5/7] memory: Allow replay of IOMMU mapping notifications, Paolo Bonzini, 2015/09/28
- Re: [Qemu-ppc] [PATCH 5/7] memory: Allow replay of IOMMU mapping notifications, David Gibson, 2015/09/29
[Qemu-ppc] [PATCH 7/7] vfio: Expose a VFIO PCI device's group for EEH, David Gibson, 2015/09/24
[Qemu-ppc] [PATCH 3/7] vfio: Check guest IOVA ranges against host IOMMU capabilities, David Gibson, 2015/09/24
[Qemu-ppc] [PATCH 6/7] vfio: Allow hotplug of containers onto existing guest IOMMU mappings, David Gibson, 2015/09/24