2017-08-17 14:14+0200, Paolo Bonzini: > On 17/08/2017 11:00, Paolo Bonzini wrote: > > On 17/08/2017 00:31, Michael S. Tsirkin wrote: > >> On Wed, Aug 16, 2017 at 11:25:35PM +0200, Paolo Bonzini wrote: > >>> Yes, I agree. EMULTYPE_SKIP is fine because failed decoding still > >>> causes an exception to be injected. Maybe it's better to gate the > >>> EMULTYPE_SKIP emulation on the exit qualification saying this is a write > >> > >> I thought it's already limited to writes. I agree that's a reasonable > >> limitation in any case. > >> > >>> and also not a page table walk---just in case. > >> > >> I still don't get it, sorry. Let's assume for the sake of argument > >> that it's a PT walk causing the MMIO access. Just why do you think > >> that it makes sense to skip the instruction that caused the walk? > > > > I think it doesn't. I think in that case it's better to skip the fast > > write and proceed with full emulation. It definitely doesn't. I think it's possible only because virtio forbids other access types, so we assume that every access is a write access. > ... nope, exit qualification is just zero for EPT misconfigurations, so > we cannot do this. Yeah, we'd need to use EPT violation to get that information.