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

Re: [Xen-devel] [PATCH 2/2] VT-d: Fix vt-d flush timeout issue.

On December 04, 2015 at 9:52 AM, <Tian, Kevin> wrote:
> > From: Xu, Quan
> > Sent: Thursday, December 03, 2015 4:09 PM
> >
> > If IOTLB/Context/IETC flush is timeout, we should think all devices
> > under this IOMMU cannot function correctly.
> > So for each device under this IOMMU we'll mark it as unassignable and
> > kill the domain owning the device.
> >
> > If Device-TLB flush is timeout, we'll mark the target ATS device as
> > unassignable and kill the domain owning this device. When the
> > invalidation request descriptor is timeout, hypervisor cannot find out
> > which Device-TLB invalidate descriptor submitted before is not
> > correct.
> > So mark all of the domain's ATS devices as unassignable.
> Another thought here. If we do timeout check within dev_invalidate_iotlb for
> each ATS device, could we identify bogus device accurately?

Yes, it can identify bogus device accurately.
But it may impact the performance. when Fence Flag(FN) bit is set, the 
descriptors Following the invalidation wait descriptor must be processed by 
hardware only after
The invalidation wait descriptor completes.

In current code, it can flush all of domain's device in batch(submit mutil 
Device-TLB invalidate descriptor with following one invalidation wait 
Otherwise it would flush all of domain's device one by one. And it may cost 
more than 100ms to flush one Device. 



Xen-devel mailing list



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