From: Greg Kurz <groug@kaod.org>
To: David Gibson <david@gibson.dropbear.id.au>
Cc: benh@kernel.crashing.org, qemu-ppc@nongnu.org, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH for-2.13 10/10] spapr: Move PAPR specific cpu logic to pseries machine type
Date: Fri, 20 Apr 2018 17:58:55 +0200 [thread overview]
Message-ID: <20180420175855.58f548a6@bahia.lan> (raw)
In-Reply-To: <20180417071722.9399-11-david@gibson.dropbear.id.au>
On Tue, 17 Apr 2018 17:17:22 +1000
David Gibson <david@gibson.dropbear.id.au> wrote:
> cpu_ppc_set_papr() does three things: 1) it sets up the virtual hypervisor
> interface, 2) it prevents the cpu from ever entering hypervisor mode and
> 3) it tells KVM that we're emulating a cpu in PAPR mode.
>
> (1) & (2) make sense for any virtual hypervisor (if one ever exists). (3)
> belongs more properly in the machine type specific to a PAPR guest.
>
> While we're at it, remove an unnecessary test on kvm_enabled() by making
> kvmppc_set_papr() a safe no-op on non-KVM.
>
> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
> ---
Reviewed-by: Greg Kurz <groug@kaod.org>
> hw/ppc/spapr_cpu_core.c | 4 ++--
> target/ppc/cpu.h | 2 +-
> target/ppc/kvm.c | 4 ++++
> target/ppc/translate_init.c | 7 +------
> 4 files changed, 8 insertions(+), 9 deletions(-)
>
> diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c
> index 8be0265d04..0a668b8954 100644
> --- a/hw/ppc/spapr_cpu_core.c
> +++ b/hw/ppc/spapr_cpu_core.c
> @@ -94,8 +94,8 @@ static void spapr_cpu_init(sPAPRMachineState *spapr, PowerPCCPU *cpu,
> /* Set time-base frequency to 512 MHz */
> cpu_ppc_tb_init(env, SPAPR_TIMEBASE_FREQ);
>
> - /* Enable PAPR mode in TCG or KVM */
> - cpu_ppc_set_papr(cpu, PPC_VIRTUAL_HYPERVISOR(spapr));
> + cpu_ppc_set_vhyp(cpu, PPC_VIRTUAL_HYPERVISOR(spapr));
> + kvmppc_set_papr(cpu);
>
> qemu_register_reset(spapr_cpu_reset, cpu);
> }
> diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h
> index 8c9e03f54d..740939a085 100644
> --- a/target/ppc/cpu.h
> +++ b/target/ppc/cpu.h
> @@ -1331,7 +1331,7 @@ void store_booke_tcr (CPUPPCState *env, target_ulong val);
> void store_booke_tsr (CPUPPCState *env, target_ulong val);
> void ppc_tlb_invalidate_all (CPUPPCState *env);
> void ppc_tlb_invalidate_one (CPUPPCState *env, target_ulong addr);
> -void cpu_ppc_set_papr(PowerPCCPU *cpu, PPCVirtualHypervisor *vhyp);
> +void cpu_ppc_set_vhyp(PowerPCCPU *cpu, PPCVirtualHypervisor *vhyp);
> #endif
> #endif
>
> diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c
> index 51177a8e00..e4341d6ff7 100644
> --- a/target/ppc/kvm.c
> +++ b/target/ppc/kvm.c
> @@ -2090,6 +2090,10 @@ void kvmppc_set_papr(PowerPCCPU *cpu)
> CPUState *cs = CPU(cpu);
> int ret;
>
> + if (!kvm_enabled()) {
> + return;
> + }
> +
> ret = kvm_vcpu_enable_cap(cs, KVM_CAP_PPC_PAPR, 0);
> if (ret) {
> error_report("This vCPU type or KVM version does not support PAPR");
> diff --git a/target/ppc/translate_init.c b/target/ppc/translate_init.c
> index bb5559d799..95e8dba97a 100644
> --- a/target/ppc/translate_init.c
> +++ b/target/ppc/translate_init.c
> @@ -8864,7 +8864,7 @@ POWERPC_FAMILY(POWER9)(ObjectClass *oc, void *data)
> }
>
> #if !defined(CONFIG_USER_ONLY)
> -void cpu_ppc_set_papr(PowerPCCPU *cpu, PPCVirtualHypervisor *vhyp)
> +void cpu_ppc_set_vhyp(PowerPCCPU *cpu, PPCVirtualHypervisor *vhyp)
> {
> CPUPPCState *env = &cpu->env;
>
> @@ -8875,11 +8875,6 @@ void cpu_ppc_set_papr(PowerPCCPU *cpu, PPCVirtualHypervisor *vhyp)
> * hypervisor mode itself
> */
> env->msr_mask &= ~MSR_HVB;
> -
> - /* Tell KVM that we're in PAPR mode */
> - if (kvm_enabled()) {
> - kvmppc_set_papr(cpu);
> - }
> }
>
> #endif /* !defined(CONFIG_USER_ONLY) */
prev parent reply other threads:[~2018-04-20 15:59 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-17 7:17 [Qemu-devel] [PATCH for-2.13 00/10] spapr: Cleanups to PAPR mode setup David Gibson
2018-04-17 7:17 ` [Qemu-devel] [PATCH for-2.13 01/10] spapr: Avoid redundant calls to spapr_cpu_reset() David Gibson
2018-04-19 13:48 ` Greg Kurz
2018-04-20 6:34 ` David Gibson
2018-04-20 9:15 ` Greg Kurz
2018-04-20 15:39 ` [Qemu-devel] [Qemu-ppc] " Greg Kurz
2018-06-18 3:42 ` David Gibson
2018-06-18 9:01 ` Greg Kurz
2018-04-17 7:17 ` [Qemu-devel] [PATCH for-2.13 02/10] spapr: Remove support for PowerPC 970 with pseries machine type David Gibson
2018-04-19 17:21 ` Greg Kurz
2018-04-20 5:58 ` [Qemu-devel] [Qemu-ppc] " Thomas Huth
2018-04-20 6:40 ` [Qemu-devel] " David Gibson
2018-04-20 6:48 ` [Qemu-devel] [Qemu-ppc] " luigi burdo
2018-04-20 7:15 ` David Gibson
2018-04-20 12:25 ` [Qemu-devel] " Greg Kurz
2018-05-03 6:23 ` David Gibson
2018-04-17 7:17 ` [Qemu-devel] [PATCH for-2.13 03/10] target/ppc: Remove unnecessary initialization of LPCR_UPRT David Gibson
2018-04-20 11:34 ` Greg Kurz
2018-04-20 12:57 ` David Gibson
2018-04-25 9:52 ` [Qemu-devel] [Qemu-ppc] " Cédric Le Goater
2018-04-26 6:46 ` David Gibson
2018-04-26 7:20 ` Cédric Le Goater
2018-05-01 6:39 ` David Gibson
2018-05-01 15:59 ` Cédric Le Goater
2018-04-17 7:17 ` [Qemu-devel] [PATCH for-2.13 04/10] spapr: Set compatibility mode before the rest of spapr_cpu_reset() David Gibson
2018-04-20 9:16 ` Greg Kurz
2018-04-20 10:48 ` David Gibson
2018-04-17 7:17 ` [Qemu-devel] [PATCH for-2.13 05/10] spapr: Move PAPR mode register initialization to spapr code David Gibson
2018-04-20 15:42 ` Greg Kurz
2018-04-17 7:17 ` [Qemu-devel] [PATCH for-2.13 06/10] target/ppc: Add ppc_store_lpcr() helper David Gibson
2018-04-20 15:46 ` Greg Kurz
2018-04-17 7:17 ` [Qemu-devel] [PATCH for-2.13 07/10] spapr: Make a helper to set up cpu entry point state David Gibson
2018-04-20 15:48 ` Greg Kurz
2018-04-17 7:17 ` [Qemu-devel] [PATCH for-2.13 08/10] spapr: Clean up handling of LPCR power-saving exit bits David Gibson
2018-04-20 15:56 ` Greg Kurz
2018-04-17 7:17 ` [Qemu-devel] [PATCH for-2.13 09/10] target/ppc: Don't bother with MSR_EP in cpu_ppc_set_papr() David Gibson
2018-04-20 6:08 ` [Qemu-devel] [Qemu-ppc] " Thomas Huth
2018-04-20 6:21 ` David Gibson
2018-04-17 7:17 ` [Qemu-devel] [PATCH for-2.13 10/10] spapr: Move PAPR specific cpu logic to pseries machine type David Gibson
2018-04-20 15:58 ` Greg Kurz [this message]
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=20180420175855.58f548a6@bahia.lan \
--to=groug@kaod.org \
--cc=benh@kernel.crashing.org \
--cc=david@gibson.dropbear.id.au \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.