[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] VT-d flush timeout



Hi all

This is continuing with previous discussion about VT-d spin loop. According 
previous discussion, we will deal with current 1 second flush timeout firstly.

After reviewing Linux IOMMU code, it uses the timeout mechanism widely, e.g., 
flush iotlb and context via register based mechanism,
__iommu_flush_context():
    /* Make sure hardware complete it */
    IOMMU_WAIT_OP(iommu, DMAR_CCMD_REG,
       dmar_readq, (!(val & DMA_CCMD_ICC)), val);

The only place it doesn't use this timeout mechanism is queue based 
invalidation. I think the reason is that the max number of queue entry is 2^15 
and we don't know how much time is needed really to flush 2^15 entries. So it 
is better to not use timeout here. Likewise, for Xen side, we will only remove 
the timeout in qi flush function and use spin for instead. 

Any comments?

best regards
yang



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.