summaryrefslogtreecommitdiffstats
path: root/arch/x86/include
diff options
context:
space:
mode:
authorGleb Natapov <gleb@redhat.com>2010-03-18 15:20:26 +0200
committerAvi Kivity <avi@redhat.com>2010-05-17 12:16:29 +0300
commit5cd21917da245fbe98bd443de2c7f519b3df6814 (patch)
tree0bb2d4ee197011a92002a5cc32d19758a1e87ed0 /arch/x86/include
parentcb404fe0898779ec5fe5e06e90aaddcf40aefad8 (diff)
downloadblackbird-op-linux-5cd21917da245fbe98bd443de2c7f519b3df6814.tar.gz
blackbird-op-linux-5cd21917da245fbe98bd443de2c7f519b3df6814.zip
KVM: x86 emulator: restart string instruction without going back to a guest.
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 each 1024 iterations to allow interrupt injection. Pending exception causes immediate guest entry too. Signed-off-by: Gleb Natapov <gleb@redhat.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Diffstat (limited to 'arch/x86/include')
-rw-r--r--arch/x86/include/asm/kvm_emulate.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/include/asm/kvm_emulate.h b/arch/x86/include/asm/kvm_emulate.h
index 679245c9a55f..7fda16f89cc8 100644
--- a/arch/x86/include/asm/kvm_emulate.h
+++ b/arch/x86/include/asm/kvm_emulate.h
@@ -193,6 +193,7 @@ struct x86_emulate_ctxt {
/* interruptibility state, as a result of execution of STI or MOV SS */
int interruptibility;
+ bool restart; /* restart string instruction after writeback */
/* decode cache */
struct decode_cache decode;
};
OpenPOWER on IntegriCloud