From: "Nicholas Piggin" <npiggin@gmail.com>
To: "Harsh Prateek Bora" <harshpb@linux.ibm.com>, <qemu-ppc@nongnu.org>
Cc: <clegoate@redhat.com>, <qemu-devel@nongnu.org>,
<mikey@neuling.org>, <vaibhav@linux.ibm.com>,
<jniethe5@gmail.com>, <sbhat@linux.ibm.com>,
<kconsul@linux.vnet.ibm.com>, <danielhb413@gmail.com>
Subject: Re: [PATCH v2 04/14] spapr: nested: Introduce cap-nested-papr for Nested PAPR API
Date: Thu, 30 Nov 2023 21:11:42 +1000 [thread overview]
Message-ID: <CXC3NJMX3IHH.LY7HE54F29I@wheely> (raw)
In-Reply-To: <614cb3f5-454a-c83b-47b1-a0387a8aa187@linux.ibm.com>
On Thu Nov 30, 2023 at 4:19 PM AEST, Harsh Prateek Bora wrote:
>
>
> On 11/29/23 09:31, Nicholas Piggin wrote:
> > On Thu Oct 12, 2023 at 8:49 PM AEST, Harsh Prateek Bora wrote:
> >> Introduce a SPAPR capability cap-nested-papr which provides a nested
> >> HV facility to the guest. This is similar to cap-nested-hv, but uses
> >> a different (incompatible) API and so they are mutually exclusive.
> >> This new API is to enable support for KVM on PowerVM and recently the
> >> Linux kernel side patches have been accepted upstream as well [1].
> >> Support for related hcalls is being added in next set of patches.
> >
> > We do want to be able to support both APIs on a per-guest basis. It
> > doesn't look like the vmstate bits will be a problem, both could be
> > enabled if the logic permitted it and that wouldn't cause a
> > compatibility problem I think?
> >
>
> I am not sure if it makes sense to have both APIs working in parallel
> for a nested guest.
Not for the nested guest, but for the nested KVM host (i.e., the direct
pseries guest running QEMU). QEMU doesn't know ahead of time which API
might be used by the OS.
> Former uses h_enter_guest and expects L1 to store
> most of the regs, and has no concept like GSB where the communication
> between L1 and L0 takes place in a standard format which is used at
> nested guest exit also. Here, we have separate APIs for guest/vcpu
> create and then do a run_vcpu for a specific vcpu. So, we cant really
> use both APIs interchangeably while running a nested guest. BTW, L1
> kernel uses only either of the APIs at a time, preferably this one if
> supported.
Yeah not on the same guest. And it's less about running two different
APIs on different guests with the same L1 simultaneously (although we
could probably change KVM to support that fairly easily, and we might
want to for testing purposes), but more about compatibility. What if
we boot or exec into an old kernel that doesn't support the new API?
>
> > And it's a bit of a nitpick, but the capability should not be permitted
> > before the actual APIs are supported IMO. You could split this into
> > adding .api first, so the implementation can test it, and add the spapr
> > caps at the end.
> >
>
> Agree, I shall update as suggested.
Thanks,
Nick
next prev parent reply other threads:[~2023-11-30 11:12 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-12 10:49 [PATCH v2 00/14] Nested PAPR API (KVM on PowerVM) Harsh Prateek Bora
2023-10-12 10:49 ` [PATCH v2 01/14] spapr: nested: move nested part of spapr_get_pate into spapr_nested.c Harsh Prateek Bora
2023-11-29 3:47 ` Nicholas Piggin
2023-10-12 10:49 ` [PATCH v2 02/14] spapr: nested: Introduce SpaprMachineStateNested to store related info Harsh Prateek Bora
2023-11-29 3:48 ` Nicholas Piggin
2023-10-12 10:49 ` [PATCH v2 03/14] spapr: nested: Document Nested PAPR API Harsh Prateek Bora
2023-10-12 10:49 ` [PATCH v2 04/14] spapr: nested: Introduce cap-nested-papr for " Harsh Prateek Bora
2023-11-29 4:01 ` Nicholas Piggin
2023-11-30 6:19 ` Harsh Prateek Bora
2023-11-30 11:11 ` Nicholas Piggin [this message]
2023-12-01 5:34 ` Harsh Prateek Bora
2023-10-12 10:49 ` [PATCH v2 05/14] spapr: nested: register nested-hv api hcalls only for cap-nested-hv Harsh Prateek Bora
2023-11-29 4:03 ` Nicholas Piggin
2023-10-12 10:49 ` [PATCH v2 06/14] spapr: nested: Introduce H_GUEST_[GET|SET]_CAPABILITIES hcalls Harsh Prateek Bora
2023-10-12 10:49 ` [PATCH v2 07/14] spapr: nested: Introduce H_GUEST_[CREATE|DELETE] hcalls Harsh Prateek Bora
2023-10-12 10:49 ` [PATCH v2 08/14] spapr: nested: Introduce H_GUEST_CREATE_VPCU hcall Harsh Prateek Bora
2023-10-12 10:49 ` [PATCH v2 09/14] spapr: nested: Initialize the GSB elements lookup table Harsh Prateek Bora
2023-10-12 10:49 ` [PATCH v2 10/14] spapr: nested: Introduce H_GUEST_[GET|SET]_STATE hcalls Harsh Prateek Bora
2023-10-12 10:49 ` [PATCH v2 11/14] spapr: nested: Use correct source for parttbl info for nested PAPR API Harsh Prateek Bora
2023-11-29 4:15 ` Nicholas Piggin
2023-10-12 10:49 ` [PATCH v2 12/14] spapr: nested: rename nested_host_state to nested_hv_host Harsh Prateek Bora
2023-10-12 10:49 ` [PATCH v2 13/14] spapr: nested: keep nested-hv exit code restricted to its API Harsh Prateek Bora
2023-11-29 4:16 ` Nicholas Piggin
2023-10-12 10:49 ` [PATCH v2 14/14] spapr: nested: Introduce H_GUEST_RUN_VCPU hcall Harsh Prateek Bora
2023-11-29 4:58 ` Nicholas Piggin
2023-11-13 13:15 ` [PATCH v2 00/14] Nested PAPR API (KVM on PowerVM) Nicholas Piggin
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=CXC3NJMX3IHH.LY7HE54F29I@wheely \
--to=npiggin@gmail.com \
--cc=clegoate@redhat.com \
--cc=danielhb413@gmail.com \
--cc=harshpb@linux.ibm.com \
--cc=jniethe5@gmail.com \
--cc=kconsul@linux.vnet.ibm.com \
--cc=mikey@neuling.org \
--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 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).