With this patches loading 100M initrd takes ~10s instead of ~40s without. Changelog: v2->v3 - Fix incorrect size parameter for linearize() notices by Marcelo. - Get rid of linearize() callback in emulation ops. v1->v2 - add segment check and mask rcx/rdi correctly drying increment. Gleb Natapov (5): KVM: Provide userspace IO exit completion callback. KVM: emulator: make x86 emulation modes enum instead of defines KVM: emulator: move some address manipulation function out of emulator code. KVM: emulator: make linearize() callable from outside of emulator KVM: Provide fast path for "rep ins" emulation if possible. arch/x86/include/asm/kvm_emulate.h | 38 +++-- arch/x86/include/asm/kvm_host.h | 32 ++++ arch/x86/kvm/emulate.c | 133 ++++++++-------- arch/x86/kvm/svm.c | 20 ++- arch/x86/kvm/vmx.c | 25 ++- arch/x86/kvm/x86.c | 305 ++++++++++++++++++++++++++++-------- 6 files changed, 395 insertions(+), 158 deletions(-) -- 1.7.10 -- 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