On Thu, Feb 04, 2010 at 08:12:07PM -0200, Marcelo Tosatti wrote: > > >>On 01/28/2010 09:03 PM, Marcelo Tosatti wrote: > > >>>A vcpu can be stopped after handling IO in userspace, > > >>>but before returning to kernel to finish processing. > > >>> > > >>Is this strictly needed? If we teach qemu to migrate before > > >>executing the pio request, I think we'll be all right? should work > > >>at least for IN/INS, not sure about OUT/OUTS. > > >It would be nice (instead of more state to keep track of between > > >kernel/user) but the drawbacks i see are: > > > > > >You'd have to add a limitation so that any IN which was processed > > >by device emulation has to re-entry kernel to complete it (so it > > >complicates vcpu stop in userspace). > > > > > > > You could fix that by moving the IN emulation to before guest entry. > > It complicates the vcpu loop a bit, but is backwards compatible and > > all that. > > > > >And for OUTS larger than page size (== arch->pio_data size) you need to > > >know the current position to continue it on the destination (or roll > > >back the entire effect of the instruction in device emulation, and RIP). > > > > What to you mean by current position? > > outs larger than PAGE_SIZE is processed in (size / PAGE_SIZE) exits to > userspace, because thats the size of the pio_data buffer, right? Nevermind, the count is in ecx which is migrated. OK i'll look into your suggestion. -- 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