On Thu, Feb 04, 2010 at 11:46:25PM +0200, Avi Kivity wrote: > On 02/04/2010 11:36 PM, Marcelo Tosatti wrote: > >On Thu, Feb 04, 2010 at 09:16:47PM +0200, Avi Kivity 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? -- 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