|
[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
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |