From: Suraj Jitindar Singh <sjitindarsingh@gmail.com> To: qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, david@gibson.dropbear.id.au, clg@kaod.org, groug@kaod.org, Suraj Jitindar Singh <sjitindarsingh@gmail.com> Subject: [Qemu-devel] [QEMU-PPC] [PATCH 00/13] target/ppc: Implement KVM support under TCG Date: Fri, 3 May 2019 15:53:03 +1000 [thread overview] Message-ID: <20190503055316.6441-1-sjitindarsingh@gmail.com> (raw) This patch series adds the necessary parts so that a tcg guest is able to use kvm facilities. That is a tcg guest can boot its own kvm guests. The main requirements for this were a few registers and instructions as well as some hcalls and the addition of partition scoped translation in the radix mmu emulation. This can be used to boot a kvm guest under a pseries tcg guest: Use power9_v2.2 cpu and add -machine cap-nested-hv=on for the first guest. Then inside that guest boot a kvm guest as normal. This takes advantage of the new hcalls with qemu emulating them as a normal hypervisor would on a real machine. This can also be used to boot a kvm guest under a powernv tcg guest: Use any power9 cpu type. This takes advantage of the new hv register access added. Note that for powernv there is no xive interrupt excalation for KVM which means that while the guest will boot, it won't receive any interrupts. Suraj Jitindar Singh (13): target/ppc: Implement the VTB for HV access target/ppc: Work [S]PURR implementation and add HV support target/ppc: Add SPR ASDR target/ppc: Add SPR TBU40 target/ppc: Add privileged message send facilities target/ppc: Enforce that the root page directory size must be at least 5 target/ppc: Handle partition scoped radix tree translation target/ppc: Implement hcall H_SET_PARTITION_TABLE target/ppc: Implement hcall H_ENTER_NESTED target/ppc: Implement hcall H_TLB_INVALIDATE target/ppc: Implement hcall H_COPY_TOFROM_GUEST target/ppc: Introduce POWER9 DD2.2 cpu type target/ppc: Enable SPAPR_CAP_NESTED_KVM_HV under tcg hw/ppc/ppc.c | 46 ++++- hw/ppc/spapr_caps.c | 22 ++- hw/ppc/spapr_cpu_core.c | 1 + hw/ppc/spapr_hcall.c | 409 +++++++++++++++++++++++++++++++++++++++ include/hw/ppc/ppc.h | 4 +- include/hw/ppc/spapr.h | 7 +- linux-user/ppc/cpu_loop.c | 5 + target/ppc/cpu-models.c | 2 + target/ppc/cpu-models.h | 1 + target/ppc/cpu.h | 70 +++++++ target/ppc/excp_helper.c | 79 +++++++- target/ppc/helper.h | 9 + target/ppc/misc_helper.c | 46 +++++ target/ppc/mmu-radix64.c | 412 ++++++++++++++++++++++++++++------------ target/ppc/mmu-radix64.h | 4 + target/ppc/timebase_helper.c | 20 ++ target/ppc/translate.c | 28 +++ target/ppc/translate_init.inc.c | 107 +++++++++-- 18 files changed, 1115 insertions(+), 157 deletions(-) -- 2.13.6
WARNING: multiple messages have this Message-ID (diff)
From: Suraj Jitindar Singh <sjitindarsingh@gmail.com> To: qemu-devel@nongnu.org Cc: groug@kaod.org, qemu-ppc@nongnu.org, clg@kaod.org, Suraj Jitindar Singh <sjitindarsingh@gmail.com>, david@gibson.dropbear.id.au Subject: [Qemu-devel] [QEMU-PPC] [PATCH 00/13] target/ppc: Implement KVM support under TCG Date: Fri, 3 May 2019 15:53:03 +1000 [thread overview] Message-ID: <20190503055316.6441-1-sjitindarsingh@gmail.com> (raw) Message-ID: <20190503055303.fRx7FwrNo4XrbuB_2JnwKFv1LGpDO6_8KUErYcJzzfI@z> (raw) This patch series adds the necessary parts so that a tcg guest is able to use kvm facilities. That is a tcg guest can boot its own kvm guests. The main requirements for this were a few registers and instructions as well as some hcalls and the addition of partition scoped translation in the radix mmu emulation. This can be used to boot a kvm guest under a pseries tcg guest: Use power9_v2.2 cpu and add -machine cap-nested-hv=on for the first guest. Then inside that guest boot a kvm guest as normal. This takes advantage of the new hcalls with qemu emulating them as a normal hypervisor would on a real machine. This can also be used to boot a kvm guest under a powernv tcg guest: Use any power9 cpu type. This takes advantage of the new hv register access added. Note that for powernv there is no xive interrupt excalation for KVM which means that while the guest will boot, it won't receive any interrupts. Suraj Jitindar Singh (13): target/ppc: Implement the VTB for HV access target/ppc: Work [S]PURR implementation and add HV support target/ppc: Add SPR ASDR target/ppc: Add SPR TBU40 target/ppc: Add privileged message send facilities target/ppc: Enforce that the root page directory size must be at least 5 target/ppc: Handle partition scoped radix tree translation target/ppc: Implement hcall H_SET_PARTITION_TABLE target/ppc: Implement hcall H_ENTER_NESTED target/ppc: Implement hcall H_TLB_INVALIDATE target/ppc: Implement hcall H_COPY_TOFROM_GUEST target/ppc: Introduce POWER9 DD2.2 cpu type target/ppc: Enable SPAPR_CAP_NESTED_KVM_HV under tcg hw/ppc/ppc.c | 46 ++++- hw/ppc/spapr_caps.c | 22 ++- hw/ppc/spapr_cpu_core.c | 1 + hw/ppc/spapr_hcall.c | 409 +++++++++++++++++++++++++++++++++++++++ include/hw/ppc/ppc.h | 4 +- include/hw/ppc/spapr.h | 7 +- linux-user/ppc/cpu_loop.c | 5 + target/ppc/cpu-models.c | 2 + target/ppc/cpu-models.h | 1 + target/ppc/cpu.h | 70 +++++++ target/ppc/excp_helper.c | 79 +++++++- target/ppc/helper.h | 9 + target/ppc/misc_helper.c | 46 +++++ target/ppc/mmu-radix64.c | 412 ++++++++++++++++++++++++++++------------ target/ppc/mmu-radix64.h | 4 + target/ppc/timebase_helper.c | 20 ++ target/ppc/translate.c | 28 +++ target/ppc/translate_init.inc.c | 107 +++++++++-- 18 files changed, 1115 insertions(+), 157 deletions(-) -- 2.13.6
next reply other threads:[~2019-05-03 5:53 UTC|newest] Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-05-03 5:53 Suraj Jitindar Singh [this message] 2019-05-03 5:53 ` [Qemu-devel] [QEMU-PPC] [PATCH 00/13] target/ppc: Implement KVM support under TCG Suraj Jitindar Singh 2019-05-03 5:53 ` [Qemu-devel] [QEMU-PPC] [PATCH 01/13] target/ppc: Implement the VTB for HV access Suraj Jitindar Singh 2019-05-03 5:53 ` Suraj Jitindar Singh 2019-05-06 6:02 ` David Gibson 2019-05-03 5:53 ` [Qemu-devel] [QEMU-PPC] [PATCH 02/13] target/ppc: Work [S]PURR implementation and add HV support Suraj Jitindar Singh 2019-05-03 5:53 ` Suraj Jitindar Singh 2019-05-06 6:15 ` David Gibson 2019-05-07 1:28 ` Suraj Jitindar Singh 2019-05-09 6:45 ` David Gibson 2019-05-03 5:53 ` [Qemu-devel] [QEMU-PPC] [PATCH 03/13] target/ppc: Add SPR ASDR Suraj Jitindar Singh 2019-05-03 5:53 ` Suraj Jitindar Singh 2019-05-06 6:16 ` David Gibson 2019-05-03 5:53 ` [Qemu-devel] [QEMU-PPC] [PATCH 04/13] target/ppc: Add SPR TBU40 Suraj Jitindar Singh 2019-05-03 5:53 ` Suraj Jitindar Singh 2019-05-06 6:17 ` David Gibson 2019-05-03 5:53 ` [Qemu-devel] [QEMU-PPC] [PATCH 05/13] target/ppc: Add privileged message send facilities Suraj Jitindar Singh 2019-05-03 5:53 ` Suraj Jitindar Singh 2019-05-10 2:09 ` David Gibson 2019-05-03 5:53 ` [Qemu-devel] [QEMU-PPC] [PATCH 06/13] target/ppc: Enforce that the root page directory size must be at least 5 Suraj Jitindar Singh 2019-05-03 5:53 ` Suraj Jitindar Singh 2019-05-10 2:11 ` David Gibson 2019-05-03 5:53 ` [Qemu-devel] [QEMU-PPC] [PATCH 07/13] target/ppc: Handle partition scoped radix tree translation Suraj Jitindar Singh 2019-05-03 5:53 ` Suraj Jitindar Singh 2019-05-10 2:28 ` David Gibson 2019-05-03 5:53 ` [Qemu-devel] [QEMU-PPC] [PATCH 08/13] target/ppc: Implement hcall H_SET_PARTITION_TABLE Suraj Jitindar Singh 2019-05-03 5:53 ` Suraj Jitindar Singh 2019-05-10 2:30 ` David Gibson 2019-05-03 5:53 ` [Qemu-devel] [QEMU-PPC] [PATCH 09/13] target/ppc: Implement hcall H_ENTER_NESTED Suraj Jitindar Singh 2019-05-03 5:53 ` Suraj Jitindar Singh 2019-05-10 2:57 ` David Gibson 2019-05-03 5:53 ` [Qemu-devel] [QEMU-PPC] [PATCH 10/13] target/ppc: Implement hcall H_TLB_INVALIDATE Suraj Jitindar Singh 2019-05-03 5:53 ` Suraj Jitindar Singh 2019-05-10 6:28 ` David Gibson 2019-05-03 5:53 ` [Qemu-devel] [QEMU-PPC] [PATCH 11/13] target/ppc: Implement hcall H_COPY_TOFROM_GUEST Suraj Jitindar Singh 2019-05-03 5:53 ` Suraj Jitindar Singh 2019-05-10 6:32 ` David Gibson 2019-05-03 5:53 ` [Qemu-devel] [QEMU-PPC] [PATCH 12/13] target/ppc: Introduce POWER9 DD2.2 cpu type Suraj Jitindar Singh 2019-05-03 5:53 ` Suraj Jitindar Singh 2019-05-10 6:32 ` David Gibson 2019-05-03 5:53 ` [Qemu-devel] [QEMU-PPC] [PATCH 13/13] target/ppc: Enable SPAPR_CAP_NESTED_KVM_HV under tcg Suraj Jitindar Singh 2019-05-03 5:53 ` Suraj Jitindar Singh 2019-05-10 6:34 ` David Gibson 2019-05-03 5:58 ` [Qemu-devel] [QEMU-PPC] [PATCH 00/13] target/ppc: Implement KVM support under TCG Suraj Jitindar Singh 2019-05-03 5:58 ` Suraj Jitindar Singh 2019-05-06 6:20 ` David Gibson 2019-05-06 23:45 ` Suraj Jitindar Singh
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=20190503055316.6441-1-sjitindarsingh@gmail.com \ --to=sjitindarsingh@gmail.com \ --cc=clg@kaod.org \ --cc=david@gibson.dropbear.id.au \ --cc=groug@kaod.org \ --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: linkBe 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).