Deferred/Asynchronous queued invalidation

Gábor PÉK
Wed, 20 Feb 2013 17:17:45 -0000

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