On Tue, 2012-01-10 at 04:11 +0100, Alexander Graf wrote: > This is what book3s does: > > case EMULATE_FAIL: > printk(KERN_CRIT "%s: emulation at %lx failed > (%08x)\n", > __func__, kvmppc_get_pc(vcpu), > kvmppc_get_last_inst(vcpu)); > kvmppc_core_queue_program(vcpu, flags); > r = RESUME_GUEST; > > which also doesn't throttle the printk, but I think injecting a > program fault into the guest is the most sensible thing to do if we > don't know what the instruction is supposed to do. Best case we get an > oops inside the guest telling us what broke :).
You can also fallback to a slow path that reads the guest TLB, translates then reads the instruction. Of course you have to be careful as such a manual translate + read + execute needs to be somewhat synchronized with a possible TLB invalidation :-) (MMIO emulation is broken in this regard too btw) Cheers, Ben. _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev