Skip to content
  • Peter Xu's avatar
    cdb30812
    memory: introduce IOMMUNotifier and its caps · cdb30812
    Peter Xu authored
    
    
    IOMMU Notifier list is used for notifying IO address mapping changes.
    Currently VFIO is the only user.
    
    However it is possible that future consumer like vhost would like to
    only listen to part of its notifications (e.g., cache invalidations).
    
    This patch introduced IOMMUNotifier and IOMMUNotfierFlag bits for a
    finer grained control of it.
    
    IOMMUNotifier contains a bitfield for the notify consumer describing
    what kind of notification it is interested in. Currently two kinds of
    notifications are defined:
    
    - IOMMU_NOTIFIER_MAP:    for newly mapped entries (additions)
    - IOMMU_NOTIFIER_UNMAP:  for entries to be removed (cache invalidates)
    
    When registering the IOMMU notifier, we need to specify one or multiple
    types of messages to listen to.
    
    When notifications are triggered, its type will be checked against the
    notifier's type bits, and only notifiers with registered bits will be
    notified.
    
    (For any IOMMU implementation, an in-place mapping change should be
     notified with an UNMAP followed by a MAP.)
    
    Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
    Message-Id: <1474606948-14391-2-git-send-email-peterx@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    cdb30812
    memory: introduce IOMMUNotifier and its caps
    Peter Xu authored
    
    
    IOMMU Notifier list is used for notifying IO address mapping changes.
    Currently VFIO is the only user.
    
    However it is possible that future consumer like vhost would like to
    only listen to part of its notifications (e.g., cache invalidations).
    
    This patch introduced IOMMUNotifier and IOMMUNotfierFlag bits for a
    finer grained control of it.
    
    IOMMUNotifier contains a bitfield for the notify consumer describing
    what kind of notification it is interested in. Currently two kinds of
    notifications are defined:
    
    - IOMMU_NOTIFIER_MAP:    for newly mapped entries (additions)
    - IOMMU_NOTIFIER_UNMAP:  for entries to be removed (cache invalidates)
    
    When registering the IOMMU notifier, we need to specify one or multiple
    types of messages to listen to.
    
    When notifications are triggered, its type will be checked against the
    notifier's type bits, and only notifiers with registered bits will be
    notified.
    
    (For any IOMMU implementation, an in-place mapping change should be
     notified with an UNMAP followed by a MAP.)
    
    Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
    Message-Id: <1474606948-14391-2-git-send-email-peterx@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
Loading