Hi all,
I am wondering if Xen implements deferred/asynchronous queued
invalidation in order to flush the stale entries from IOTLB.
I know that the synchronous version is implemented in
xen\drivers\passthrough\vtd\qinval.c ,
int invalidate_sync(struct iommu *iommu)
{
    int ret = -1;
    struct qi_ctrl *qi_ctrl = iommu_qi_ctrl(iommu);
    if ( qi_ctrl->qinval_maddr != 0 )
    {
        ret = queue_invalidate_wait(iommu, 0, 1, 1);
        return ret;
    }
    return 0;
}
but I could not find anything in the source code about the
deferred/asynchronous version.
Thank you!
-gabor