On 08/01/15 13:16, Peter Maydell wrote: > On 8 January 2015 at 13:07, Marc Zyngier <marc.zyngier@xxxxxxx> wrote: >>> Can you remind me why it's OK not to flush the icache for an >>> ASID tagged VIVT icache? Making this page coherent might actually >>> be revealing a change in the instructions associated with the VA, >>> mightn't it? >> >> ASID cached VIVT icaches are also VMID tagged. It is thus impossible for >> stale cache lines to come with a new page. And if by synchronizing the >> caches you obtain a different instruction stream, it means you've >> restored the wrong page. > > ...is that true even if the dirty data in the dcache comes from > the userspace process doing DMA or writing the initial boot > image or whatever? We perform this on a page that is being brought in stage-2. Two cases: - This is a page is mapped for the first time: the icache should be invalid for this page (the guest should have invalidated it the first place), - This is a page that we bring back from swap: the page must match the one that has been swapped out. If it has been DMA'ed in in the meantime, then the guest surely has flushed its icache if it intends to branch to it, hasn't it? I have the feeling I'm missing something from your question... M. -- Jazz is not dead. It just smells funny... -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html