From: Harsh Prateek Bora <harshpb@linux.ibm.com>
To: npiggin@gmail.com, danielhb413@gmail.com, qemu-ppc@nongnu.org
Cc: qemu-devel@nongnu.org, mikey@neuling.org, vaibhav@linux.ibm.com,
jniethe5@gmail.com, sbhat@linux.ibm.com,
kconsul@linux.vnet.ibm.com
Subject: [PATCH 00/15] Nested PAPR API (KVM on PowerVM)
Date: Wed, 6 Sep 2023 10:03:18 +0530 [thread overview]
Message-ID: <20230906043333.448244-1-harshpb@linux.ibm.com> (raw)
There is an existing Nested-HV API to enable nested guests on powernv
machines. However, that is not supported on pseries/PowerVM LPARs.
This patch series implements required hcall interfaces to enable nested
guests with KVM on PowerVM.
Unlike Nested-HV, with this API, entire L2 state is retained by L0
during guest entry/exit and uses pre-defined Guest State Buffer (GSB)
format to communicate guest state between L1 and L2 via L0.
L0 here refers to the phyp/PowerVM, or launching a Qemu TCG L0 with the
newly introduced option cap-nested-papr=true (refer patch 5/15).
L1 refers to the LPAR host on PowerVM or Linux booted on Qemu TCG with
above mentioned option cap-nested-papr=true.
L2 refers to nested guest running on top of L1 using KVM.
No SW changes needed for Qemu running in L1 Linux as well as L2 Kernel.
There is a Linux Kernel side patch series to enable support for Nested
PAPR in L1 and same can be found at below url:
Linux Kernel RFC PATCH v4:
- https://lore.kernel.org/linuxppc-dev/20230905034658.82835-1-jniethe5@gmail.com/
For more details, documentation can be referred in either of patch
series.
There are scripts available to assist in setting up an environment for
testing nested guests at https://github.com/mikey/kvm-powervm-test
Thanks to Michael Neuling, Shivaprasad Bhat, Kautuk Consul, Vaibhav Jain
and Jordan Niethe.
PS: This is a resend of patch series after rebasing to upstream master.
Harsh Prateek Bora (15):
ppc: spapr: Introduce Nested PAPR API related macros
ppc: spapr: Add new/extend structs to support Nested PAPR API
ppc: spapr: Use SpaprMachineStateNested's ptcr instead of nested_ptcr
ppc: spapr: Start using nested.api for nested kvm-hv api
ppc: spapr: Introduce cap-nested-papr for nested PAPR API
ppc: spapr: Implement nested PAPR hcall - H_GUEST_GET_CAPABILITIES
ppc: spapr: Implement nested PAPR hcall - H_GUEST_SET_CAPABILITIES
ppc: spapr: Implement nested PAPR hcall - H_GUEST_CREATE
ppc: spapr: Implement nested PAPR hcall - H_GUEST_CREATE_VCPU
ppc: spapr: Initialize the GSB Elements lookup table.
ppc: spapr: Implement nested PAPR hcall - H_GUEST_[GET|SET]_STATE
ppc: spapr: Use correct source for parttbl info for nested PAPR API.
ppc: spapr: Implement nested PAPR hcall - H_GUEST_RUN_VCPU
ppc: spapr: Implement nested PAPR hcall - H_GUEST_DELETE
ppc: spapr: Document Nested PAPR API
docs/devel/nested-papr.txt | 500 ++++++++++
hw/ppc/spapr.c | 28 +-
hw/ppc/spapr_caps.c | 50 +
hw/ppc/spapr_hcall.c | 1 +
hw/ppc/spapr_nested.c | 1504 +++++++++++++++++++++++++++++--
include/hw/ppc/ppc.h | 2 +
include/hw/ppc/spapr.h | 35 +-
include/hw/ppc/spapr_cpu_core.h | 7 +-
include/hw/ppc/spapr_nested.h | 378 ++++++++
target/ppc/cpu.h | 2 +
10 files changed, 2433 insertions(+), 74 deletions(-)
create mode 100644 docs/devel/nested-papr.txt
--
2.39.3
next reply other threads:[~2023-09-06 5:32 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-06 4:33 Harsh Prateek Bora [this message]
2023-09-06 4:33 ` [PATCH RESEND 01/15] ppc: spapr: Introduce Nested PAPR API related macros Harsh Prateek Bora
2023-09-06 23:48 ` Nicholas Piggin
2023-09-11 6:21 ` Harsh Prateek Bora
2023-09-06 4:33 ` [PATCH RESEND 02/15] ppc: spapr: Add new/extend structs to support Nested PAPR API Harsh Prateek Bora
2023-09-07 1:06 ` Nicholas Piggin
2023-09-11 6:47 ` Harsh Prateek Bora
2023-09-06 4:33 ` [PATCH RESEND 03/15] ppc: spapr: Use SpaprMachineStateNested's ptcr instead of nested_ptcr Harsh Prateek Bora
2023-09-07 1:13 ` Nicholas Piggin
2023-09-11 7:24 ` Harsh Prateek Bora
2023-09-06 4:33 ` [PATCH RESEND 04/15] ppc: spapr: Start using nested.api for nested kvm-hv api Harsh Prateek Bora
2023-09-07 1:35 ` Nicholas Piggin
2023-09-11 8:18 ` Harsh Prateek Bora
2023-09-06 4:33 ` [PATCH RESEND 05/15] ppc: spapr: Introduce cap-nested-papr for nested PAPR API Harsh Prateek Bora
2023-09-07 1:49 ` Nicholas Piggin
2023-09-19 9:49 ` Harsh Prateek Bora
2023-09-07 1:52 ` Nicholas Piggin
2023-09-06 4:33 ` [PATCH RESEND 06/15] ppc: spapr: Implement nested PAPR hcall - H_GUEST_GET_CAPABILITIES Harsh Prateek Bora
2023-09-07 2:02 ` Nicholas Piggin
2023-09-19 10:48 ` Harsh Prateek Bora
2023-10-03 8:10 ` Cédric Le Goater
2023-09-06 4:33 ` [PATCH RESEND 07/15] ppc: spapr: Implement nested PAPR hcall - H_GUEST_SET_CAPABILITIES Harsh Prateek Bora
2023-09-07 2:09 ` Nicholas Piggin
2023-10-03 4:59 ` Harsh Prateek Bora
2023-09-06 4:33 ` [PATCH RESEND 08/15] ppc: spapr: Implement nested PAPR hcall - H_GUEST_CREATE Harsh Prateek Bora
2023-09-07 2:28 ` Nicholas Piggin
2023-10-03 7:57 ` Harsh Prateek Bora
2023-09-06 4:33 ` [PATCH RESEND 09/15] ppc: spapr: Implement nested PAPR hcall - H_GUEST_CREATE_VCPU Harsh Prateek Bora
2023-09-07 2:49 ` Nicholas Piggin
2023-10-04 4:49 ` Harsh Prateek Bora
2023-09-06 4:33 ` [PATCH RESEND 10/15] ppc: spapr: Initialize the GSB Elements lookup table Harsh Prateek Bora
2023-09-07 3:01 ` Nicholas Piggin
2023-10-04 9:27 ` Harsh Prateek Bora
2023-10-04 9:42 ` Harsh Prateek Bora
2023-09-06 4:33 ` [PATCH RESEND 11/15] ppc: spapr: Implement nested PAPR hcall - H_GUEST_[GET|SET]_STATE Harsh Prateek Bora
2023-09-07 3:30 ` Nicholas Piggin
2023-10-09 8:23 ` Harsh Prateek Bora
2023-09-06 4:33 ` [PATCH RESEND 12/15] ppc: spapr: Use correct source for parttbl info for nested PAPR API Harsh Prateek Bora
2023-09-06 4:33 ` [PATCH RESEND 13/15] ppc: spapr: Implement nested PAPR hcall - H_GUEST_RUN_VCPU Harsh Prateek Bora
2023-09-07 3:55 ` Nicholas Piggin
2023-10-12 10:23 ` Harsh Prateek Bora
2023-09-06 4:33 ` [PATCH RESEND 14/15] ppc: spapr: Implement nested PAPR hcall - H_GUEST_DELETE Harsh Prateek Bora
2023-09-07 2:31 ` Nicholas Piggin
2023-10-03 8:01 ` Harsh Prateek Bora
2023-09-06 4:33 ` [PATCH RESEND 15/15] ppc: spapr: Document Nested PAPR API Harsh Prateek Bora
2023-09-07 3:56 ` Nicholas Piggin
2023-10-12 10:25 ` Harsh Prateek Bora
-- strict thread matches above, loose matches on Subject: below --
2023-07-18 9:22 [PATCH 00/15] Nested PAPR API (KVM on PowerVM) Harsh Prateek Bora
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=20230906043333.448244-1-harshpb@linux.ibm.com \
--to=harshpb@linux.ibm.com \
--cc=danielhb413@gmail.com \
--cc=jniethe5@gmail.com \
--cc=kconsul@linux.vnet.ibm.com \
--cc=mikey@neuling.org \
--cc=npiggin@gmail.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=sbhat@linux.ibm.com \
--cc=vaibhav@linux.ibm.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 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.