On Fri, May 18, 2018 at 12:06:14AM +0300, Michael S. Tsirkin wrote: > On Thu, May 17, 2018 at 04:59:27PM +0800, Peter Xu wrote: > > Firstly, introduce the sync_shadow_page_table() helper to resync the > > whole shadow page table of an IOMMU address space. Meanwhile, when we > > receive domain invalidation or similar requests (for example, context > > entry invalidations, global invalidations, ...), we should not really > > run the replay logic, instead we can now use the new sync shadow page > > table API to resync the whole shadow page table. > > > > There will be two major differences: > > > > 1. We don't unmap-all before walking the page table, we just sync. The > > global unmap-all can create a very small window that the page table > > is invalid or incomplete > > The implication is that with vfio, device might stop working > without this change.
I guess it was working before. However patch 9 changed the page walking to be state-ful since we have IOVA tree now (it was not) so we might encounter the scp DMA error after patch 9. I still kept the patches 9-12 to be separate since logically they are isolated. However if you want maybe we can also squash 9-12 patches into one single (but a bit huge) patch. Thanks, -- Peter Xu