|
|
Log in / Subscribe / Register

KVM: MIPS: Hypercalls

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



Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds