This series implements some basic hypercalls for MIPS KVM, as used by the MIPS paravirtual platform support in Linux and provided by Cavium's VZ KVM implementation. - Patch 1 hooks up trap & emulate to some minimal hypercall infrastructure without any hypercalls implemented yet. VZ support when it comes will also hook into the same infrastructure. - Patches 2-3 implement GET_CLOCK_FREQ and EXIT_VM hypercalls. - Patch 4 implements the console output hypercall by using KVM_EXIT_HYPERCALL (i.e. delegating the hypercall to userland). Its unclear if there is a more preferable approach to this, so comments particularly appreciated here. Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx> Cc: "Radim Krčmář" <rkrcmar@xxxxxxxxxx> Cc: Ralf Baechle <ralf@xxxxxxxxxxxxxx> Cc: Andreas Herrmann <andreas.herrmann@xxxxxxxxxxxxxxxxxx> Cc: David Daney <david.daney@xxxxxxxxxx> Cc: Jonathan Corbet <corbet@xxxxxxx> Cc: linux-mips@xxxxxxxxxxxxxx Cc: kvm@xxxxxxxxxxxxxxx Cc: linux-doc@xxxxxxxxxxxxxxx James Hogan (4): KVM: MIPS: Implement HYPCALL emulation KVM: MIPS: Implement GET_CLOCK_FREQ hypercall KVM: MIPS: Implement EXIT_VM hypercall KVM: MIPS: Implement console output hypercall Documentation/virtual/kvm/hypercalls.txt | 27 +++++++- arch/mips/include/asm/kvm_host.h | 11 +++- arch/mips/include/uapi/asm/inst.h | 2 +- arch/mips/kvm/Makefile | 1 +- arch/mips/kvm/emulate.c | 3 +- arch/mips/kvm/hypcall.c | 94 +++++++++++++++++++++++++- arch/mips/kvm/mips.c | 3 +- arch/mips/kvm/trap_emul.c | 4 +- 8 files changed, 144 insertions(+), 1 deletion(-) create mode 100644 arch/mips/kvm/hypcall.c -- git-series 0.8.10