From: David Daney <ddaney.cavm@gmail.com>
To: Sanjay Lal <sanjayl@kymasys.com>
Cc: kvm@vger.kernel.org, linux-mips@linux-mips.org,
Ralf Baechle <ralf@linux-mips.org>
Subject: Re: [PATCH v2 02/18] KVM/MIPS32: Arch specific KVM data structures.
Date: Thu, 31 Jan 2013 12:12:46 -0800 [thread overview]
Message-ID: <510AD03E.1030105@gmail.com> (raw)
In-Reply-To: <1353551656-23579-3-git-send-email-sanjayl@kymasys.com>
On 11/21/2012 06:34 PM, Sanjay Lal wrote:
> Signed-off-by: Sanjay Lal <sanjayl@kymasys.com>
> ---
> arch/mips/include/asm/kvm.h | 55 ++++
asm/kvm.h defines the user space ABI, and thus should be placed in
arch/mips/include/uapi/asm instead.
> arch/mips/include/asm/kvm_host.h | 669 +++++++++++++++++++++++++++++++++++++++
> 2 files changed, 724 insertions(+)
> create mode 100644 arch/mips/include/asm/kvm.h
> create mode 100644 arch/mips/include/asm/kvm_host.h
>
> diff --git a/arch/mips/include/asm/kvm.h b/arch/mips/include/asm/kvm.h
> new file mode 100644
> index 0000000..85789ea
> --- /dev/null
> +++ b/arch/mips/include/asm/kvm.h
> @@ -0,0 +1,55 @@
> +/*
> +* This file is subject to the terms and conditions of the GNU General Public
> +* License. See the file "COPYING" in the main directory of this archive
> +* for more details.
> +*
> +* Copyright (C) 2012 MIPS Technologies, Inc. All rights reserved.
> +* Authors: Sanjay Lal <sanjayl@kymasys.com>
> +*/
> +
> +#ifndef __LINUX_KVM_MIPS_H
> +#define __LINUX_KVM_MIPS_H
> +
> +#include <linux/types.h>
> +
> +#define __KVM_MIPS
> +
> +#define N_MIPS_COPROC_REGS 32
> +#define N_MIPS_COPROC_SEL 8
> +
> +/* for KVM_GET_REGS and KVM_SET_REGS */
> +struct kvm_regs {
> + __u32 gprs[32];
MIPS64 registers are 64 bits wide. How is this going to work for MIPS64?
It seems a little important to answer this question as this is a
userspace ABI that really cannot be changed once it is published.
> + __u32 hi;
> + __u32 lo;
> + __u32 pc;
> +
> + __u32 cp0reg[N_MIPS_COPROC_REGS][N_MIPS_COPROC_SEL];
Do we really want CP0 regs in here? Other architectures don't have
things like this. They use things like KVM_GET_MSRS and KVM_SET_MSRS
for this.
> +};
> +
> +/* for KVM_GET_SREGS and KVM_SET_SREGS */
> +struct kvm_sregs {
> +};
> +
> +/* for KVM_GET_FPU and KVM_SET_FPU */
> +struct kvm_fpu {
This is a userspace ABI, and MIPS definitely has a FPU. That means that
we cannot change the definition after it is merged, but we know this
must have the FPU registers in it.
So it cannot be both present and empty.
> +};
> +
> +struct kvm_debug_exit_arch {
> +};
> +
> +/* for KVM_SET_GUEST_DEBUG */
> +struct kvm_guest_debug_arch {
> +};
> +
> +struct kvm_mips_interrupt {
> + /* in */
> + __u32 cpu;
> + __u32 irq;
> +};
> +
> +/* definition of registers in kvm_run */
> +struct kvm_sync_regs {
> +};
> +
> +#endif /* __LINUX_KVM_MIPS_H */
[...]
next prev parent reply other threads:[~2013-01-31 20:12 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-22 2:33 [PATCH v2 00/18] KVM for MIPS32 Processors Sanjay Lal
2012-11-22 2:33 ` [PATCH v2 01/18] KVM/MIPS32: Infrastructure/build files Sanjay Lal
2012-11-22 2:34 ` [PATCH v2 02/18] KVM/MIPS32: Arch specific KVM data structures Sanjay Lal
2012-12-26 13:14 ` Gleb Natapov
2013-01-24 13:22 ` Ralf Baechle
2013-01-31 20:12 ` David Daney [this message]
2013-02-06 13:11 ` Gleb Natapov
2012-11-22 2:34 ` [PATCH v2 03/18] KVM/MIPS32: Entry point for trampolining to the guest and trap handlers Sanjay Lal
2012-11-22 2:34 ` [PATCH v2 04/18] KVM/MIPS32: MIPS arch specific APIs for KVM Sanjay Lal
2012-11-22 2:34 ` [PATCH v2 05/18] KVM/MIPS32: KVM Guest kernel support Sanjay Lal
2012-11-22 2:34 ` [PATCH v2 06/18] KVM/MIPS32: Privileged instruction/target branch emulation Sanjay Lal
2012-11-22 2:34 ` [PATCH v2 07/18] KVM/MIPS32: MMU/TLB operations for the Guest Sanjay Lal
2013-02-06 12:08 ` Gleb Natapov
2013-02-15 18:19 ` Sanjay Lal
2013-02-15 18:41 ` Gleb Natapov
2013-02-16 15:57 ` Sanjay Lal
2013-02-16 16:21 ` Gleb Natapov
2012-11-22 2:34 ` [PATCH v2 08/18] KVM/MIPS32: Release notes and KVM module Makefile Sanjay Lal
2012-11-22 2:34 ` [PATCH v2 09/18] KVM/MIPS32: COP0 accesses profiling Sanjay Lal
2012-11-22 11:45 ` Sergei Shtylyov
2013-02-06 13:17 ` Gleb Natapov
2013-02-15 18:22 ` Sanjay Lal
2012-11-22 2:34 ` [PATCH v2 10/18] KVM/MIPS32: Guest interrupt delivery Sanjay Lal
2012-11-22 2:34 ` [PATCH v2 11/18] KVM/MIPS32: Routines to handle specific traps/exceptions while executing the guest Sanjay Lal
2013-02-06 13:20 ` Gleb Natapov
2013-02-15 16:10 ` Sanjay Lal
2013-02-18 9:44 ` Gleb Natapov
2013-02-19 2:31 ` Sanjay Lal
2012-11-22 2:34 ` [PATCH v2 12/18] MIPS: Export routines needed by the KVM module Sanjay Lal
2012-11-22 2:34 ` [PATCH v2 13/18] MIPS: If KVM is enabled then use the KVM specific routine to flush the TLBs on a ASID wrap Sanjay Lal
2012-11-22 2:34 ` [PATCH v2 14/18] MIPS: ASM offsets for VCPU arch specific fields Sanjay Lal
2012-11-22 2:34 ` [PATCH v2 15/18] MIPS: Pull in MIPS fix: fix endless loop when processing signals for kernel tasks Sanjay Lal
2013-01-24 13:07 ` Ralf Baechle
2012-11-22 2:34 ` [PATCH v2 16/18] MIPS: Export symbols used by KVM/MIPS module Sanjay Lal
2012-11-22 2:34 ` [PATCH v2 17/18] KVM/MIPS32: Do not call vcpu_load when injecting interrupts Sanjay Lal
2012-11-22 2:34 ` [PATCH v2 18/18] KVM/MIPS32: Binary patching of select privileged instructions Sanjay Lal
2012-11-26 18:53 ` [PATCH v2 00/18] KVM for MIPS32 Processors David Daney
2012-11-27 19:35 ` Sanjay Lal
2013-01-24 15:05 ` Ralf Baechle
2013-01-24 15:59 ` Sanjay Lal
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=510AD03E.1030105@gmail.com \
--to=ddaney.cavm@gmail.com \
--cc=kvm@vger.kernel.org \
--cc=linux-mips@linux-mips.org \
--cc=ralf@linux-mips.org \
--cc=sanjayl@kymasys.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).