Re: [PATCH 22/24] KVM: x86 emulator: restart string instruction without going back to a guest.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Gleb Natapov wrote:
On Wed, Mar 10, 2010 at 11:30:20AM +0900, Takuya Yoshikawa wrote:
Gleb Natapov wrote:
On Tue, Mar 09, 2010 at 04:50:29PM +0200, Avi Kivity wrote:
On 03/09/2010 04:09 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.
What happens if rcx is really big?  Going back into the guest gave
us a preemption point.

Two solutions. We can check if reschedule is required and yield cpu if
needed. Or we can enter guest from time to time.
One generic question: from the viewpoint of KVM's policy, is it OK to make
the semantics different from real CPUs?

Semantics, may be better to use other words, but I'm little bit worried that
the second solution may change something, not mentioning about bugs but some
behavior patterns depending on the "time to time".

Entering guest from time to time will not change semantics of the
processor (if code is not modified under processor's feet at least).
Currently we reenter guest mode after each iteration of string
instruction for all instruction but ins/outs.


E.g., is there no chance that during the repetitions, in the middle of the
repetitions, page faults occur? If it can, without entering the guest, can
we handle it?
 -- I lack some basic assumptions?

--
			Gleb.
--
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

--
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

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux