On Fri, Sep 02, 2016 at 04:10:14PM +1000, David Gibson wrote:
> On Fri, 2 Sep 2016 13:37:33 +0800
> Peter Xu <pet...@redhat.com> wrote:
> 
> > On Fri, Sep 02, 2016 at 02:15:04PM +1000, David Gibson wrote:
> > > What!?  I see no reason you need a different notifier, just fix the
> > > implementation of the current one.  As a bonus this will also give you
> > > working VFIO passthrough with vIOMMU on x86, something which should
> > > work already, but doesn't.  
> > 
> > Hi, David,
> > 
> > Do you mean that we can enhance the interface to suite the two needs?
> > E.g., adding a "IOTLB notification type" definition:
> > 
> > - "full": for those who is listening on all mapping changes including
> >   additions (VFIO use case)
> > 
> > - "cache_only": for those who only cares about cache invalidations
> >   (device IOTLB, aka, vhost use case)
> > 
> > We can:
> > 
> > - add notify type when we register the notifiers (e.g., when VFIO
> >   registers IOMMU notifier, it should specify the type as "full", so
> >   it won't receive notification if it's device IOTLB invalidations).
> > 
> > - pass this type when trigger the notification, so for each IOMMU
> >   notify handler, it can selectively disgard the notification.
> > 
> > Not sure whether above makes sense.
> 
> No, implement the full notifier, and a listener which only wants the
> invalidates can just ignore callbacks which add new mappings.
> 
> As I said, you'll need this to get VFIO working with vIOMMU which
> someone is bound to want soon enough anyway.

But for vhost cases, we do not need CM bit enabled. That might be the
difference?

I think we need to have vhost working even without CM bit. Device
IOTLB should be able to achieve that.

-- peterx

Reply via email to