This (longer than expected) patchset decouples the x86 emulator from the rest of kvm. All communication is not done via x86_emulate_ctxt fields and callbacks; there is no access to ctxt->vcpu (which is eliminated by the last patch). Avi Kivity (16): KVM: x86 emulator: drop vcpu argument from memory read/write callbacks KVM: x86 emulator: drop vcpu argument from pio callbacks KVM: x86 emulator: drop vcpu argument from segment/gdt/idt callbacks KVM: x86 emulator: drop vcpu argument from cr/dr/cpl/msr callbacks KVM: x86 emulator: drop vcpu argument from intercept callback KVM: x86 emulator: avoid using ctxt->vcpu in check_perm() callbacks KVM: x86 emulator: add and use new callbacks set_idt(), set_gdt() KVM: x86 emulator: drop use of is_long_mode() KVM: x86 emulator: Replace calls to is_pae() and is_paging with ->get_cr() KVM: x86 emulator: emulate CLTS internally KVM: x86 emulator: make emulate_invlpg() an emulator callback KVM: x86 emulator: add new ->halt() callback KVM: x86 emulator: add ->fix_hypercall() callback KVM: x86 emulator: add new ->wbinvd() callback KVM: Avoid using x86_emulate_ctxt.vcpu KVM: x86 emulator: drop x86_emulate_ctxt::vcpu arch/x86/include/asm/kvm_emulate.h | 90 ++++++----- arch/x86/include/asm/kvm_host.h | 7 - arch/x86/kvm/emulate.c | 321 +++++++++++++++++++----------------- arch/x86/kvm/x86.c | 203 ++++++++++++++--------- 4 files changed, 338 insertions(+), 283 deletions(-) -- 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