On 03/14/2010 06:21 PM, Gleb Natapov wrote:
Currently when string instruction is only partially complete we go back to a guest mode, guest tries to reexecute instruction and exits again and at this point emulation continues. Avoid all of this by restarting instruction without going back to a guest mode, but return to a guest mode on each page boundary to allow interrupt injection. Pending exception causes immediate guest entry too. @@ -2913,6 +2917,8 @@ writeback: c->dst.ptr = (unsigned long *) register_address(c, es_base(ctxt), c->regs[VCPU_REGS_RDI]); + if (!(c->regs[VCPU_REGS_RDI]& ~PAGE_MASK)) + ctxt->restart = false; }
What if rdi is odd and operand size != 1? Suggest simply reentering every N executions. -- error compiling committee.c: too many arguments to function -- 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