[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RFC v2 1/1] memory: Delete assertion in memory_region_unregister_io
From: |
Peter Xu |
Subject: |
Re: [RFC v2 1/1] memory: Delete assertion in memory_region_unregister_iommu_notifier |
Date: |
Tue, 7 Jul 2020 15:54:29 -0400 |
On Tue, Jul 07, 2020 at 04:03:10PM +0800, Jason Wang wrote:
>
> On 2020/7/3 下午9:03, Peter Xu wrote:
> > On Fri, Jul 03, 2020 at 03:24:19PM +0800, Jason Wang wrote:
> > > On 2020/7/2 下午11:45, Peter Xu wrote:
> > > > On Thu, Jul 02, 2020 at 11:01:54AM +0800, Jason Wang wrote:
> > > > > So I think we agree that a new notifier is needed?
> > > > Good to me, or a new flag should be easier (IOMMU_NOTIFIER_DEV_IOTLB)?
> > >
> > > That should work but I wonder something as following is better.
> > >
> > > Instead of introducing new flags, how about carry the type of event in the
> > > notifier then the device (vhost) can choose the message it want to process
> > > like:
> > >
> > > static vhost_iommu_event(IOMMUNotifier *n, IOMMUTLBEvent *event)
> > >
> > > {
> > >
> > > switch (event->type) {
> > >
> > > case IOMMU_MAP:
> > > case IOMMU_UNMAP:
> > > case IOMMU_DEV_IOTLB_UNMAP:
> > > ...
> > >
> > > }
> > Looks ok to me, though imo we should still keep the registration
> > information,
> > so VT-d knows which notifiers is interested in which events. E.g., we can
> > still do something like vtd_as_has_map_notifier().
>
>
> Is this for a better performance?
>
> I wonder whether it's worth since we can't not have both vhost and vtd to be
> registered into the same as.
/me failed to follow this sentence.. :(
>
> So it should be functional equivalent to vtd_as_has_notifier().
For example: in vtd_iommu_replay() we'll skip the replay if vhost has
registered the iommu notifier because vtd_as_has_map_notifier() will return
false. It'll only return true if the device is a vfio-pci device.
Without vtd_as_has_map_notifier(), how could we do that?
--
Peter Xu
- Re: [RFC v2 1/1] memory: Delete assertion in memory_region_unregister_iommu_notifier, Jason Wang, 2020/07/01
- Re: [RFC v2 1/1] memory: Delete assertion in memory_region_unregister_iommu_notifier, Jason Wang, 2020/07/01
- Re: [RFC v2 1/1] memory: Delete assertion in memory_region_unregister_iommu_notifier, Peter Xu, 2020/07/02
- Re: [RFC v2 1/1] memory: Delete assertion in memory_region_unregister_iommu_notifier, Jason Wang, 2020/07/03
- Re: [RFC v2 1/1] memory: Delete assertion in memory_region_unregister_iommu_notifier, Peter Xu, 2020/07/03
- Re: [RFC v2 1/1] memory: Delete assertion in memory_region_unregister_iommu_notifier, Jason Wang, 2020/07/07
- Re: [RFC v2 1/1] memory: Delete assertion in memory_region_unregister_iommu_notifier,
Peter Xu <=
- Re: [RFC v2 1/1] memory: Delete assertion in memory_region_unregister_iommu_notifier, Jason Wang, 2020/07/08
- Re: [RFC v2 1/1] memory: Delete assertion in memory_region_unregister_iommu_notifier, Peter Xu, 2020/07/08
- Re: [RFC v2 1/1] memory: Delete assertion in memory_region_unregister_iommu_notifier, Jason Wang, 2020/07/09
- Re: [RFC v2 1/1] memory: Delete assertion in memory_region_unregister_iommu_notifier, Peter Xu, 2020/07/09
- Re: [RFC v2 1/1] memory: Delete assertion in memory_region_unregister_iommu_notifier, Jason Wang, 2020/07/10
- Re: [RFC v2 1/1] memory: Delete assertion in memory_region_unregister_iommu_notifier, Peter Xu, 2020/07/10
- Re: [RFC v2 1/1] memory: Delete assertion in memory_region_unregister_iommu_notifier, Jason Wang, 2020/07/13
- Re: [RFC v2 1/1] memory: Delete assertion in memory_region_unregister_iommu_notifier, Peter Xu, 2020/07/15
- Re: [RFC v2 1/1] memory: Delete assertion in memory_region_unregister_iommu_notifier, Jason Wang, 2020/07/15
- Re: [RFC v2 1/1] memory: Delete assertion in memory_region_unregister_iommu_notifier, Peter Xu, 2020/07/17