diff options
author | Gleb Natapov <gleb@redhat.com> | 2010-03-18 15:20:27 +0200 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2010-05-17 12:16:31 +0300 |
commit | 7b262e90fc20a49fddf3dad94c8cead1f0439751 (patch) | |
tree | c64306065ff392590cf89808807fb82a65499650 /arch/x86/include | |
parent | 5cd21917da245fbe98bd443de2c7f519b3df6814 (diff) | |
download | op-kernel-dev-7b262e90fc20a49fddf3dad94c8cead1f0439751.zip op-kernel-dev-7b262e90fc20a49fddf3dad94c8cead1f0439751.tar.gz |
KVM: x86 emulator: introduce pio in string read ahead.
To optimize "rep ins" instruction do IO in big chunks ahead of time
instead of doing it only when required during instruction emulation.
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.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/x86/include/asm/kvm_emulate.h b/arch/x86/include/asm/kvm_emulate.h index 7fda16f..b5e12c5 100644 --- a/arch/x86/include/asm/kvm_emulate.h +++ b/arch/x86/include/asm/kvm_emulate.h @@ -151,6 +151,12 @@ struct fetch_cache { unsigned long end; }; +struct read_cache { + u8 data[1024]; + unsigned long pos; + unsigned long end; +}; + struct decode_cache { u8 twobyte; u8 b; @@ -178,6 +184,7 @@ struct decode_cache { void *modrm_ptr; unsigned long modrm_val; struct fetch_cache fetch; + struct read_cache io_read; }; struct x86_emulate_ctxt { |