On Sun, Jan 22, 2017 at 04:13:32PM +0800, Jason Wang wrote: > > > On 2017年01月20日 21:08, Peter Xu wrote: > >Previous replay works for domain switch only if the original domain does > >not have mapped pages. For example, if we switch domain from A to B, it > >will only work if A has no existing mapping. If there is, then there's > >problem - current replay didn't make sure the old mappings are cleared > >before replaying the new one. > > I'm not quite sure this is needed. I thought the only thing we need to do is > stop DMA of device during the moving? Or is there an example that will cause > trouble?
I think this patch is essential. Example: - device D1 moved to domain A, domain A has no mapping - map page P1 in domain A, so D1 will have a mapping of page P1 - create domain B with mapping P2 - move D1 from domain A to domain B Here if we don't unmap existing pages in domain A (P1), after the switch, we'll have D1 with both P1/P2 mapped, while domain B actually only has P2. That's unaligned mapping, and it should be wrong. If you (or anyone) think this is a bug as well for patch 18, I can just squash both 19/20 into patch 18. Thanks, -- peterx