From: David Gibson <david@gibson.dropbear.id.au>
To: Ram Pai <linuxram@us.ibm.com>
Cc: Alexey Kardashevskiy <aik@ozlabs.ru>,
Michael Anderson <andmike@linux.ibm.com>,
kvm-ppc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
Thiago Jung Bauermann <bauerman@linux.ibm.com>
Subject: Re: [PATCH kernel v2 4/4] powerpc/pseries/svm: Allow IOMMU to work in SVM
Date: Fri, 03 Jan 2020 00:08:49 +0000 [thread overview]
Message-ID: <20200103000849.GL2098@umbus> (raw)
In-Reply-To: <20200102222106.GB5556@oc0525413822.ibm.com>
[-- Attachment #1: Type: text/plain, Size: 2714 bytes --]
On Thu, Jan 02, 2020 at 02:21:06PM -0800, Ram Pai wrote:
> On Mon, Dec 16, 2019 at 03:19:24PM +1100, Alexey Kardashevskiy wrote:
> > H_PUT_TCE_INDIRECT uses a shared page to send up to 512 TCE to
> > a hypervisor in a single hypercall.
>
> Actually H_PUT_TCE_INDIRECT never used shared page. It would have
> used shared pages if the 'shared-page' solution was accepted. :)
Well, it depends what you mean by "shared". In the non-PEF case we do
use a shared page in the sense that it is accessed by both guest and
hypervisor. It's just not shared in the PEF sense.
> > This does not work for secure VMs
> > as the page needs to be shared or the VM should use H_PUT_TCE instead.
>
> Maybe you should say something like this.. ?
>
> H_PUT_TCE_INDIRECT does not work for secure VMs, since the page
> containing the TCE entries is not accessible to the hypervisor.
>
> >
> > This disables H_PUT_TCE_INDIRECT by clearing the FW_FEATURE_PUT_TCE_IND
> > feature bit so SVMs will map TCEs using H_PUT_TCE.
> >
> > This is not a part of init_svm() as it is called too late after FW
> > patching is done and may result in a warning like this:
> >
> > [ 3.727716] Firmware features changed after feature patching!
> > [ 3.727965] WARNING: CPU: 0 PID: 1 at (...)arch/powerpc/lib/feature-fixups.c:466 check_features+0xa4/0xc0
> >
> > Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
>
>
> Reviewed-by: Ram Pai <linuxram@us.ibm.com>
>
>
> > ---
> > Changes:
> > v2
> > * new in the patchset
> > ---
> > arch/powerpc/platforms/pseries/firmware.c | 7 +++++++
> > 1 file changed, 7 insertions(+)
> >
> > diff --git a/arch/powerpc/platforms/pseries/firmware.c b/arch/powerpc/platforms/pseries/firmware.c
> > index d3acff23f2e3..3e49cc23a97a 100644
> > --- a/arch/powerpc/platforms/pseries/firmware.c
> > +++ b/arch/powerpc/platforms/pseries/firmware.c
> > @@ -22,6 +22,7 @@
> > #include <asm/firmware.h>
> > #include <asm/prom.h>
> > #include <asm/udbg.h>
> > +#include <asm/svm.h>
> >
> > #include "pseries.h"
> >
> > @@ -101,6 +102,12 @@ static void __init fw_hypertas_feature_init(const char *hypertas,
> > }
> > }
> >
> > + if (is_secure_guest() &&
> > + (powerpc_firmware_features & FW_FEATURE_PUT_TCE_IND)) {
> > + powerpc_firmware_features &= ~FW_FEATURE_PUT_TCE_IND;
> > + pr_debug("SVM: disabling PUT_TCE_IND firmware feature\n");
> > + }
> > +
> > pr_debug(" <- fw_hypertas_feature_init()\n");
> > }
> >
>
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: David Gibson <david@gibson.dropbear.id.au>
To: Ram Pai <linuxram@us.ibm.com>
Cc: Alexey Kardashevskiy <aik@ozlabs.ru>,
Michael Anderson <andmike@linux.ibm.com>,
kvm-ppc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
Thiago Jung Bauermann <bauerman@linux.ibm.com>
Subject: Re: [PATCH kernel v2 4/4] powerpc/pseries/svm: Allow IOMMU to work in SVM
Date: Fri, 3 Jan 2020 11:08:49 +1100 [thread overview]
Message-ID: <20200103000849.GL2098@umbus> (raw)
In-Reply-To: <20200102222106.GB5556@oc0525413822.ibm.com>
[-- Attachment #1: Type: text/plain, Size: 2714 bytes --]
On Thu, Jan 02, 2020 at 02:21:06PM -0800, Ram Pai wrote:
> On Mon, Dec 16, 2019 at 03:19:24PM +1100, Alexey Kardashevskiy wrote:
> > H_PUT_TCE_INDIRECT uses a shared page to send up to 512 TCE to
> > a hypervisor in a single hypercall.
>
> Actually H_PUT_TCE_INDIRECT never used shared page. It would have
> used shared pages if the 'shared-page' solution was accepted. :)
Well, it depends what you mean by "shared". In the non-PEF case we do
use a shared page in the sense that it is accessed by both guest and
hypervisor. It's just not shared in the PEF sense.
> > This does not work for secure VMs
> > as the page needs to be shared or the VM should use H_PUT_TCE instead.
>
> Maybe you should say something like this.. ?
>
> H_PUT_TCE_INDIRECT does not work for secure VMs, since the page
> containing the TCE entries is not accessible to the hypervisor.
>
> >
> > This disables H_PUT_TCE_INDIRECT by clearing the FW_FEATURE_PUT_TCE_IND
> > feature bit so SVMs will map TCEs using H_PUT_TCE.
> >
> > This is not a part of init_svm() as it is called too late after FW
> > patching is done and may result in a warning like this:
> >
> > [ 3.727716] Firmware features changed after feature patching!
> > [ 3.727965] WARNING: CPU: 0 PID: 1 at (...)arch/powerpc/lib/feature-fixups.c:466 check_features+0xa4/0xc0
> >
> > Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
>
>
> Reviewed-by: Ram Pai <linuxram@us.ibm.com>
>
>
> > ---
> > Changes:
> > v2
> > * new in the patchset
> > ---
> > arch/powerpc/platforms/pseries/firmware.c | 7 +++++++
> > 1 file changed, 7 insertions(+)
> >
> > diff --git a/arch/powerpc/platforms/pseries/firmware.c b/arch/powerpc/platforms/pseries/firmware.c
> > index d3acff23f2e3..3e49cc23a97a 100644
> > --- a/arch/powerpc/platforms/pseries/firmware.c
> > +++ b/arch/powerpc/platforms/pseries/firmware.c
> > @@ -22,6 +22,7 @@
> > #include <asm/firmware.h>
> > #include <asm/prom.h>
> > #include <asm/udbg.h>
> > +#include <asm/svm.h>
> >
> > #include "pseries.h"
> >
> > @@ -101,6 +102,12 @@ static void __init fw_hypertas_feature_init(const char *hypertas,
> > }
> > }
> >
> > + if (is_secure_guest() &&
> > + (powerpc_firmware_features & FW_FEATURE_PUT_TCE_IND)) {
> > + powerpc_firmware_features &= ~FW_FEATURE_PUT_TCE_IND;
> > + pr_debug("SVM: disabling PUT_TCE_IND firmware feature\n");
> > + }
> > +
> > pr_debug(" <- fw_hypertas_feature_init()\n");
> > }
> >
>
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2020-01-03 0:08 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-16 4:19 [PATCH kernel v2 0/4] Enable IOMMU support for pseries Secure VMs Alexey Kardashevskiy
2019-12-16 4:19 ` Alexey Kardashevskiy
2019-12-16 4:19 ` [PATCH kernel v2 1/4] Revert "powerpc/pseries/iommu: Don't use dma_iommu_ops on secure guests" Alexey Kardashevskiy
2019-12-16 4:19 ` Alexey Kardashevskiy
2019-12-16 22:58 ` Thiago Jung Bauermann
2019-12-16 22:58 ` Thiago Jung Bauermann
2020-01-06 23:33 ` Michael Ellerman
2020-01-06 23:33 ` Michael Ellerman
2019-12-16 4:19 ` [PATCH kernel v2 2/4] powerpc/pseries: Allow not having ibm,hypertas-functions::hcall-multi-tce for Alexey Kardashevskiy
2019-12-16 4:19 ` [PATCH kernel v2 2/4] powerpc/pseries: Allow not having ibm, hypertas-functions::hcall-multi-tce for DDW Alexey Kardashevskiy
2019-12-16 23:07 ` [PATCH kernel v2 2/4] powerpc/pseries: Allow not having ibm,hypertas-functions::hcall-multi-tce Thiago Jung Bauermann
2019-12-16 23:07 ` [PATCH kernel v2 2/4] powerpc/pseries: Allow not having ibm, hypertas-functions::hcall-multi-tce for DDW Thiago Jung Bauermann
2019-12-17 0:09 ` [PATCH kernel v2 2/4] powerpc/pseries: Allow not having ibm,hypertas-functions::hcall-multi-tce Alexey Kardashevskiy
2019-12-17 0:09 ` [PATCH kernel v2 2/4] powerpc/pseries: Allow not having ibm,hypertas-functions::hcall-multi-tce for DDW Alexey Kardashevskiy
2019-12-17 2:06 ` [PATCH kernel v2 2/4] powerpc/pseries: Allow not having ibm,hypertas-functions::hcall-multi-tce Thiago Jung Bauermann
2019-12-17 2:06 ` [PATCH kernel v2 2/4] powerpc/pseries: Allow not having ibm, hypertas-functions::hcall-multi-tce for DDW Thiago Jung Bauermann
2020-01-02 22:02 ` [PATCH kernel v2 2/4] powerpc/pseries: Allow not having ibm,hypertas-functions::hcall-multi-tce Ram Pai
2020-01-02 22:02 ` [PATCH kernel v2 2/4] powerpc/pseries: Allow not having ibm,hypertas-functions::hcall-multi-tce for DDW Ram Pai
2019-12-16 4:19 ` [PATCH kernel v2 3/4] powerpc/pseries/iommu: Separate FW_FEATURE_MULTITCE to put/stuff features Alexey Kardashevskiy
2019-12-16 4:19 ` Alexey Kardashevskiy
2019-12-16 23:19 ` Thiago Jung Bauermann
2019-12-16 23:19 ` Thiago Jung Bauermann
2020-01-02 22:24 ` Ram Pai
2020-01-02 22:24 ` Ram Pai
2019-12-16 4:19 ` [PATCH kernel v2 4/4] powerpc/pseries/svm: Allow IOMMU to work in SVM Alexey Kardashevskiy
2019-12-16 4:19 ` Alexey Kardashevskiy
2019-12-16 23:23 ` Thiago Jung Bauermann
2019-12-16 23:23 ` Thiago Jung Bauermann
2020-01-02 22:21 ` Ram Pai
2020-01-02 22:21 ` Ram Pai
2020-01-03 0:08 ` David Gibson [this message]
2020-01-03 0:08 ` David Gibson
2020-01-03 2:06 ` Ram Pai
2020-01-03 2:06 ` Ram Pai
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=20200103000849.GL2098@umbus \
--to=david@gibson.dropbear.id.au \
--cc=aik@ozlabs.ru \
--cc=andmike@linux.ibm.com \
--cc=bauerman@linux.ibm.com \
--cc=kvm-ppc@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=linuxram@us.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.