| From: |
| James Hogan <james.hogan-AT-imgtec.com> |
| To: |
| <linux-mips-AT-linux-mips.org> |
| Subject: |
| [PATCH 0/4] KVM: MIPS: Hypercalls |
| Date: |
| Mon, 6 Feb 2017 10:46:45 +0000 |
| Message-ID: |
| <cover.3a9aba89648ae37be335c79cc2b18cf6bf57ef08.1486377433.git-series.james.hogan@imgtec.com> |
| Cc: |
| James Hogan <james.hogan-AT-imgtec.com>, Paolo Bonzini <pbonzini-AT-redhat.com>, =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= <rkrcmar-AT-redhat.com>, Ralf Baechle <ralf-AT-linux-mips.org>, Andreas Herrmann <andreas.herrmann-AT-caviumnetworks.com>, David Daney <david.daney-AT-cavium.com>, Jonathan Corbet <corbet-AT-lwn.net>, <kvm-AT-vger.kernel.org>, <linux-doc-AT-vger.kernel.org> |
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@redhat.com>
Cc: "Radim Krčmář" <rkrcmar@redhat.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Andreas Herrmann <andreas.herrmann@caviumnetworks.com>
Cc: David Daney <david.daney@cavium.com>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: linux-mips@linux-mips.org
Cc: kvm@vger.kernel.org
Cc: linux-doc@vger.kernel.org
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