* [PATCH v2 0/3] docs: Small changes to system/arm/cpu-features and more
@ 2025-02-13 13:50 Kashyap Chamarthy
2025-02-13 13:50 ` [PATCH v2 1/3] docs/cpu-features: Consistently use vCPU instead of VCPU Kashyap Chamarthy
2025-02-13 13:50 ` [PATCH v2 2/3] docs/cpu-features: Update "PAuth" (Pointer Authentication) details Kashyap Chamarthy
0 siblings, 2 replies; 12+ messages in thread
From: Kashyap Chamarthy @ 2025-02-13 13:50 UTC (permalink / raw)
To: qemu-devel
Cc: maz, Joel Stanley, Ninad Palsule, qemu-arm, Andrew Jeffery,
Peter Maydell, Alexandre Iooss, Jamin Lin, Cédric Le Goater,
Edgar E. Iglesias, Eric Auger, Yi Liu, Hao Wu, Tyrone Ting,
sebott, Steven Lee, Zhenzhong Duan, Alex Bennée, Troy Lee,
Alistair Francis, Kashyap Chamarthy
In v2:
- Add live-migration context to the PAuth docs (Marc Zyngier)
- Fix the Arm capitlalization (Peter Maydell)
(See:
https://lists.gnu.org/archive/html/qemu-devel/2025-01/msg05137.html)
* * *
v1 cover letter:
One is a trivial, mechanical change to consistenlty use "vCPU". The
other updates some details about the "PAuth" (Pointer Authentication)
feature.
I replaced the "TCG vCPU Features" heading with "PAuth" because of this:
before this change, the section says, it is about "CPU features that are
specific to TCG". But it has only PAuth-related parameters under it.
Since PAuth is relevant to both KVM and TCG, I moved them under a
separate PAuth section, instead of duplicating it.
But now we have a small inconsistency - there's a KVM-only CPU features
section, but no TCG-only section. I thought when there are more
TCG-only CPU features, that section can be added back in. Or I can add
that back in, if anyone feels strongly about it.
Kashyap Chamarthy (3):
docs/cpu-features: Consistently use vCPU instead of VCPU
docs/cpu-features: Update "PAuth" (Pointer Authentication) details
docs: Fix "Arm" capitaliaztion
docs/devel/testing/qgraph.rst | 8 ++--
docs/devel/vfio-iommufd.rst | 2 +-
docs/specs/fsi.rst | 2 +-
docs/system/arm/aspeed.rst | 6 +--
docs/system/arm/b-l475e-iot01a.rst | 2 +-
docs/system/arm/cpu-features.rst | 60 +++++++++++++++++++++++-----
docs/system/arm/nrf.rst | 4 +-
docs/system/arm/nuvoton.rst | 4 +-
docs/system/arm/stm32.rst | 12 +++---
docs/system/arm/xlnx-versal-virt.rst | 12 +++---
docs/system/arm/xlnx-zynq.rst | 2 +-
docs/system/guest-loader.rst | 2 +-
12 files changed, 77 insertions(+), 39 deletions(-)
--
2.48.1
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v2 1/3] docs/cpu-features: Consistently use vCPU instead of VCPU
2025-02-13 13:50 [PATCH v2 0/3] docs: Small changes to system/arm/cpu-features and more Kashyap Chamarthy
@ 2025-02-13 13:50 ` Kashyap Chamarthy
2025-02-13 21:09 ` Alex Bennée
2025-02-13 13:50 ` [PATCH v2 2/3] docs/cpu-features: Update "PAuth" (Pointer Authentication) details Kashyap Chamarthy
1 sibling, 1 reply; 12+ messages in thread
From: Kashyap Chamarthy @ 2025-02-13 13:50 UTC (permalink / raw)
To: qemu-devel
Cc: maz, Joel Stanley, Ninad Palsule, qemu-arm, Andrew Jeffery,
Peter Maydell, Alexandre Iooss, Jamin Lin, Cédric Le Goater,
Edgar E. Iglesias, Eric Auger, Yi Liu, Hao Wu, Tyrone Ting,
sebott, Steven Lee, Zhenzhong Duan, Alex Bennée, Troy Lee,
Alistair Francis, Kashyap Chamarthy
Signed-off-by: Kashyap Chamarthy <kchamart@redhat.com>
---
docs/system/arm/cpu-features.rst | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/docs/system/arm/cpu-features.rst b/docs/system/arm/cpu-features.rst
index 37d5dfd15b..a596316384 100644
--- a/docs/system/arm/cpu-features.rst
+++ b/docs/system/arm/cpu-features.rst
@@ -27,7 +27,7 @@ disabled, enables the optional AArch32 CPU feature, is only supported
when using the KVM accelerator and when running on a host CPU type that
supports the feature. While ``aarch64`` currently only works with KVM,
it could work with TCG. CPU features that are specific to KVM are
-prefixed with "kvm-" and are described in "KVM VCPU Features".
+prefixed with "kvm-" and are described in "KVM vCPU Features".
CPU Feature Probing
===================
@@ -167,22 +167,22 @@ disabling many SVE vector lengths would be quite verbose, the ``sve<N>`` CPU
properties have special semantics (see "SVE CPU Property Parsing
Semantics").
-KVM VCPU Features
+KVM vCPU Features
=================
-KVM VCPU features are CPU features that are specific to KVM, such as
+KVM vCPU features are CPU features that are specific to KVM, such as
paravirt features or features that enable CPU virtualization extensions.
The features' CPU properties are only available when KVM is enabled and
-are named with the prefix "kvm-". KVM VCPU features may be probed,
+are named with the prefix "kvm-". KVM vCPU features may be probed,
enabled, and disabled in the same way as other CPU features. Below is
-the list of KVM VCPU features and their descriptions.
+the list of KVM vCPU features and their descriptions.
``kvm-no-adjvtime``
By default kvm-no-adjvtime is disabled. This means that by default
the virtual time adjustment is enabled (vtime is not *not* adjusted).
When virtual time adjustment is enabled each time the VM transitions
- back to running state the VCPU's virtual counter is updated to
+ back to running state the vCPU's virtual counter is updated to
ensure stopped time is not counted. This avoids time jumps
surprising guest OSes and applications, as long as they use the
virtual counter for timekeeping. However it has the side effect of
@@ -200,15 +200,15 @@ the list of KVM VCPU features and their descriptions.
When kvm-steal-time is enabled a 64-bit guest can account for time
its CPUs were not running due to the host not scheduling the
- corresponding VCPU threads. The accounting statistics may influence
+ corresponding vCPU threads. The accounting statistics may influence
the guest scheduler behavior and/or be exposed to the guest
userspace.
-TCG VCPU Features
+TCG vCPU Features
=================
-TCG VCPU features are CPU features that are specific to TCG.
-Below is the list of TCG VCPU features and their descriptions.
+TCG vCPU features are CPU features that are specific to TCG.
+Below is the list of TCG vCPU features and their descriptions.
``pauth``
Enable or disable ``FEAT_Pauth`` entirely.
--
2.48.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v2 2/3] docs/cpu-features: Update "PAuth" (Pointer Authentication) details
2025-02-13 13:50 [PATCH v2 0/3] docs: Small changes to system/arm/cpu-features and more Kashyap Chamarthy
2025-02-13 13:50 ` [PATCH v2 1/3] docs/cpu-features: Consistently use vCPU instead of VCPU Kashyap Chamarthy
@ 2025-02-13 13:50 ` Kashyap Chamarthy
2025-02-13 21:17 ` Alex Bennée
1 sibling, 1 reply; 12+ messages in thread
From: Kashyap Chamarthy @ 2025-02-13 13:50 UTC (permalink / raw)
To: qemu-devel
Cc: maz, Joel Stanley, Ninad Palsule, qemu-arm, Andrew Jeffery,
Peter Maydell, Alexandre Iooss, Jamin Lin, Cédric Le Goater,
Edgar E. Iglesias, Eric Auger, Yi Liu, Hao Wu, Tyrone Ting,
sebott, Steven Lee, Zhenzhong Duan, Alex Bennée, Troy Lee,
Alistair Francis, Kashyap Chamarthy
PAuth (Pointer Authentication), a security feature in software, is
relevant for both KVM and QEMU. Relect this fact into the docs:
- For KVM, `pauth` is a binary, "on" vs "off" option. The host CPU
will choose the cryptographic algorithm.
- For TCG, however, along with `pauth`, a couple of properties can be
controlled -- they're are related to cryptographic algorithm choice.
Thanks to Peter Maydell and Marc Zyngier for explaining more about PAuth
on IRC (#qemu, OFTC).
Signed-off-by: Kashyap Chamarthy <kchamart@redhat.com>
---
v2: address Marc Zyngier's comments:
https://lists.gnu.org/archive/html/qemu-devel/2025-01/msg03451.html
---
docs/system/arm/cpu-features.rst | 46 +++++++++++++++++++++++++++++---
1 file changed, 42 insertions(+), 4 deletions(-)
diff --git a/docs/system/arm/cpu-features.rst b/docs/system/arm/cpu-features.rst
index a596316384..94d260b573 100644
--- a/docs/system/arm/cpu-features.rst
+++ b/docs/system/arm/cpu-features.rst
@@ -204,11 +204,49 @@ the list of KVM vCPU features and their descriptions.
the guest scheduler behavior and/or be exposed to the guest
userspace.
-TCG vCPU Features
-=================
+"PAuth" (Pointer Authentication)
+================================
+
+PAuth (Pointer Authentication) is a security feature in software that
+was introduced in Armv8.3-A. It aims to protect against ROP
+(return-oriented programming) attacks.
+
+KVM
+---
+
+``pauth``
+
+ Enable or disable ``FEAT_Pauth``. No other properties can be
+ controlled.
+
+ The host CPU will define the PAC (pointer authentication
+ code) cryptographic algorithm.
+
+ There are different "levels" of PAuth support. The host CPU
+ definition will define that level (e.g. PAuth, EPAC, PAuth2, FPAC,
+ FPACCOMBINE, etc). Refer to the Arm architecture extension documents
+ for details about the description of these features.
+
+Live migration and PAuth
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+The level of PAuth support depends on which Arm architecture a given CPU
+supports (e.g. Armv8.3 vs. Armv8.6). This gradation in PAuth support
+has implications for live migration. For example, to be able to
+live-migrate from host-A (with Armv8.3) to host-B (with Arm v8.6):
+
+ - the source and destination hosts must "agree" on (a) the PAC
+ signature algorithm, and (b) all the sub-features of PAuth; or
+
+ - the alternative (and less desirable) option is to turn off PAuth
+ off on both source and destination â this is generally not
+ recommended, as PAuth is a security feature.
+
+TCG
+---
-TCG vCPU features are CPU features that are specific to TCG.
-Below is the list of TCG vCPU features and their descriptions.
+For TCG, along with ``pauth``, it is possible to control a few other
+properties of PAuth:
``pauth``
Enable or disable ``FEAT_Pauth`` entirely.
--
2.48.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH v2 1/3] docs/cpu-features: Consistently use vCPU instead of VCPU
2025-02-13 13:50 ` [PATCH v2 1/3] docs/cpu-features: Consistently use vCPU instead of VCPU Kashyap Chamarthy
@ 2025-02-13 21:09 ` Alex Bennée
2025-02-14 15:06 ` Kashyap Chamarthy
0 siblings, 1 reply; 12+ messages in thread
From: Alex Bennée @ 2025-02-13 21:09 UTC (permalink / raw)
To: Kashyap Chamarthy
Cc: qemu-devel, maz, Joel Stanley, Ninad Palsule, qemu-arm,
Andrew Jeffery, Peter Maydell, Alexandre Iooss, Jamin Lin,
Cédric Le Goater, Edgar E. Iglesias, Eric Auger, Yi Liu,
Hao Wu, Tyrone Ting, sebott, Steven Lee, Zhenzhong Duan, Troy Lee,
Alistair Francis
Kashyap Chamarthy <kchamart@redhat.com> writes:
> Signed-off-by: Kashyap Chamarthy <kchamart@redhat.com>
Should we add vCPU to glossary.rst?
Anyway: Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 2/3] docs/cpu-features: Update "PAuth" (Pointer Authentication) details
2025-02-13 13:50 ` [PATCH v2 2/3] docs/cpu-features: Update "PAuth" (Pointer Authentication) details Kashyap Chamarthy
@ 2025-02-13 21:17 ` Alex Bennée
0 siblings, 0 replies; 12+ messages in thread
From: Alex Bennée @ 2025-02-13 21:17 UTC (permalink / raw)
To: Kashyap Chamarthy
Cc: qemu-devel, maz, Joel Stanley, Ninad Palsule, qemu-arm,
Andrew Jeffery, Peter Maydell, Alexandre Iooss, Jamin Lin,
Cédric Le Goater, Edgar E. Iglesias, Eric Auger, Yi Liu,
Hao Wu, Tyrone Ting, sebott, Steven Lee, Zhenzhong Duan, Troy Lee,
Alistair Francis
Kashyap Chamarthy <kchamart@redhat.com> writes:
> PAuth (Pointer Authentication), a security feature in software, is
> relevant for both KVM and QEMU. Relect this fact into the docs:
>
> - For KVM, `pauth` is a binary, "on" vs "off" option. The host CPU
> will choose the cryptographic algorithm.
>
> - For TCG, however, along with `pauth`, a couple of properties can be
> controlled -- they're are related to cryptographic algorithm choice.
>
> Thanks to Peter Maydell and Marc Zyngier for explaining more about PAuth
> on IRC (#qemu, OFTC).
>
> Signed-off-by: Kashyap Chamarthy <kchamart@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 1/3] docs/cpu-features: Consistently use vCPU instead of VCPU
2025-02-13 21:09 ` Alex Bennée
@ 2025-02-14 15:06 ` Kashyap Chamarthy
0 siblings, 0 replies; 12+ messages in thread
From: Kashyap Chamarthy @ 2025-02-14 15:06 UTC (permalink / raw)
To: Alex Bennée
Cc: qemu-devel, maz, Joel Stanley, Ninad Palsule, qemu-arm,
Andrew Jeffery, Peter Maydell, Alexandre Iooss, Jamin Lin,
Cédric Le Goater, Edgar E. Iglesias, Eric Auger, Yi Liu,
Hao Wu, Tyrone Ting, sebott, Steven Lee, Zhenzhong Duan, Troy Lee,
Alistair Francis
On Thu, Feb 13, 2025 at 09:09:12PM +0000, Alex Bennée wrote:
> Kashyap Chamarthy <kchamart@redhat.com> writes:
>
> > Signed-off-by: Kashyap Chamarthy <kchamart@redhat.com>
>
> Should we add vCPU to glossary.rst?
Ah, I didn't notice this in the tree. I can add as a follow-up later.
PS: I sent the patch while on a train, `git publish` was acting up. My
apologies if duplicate copies of this patch series land on 'qemu-devel'.
> Anyway: Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
>
> --
> Alex Bennée
> Virtualisation Tech Lead @ Linaro
>
--
/kashyap
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v2 2/3] docs/cpu-features: Update "PAuth" (Pointer Authentication) details
2025-02-17 16:37 [PATCH v2 0/3] docs: Small changes to system/arm/cpu-features and more Kashyap Chamarthy
@ 2025-02-17 16:37 ` Kashyap Chamarthy
2025-02-17 17:43 ` Eric Auger
0 siblings, 1 reply; 12+ messages in thread
From: Kashyap Chamarthy @ 2025-02-17 16:37 UTC (permalink / raw)
To: qemu-devel
Cc: Ninad Palsule, sebott, maz, Andrew Jeffery, Alistair Francis,
Edgar E. Iglesias, Tyrone Ting, Hao Wu, Zhenzhong Duan,
Alex Bennée, Peter Maydell, Cédric Le Goater,
Steven Lee, Troy Lee, Joel Stanley, Eric Auger, Jamin Lin, Yi Liu,
qemu-arm, Alexandre Iooss, Kashyap Chamarthy
PAuth (Pointer Authentication), a security feature in software, is
relevant for both KVM and QEMU. Relect this fact into the docs:
- For KVM, `pauth` is a binary, "on" vs "off" option. The host CPU
will choose the cryptographic algorithm.
- For TCG, however, along with `pauth`, a couple of properties can be
controlled -- they're are related to cryptographic algorithm choice.
Thanks to Peter Maydell and Marc Zyngier for explaining more about PAuth
on IRC (#qemu, OFTC).
Signed-off-by: Kashyap Chamarthy <kchamart@redhat.com>
---
v2: address Marc Zyngier's comments:
https://lists.gnu.org/archive/html/qemu-devel/2025-01/msg03451.html
---
docs/system/arm/cpu-features.rst | 46 +++++++++++++++++++++++++++++---
1 file changed, 42 insertions(+), 4 deletions(-)
diff --git a/docs/system/arm/cpu-features.rst b/docs/system/arm/cpu-features.rst
index a596316384..94d260b573 100644
--- a/docs/system/arm/cpu-features.rst
+++ b/docs/system/arm/cpu-features.rst
@@ -204,11 +204,49 @@ the list of KVM vCPU features and their descriptions.
the guest scheduler behavior and/or be exposed to the guest
userspace.
-TCG vCPU Features
-=================
+"PAuth" (Pointer Authentication)
+================================
+
+PAuth (Pointer Authentication) is a security feature in software that
+was introduced in Armv8.3-A. It aims to protect against ROP
+(return-oriented programming) attacks.
+
+KVM
+---
+
+``pauth``
+
+ Enable or disable ``FEAT_Pauth``. No other properties can be
+ controlled.
+
+ The host CPU will define the PAC (pointer authentication
+ code) cryptographic algorithm.
+
+ There are different "levels" of PAuth support. The host CPU
+ definition will define that level (e.g. PAuth, EPAC, PAuth2, FPAC,
+ FPACCOMBINE, etc). Refer to the Arm architecture extension documents
+ for details about the description of these features.
+
+Live migration and PAuth
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+The level of PAuth support depends on which Arm architecture a given CPU
+supports (e.g. Armv8.3 vs. Armv8.6). This gradation in PAuth support
+has implications for live migration. For example, to be able to
+live-migrate from host-A (with Armv8.3) to host-B (with Arm v8.6):
+
+ - the source and destination hosts must "agree" on (a) the PAC
+ signature algorithm, and (b) all the sub-features of PAuth; or
+
+ - the alternative (and less desirable) option is to turn off PAuth
+ off on both source and destination â this is generally not
+ recommended, as PAuth is a security feature.
+
+TCG
+---
-TCG vCPU features are CPU features that are specific to TCG.
-Below is the list of TCG vCPU features and their descriptions.
+For TCG, along with ``pauth``, it is possible to control a few other
+properties of PAuth:
``pauth``
Enable or disable ``FEAT_Pauth`` entirely.
--
2.48.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH v2 2/3] docs/cpu-features: Update "PAuth" (Pointer Authentication) details
2025-02-17 16:37 ` [PATCH v2 2/3] docs/cpu-features: Update "PAuth" (Pointer Authentication) details Kashyap Chamarthy
@ 2025-02-17 17:43 ` Eric Auger
2025-02-18 11:28 ` Kashyap Chamarthy
0 siblings, 1 reply; 12+ messages in thread
From: Eric Auger @ 2025-02-17 17:43 UTC (permalink / raw)
To: Kashyap Chamarthy, qemu-devel
Cc: Ninad Palsule, sebott, maz, Andrew Jeffery, Alistair Francis,
Edgar E. Iglesias, Tyrone Ting, Hao Wu, Zhenzhong Duan,
Alex Bennée, Peter Maydell, Cédric Le Goater,
Steven Lee, Troy Lee, Joel Stanley, Jamin Lin, Yi Liu, qemu-arm,
Alexandre Iooss
Hi Kashyap,
On 2/17/25 5:37 PM, Kashyap Chamarthy wrote:
> PAuth (Pointer Authentication), a security feature in software, is
> relevant for both KVM and QEMU. Relect this fact into the docs:
>
> - For KVM, `pauth` is a binary, "on" vs "off" option. The host CPU
> will choose the cryptographic algorithm.
>
> - For TCG, however, along with `pauth`, a couple of properties can be
> controlled -- they're are related to cryptographic algorithm choice.
>
> Thanks to Peter Maydell and Marc Zyngier for explaining more about PAuth
> on IRC (#qemu, OFTC).
>
> Signed-off-by: Kashyap Chamarthy <kchamart@redhat.com>
> ---
> v2: address Marc Zyngier's comments:
> https://lists.gnu.org/archive/html/qemu-devel/2025-01/msg03451.html
> ---
> docs/system/arm/cpu-features.rst | 46 +++++++++++++++++++++++++++++---
> 1 file changed, 42 insertions(+), 4 deletions(-)
>
> diff --git a/docs/system/arm/cpu-features.rst b/docs/system/arm/cpu-features.rst
> index a596316384..94d260b573 100644
> --- a/docs/system/arm/cpu-features.rst
> +++ b/docs/system/arm/cpu-features.rst
> @@ -204,11 +204,49 @@ the list of KVM vCPU features and their descriptions.
> the guest scheduler behavior and/or be exposed to the guest
> userspace.
>
> -TCG vCPU Features
> -=================
> +"PAuth" (Pointer Authentication)
> +================================
> +
> +PAuth (Pointer Authentication) is a security feature in software that
> +was introduced in Armv8.3-A. It aims to protect against ROP
> +(return-oriented programming) attacks.
> +
> +KVM
> +---
> +
> +``pauth``
> +
> + Enable or disable ``FEAT_Pauth``. No other properties can be
> + controlled.
> +
> + The host CPU will define the PAC (pointer authentication
> + code) cryptographic algorithm.
> +
> + There are different "levels" of PAuth support. The host CPU
> + definition will define that level (e.g. PAuth, EPAC, PAuth2, FPAC,
> + FPACCOMBINE, etc). Refer to the Arm architecture extension documents
> + for details about the description of these features.
> +
> +Live migration and PAuth
> +~~~~~~~~~~~~~~~~~~~~~~~~
> +
> +The level of PAuth support depends on which Arm architecture a given CPU
> +supports (e.g. Armv8.3 vs. Armv8.6). This gradation in PAuth support
> +has implications for live migration. For example, to be able to
> +live-migrate from host-A (with Armv8.3) to host-B (with Arm v8.6):
> +
> + - the source and destination hosts must "agree" on (a) the PAC
> + signature algorithm, and (b) all the sub-features of PAuth; or
> +
> + - the alternative (and less desirable) option is to turn off PAuth
> + off on both source and destination — this is generally not
> + recommended, as PAuth is a security feature.
> +
> +TCG
> +---
>
> -TCG vCPU features are CPU features that are specific to TCG.
> -Below is the list of TCG vCPU features and their descriptions.
The resulting header layout seems weird to me.
Initially we had at top level (assuming ===):
KVM vCPU Features
TCG vCPU Features
SVE CPU Properties
SME CPU Properties
RME CPU Properties
and now
TCG vCPU Features has somehow disappeared giving the impression that
there are none.
SME and RME and TCG only if am not wrong while PAUTH and SVE are both
KVM and TCG
Maybe we shall
- rename KVM vCPU Features -> KVM only vCPU Features
- Add a TCG only vCPU features including both SME and RME ones
- introduce a top level KVM and TCG vCPU features with below:
PAUTH, SVE, detailing potential different semantic for both KVM and TCG mode
Also while we are at it, we may use vCPU everywhere instead of CPU (SVE
CPU Properties) and just skip CPU if it lays within the KVM and TCG vCPU
Features
Thanks
Eric
> +For TCG, along with ``pauth``, it is possible to control a few other
> +properties of PAuth:
>
> ``pauth``
> Enable or disable ``FEAT_Pauth`` entirely.
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 2/3] docs/cpu-features: Update "PAuth" (Pointer Authentication) details
2025-02-17 17:43 ` Eric Auger
@ 2025-02-18 11:28 ` Kashyap Chamarthy
2025-02-18 11:34 ` Peter Maydell
0 siblings, 1 reply; 12+ messages in thread
From: Kashyap Chamarthy @ 2025-02-18 11:28 UTC (permalink / raw)
To: Eric Auger
Cc: qemu-devel, Ninad Palsule, sebott, maz, Andrew Jeffery,
Alistair Francis, Edgar E. Iglesias, Tyrone Ting, Hao Wu,
Zhenzhong Duan, Alex Bennée, Peter Maydell,
Cédric Le Goater, Steven Lee, Troy Lee, Joel Stanley,
Jamin Lin, Yi Liu, qemu-arm, Alexandre Iooss, richard.henderson
(Cc: Richard Henderson; context: "SME" and "RME" feature discussion
below.)
On Mon, Feb 17, 2025 at 06:43:01PM +0100, Eric Auger wrote:
> Hi Kashyap,
Hey,
>
> On 2/17/25 5:37 PM, Kashyap Chamarthy wrote:
[...]
> > Signed-off-by: Kashyap Chamarthy <kchamart@redhat.com>
> > ---
> > v2: address Marc Zyngier's comments:
> > https://lists.gnu.org/archive/html/qemu-devel/2025-01/msg03451.html
> > ---
[...]
> > +Live migration and PAuth
> > +~~~~~~~~~~~~~~~~~~~~~~~~
> > +
> > +The level of PAuth support depends on which Arm architecture a given CPU
> > +supports (e.g. Armv8.3 vs. Armv8.6). This gradation in PAuth support
> > +has implications for live migration. For example, to be able to
> > +live-migrate from host-A (with Armv8.3) to host-B (with Arm v8.6):
> > +
> > + - the source and destination hosts must "agree" on (a) the PAC
> > + signature algorithm, and (b) all the sub-features of PAuth; or
> > +
> > + - the alternative (and less desirable) option is to turn off PAuth
> > + off on both source and destination — this is generally not
> > + recommended, as PAuth is a security feature.
> > +
> > +TCG
> > +---
> >
> > -TCG vCPU features are CPU features that are specific to TCG.
> > -Below is the list of TCG vCPU features and their descriptions.
>
> The resulting header layout seems weird to me.
> Initially we had at top level (assuming ===):
>
> KVM vCPU Features
> TCG vCPU Features
> SVE CPU Properties
> SME CPU Properties
> RME CPU Properties
>
> and now
>
> TCG vCPU Features has somehow disappeared giving the impression that
> there are none.
I did think about it :) That's why I wrote this in the cover-letter; not
sure if you noticed it:
I replaced the "TCG vCPU Features" heading with "PAuth" because of
this: before this change, the section says, it is about "CPU
features that are specific to TCG". But it has only PAuth-related
parameters under it. Since PAuth is relevant to both KVM and TCG, I
moved them under a separate PAuth section, instead of duplicating
it.
But now we have a small inconsistency - there's a KVM-only CPU
features section, but no TCG-only section. I thought when there are
more TCG-only CPU features, that section can be added back in. Or I
can add that back in, if anyone feels strongly about it.
> SME and RME and TCG only if am not wrong while PAUTH and SVE are both
> KVM and TCG
I didn't know that. I read the docs a bit more closer about SME, RME,
and SVE, and did some quick `git-annotate` analysis:
- "SME is not supported by KVM at this time" — this was added in
commit e74c097638 (target/arm: Add cpu properties for SME,
2022-06-20).
If it is still accurate, then yes, SME looks to be TCG-only.
- "The status of RME support with QEMU is experimental" — this was
added in commit 57223a4c24 (docs/system/arm: Document FEAT_RME,
2023-06-22).
The phrase "with QEMU" doesn't quite decisively tell me whether it
is experimental for TCG-only, or if it also applies for KVM. Maybe
Richard (in Cc) can tell us more.
- SVE seems to be for both KVM and TCG, as the section "SVE CPU
Property Dependencies and Constraints" talks about KVM.
- PAuth is both KVM and TCG.
> Maybe we shall
> - rename KVM vCPU Features -> KVM only vCPU Features
> - Add a TCG only vCPU features including both SME and RME ones
> - introduce a top level KVM and TCG vCPU features with below:
> PAUTH, SVE, detailing potential different semantic for both KVM and TCG mode
Yeah, it can be done. Would you be okay if I do it as a follow-up? As
this a re-work of the entire doc with several features.
> Also while we are at it, we may use vCPU everywhere instead of CPU (SVE
> CPU Properties) and just skip CPU if it lays within the KVM and TCG vCPU
> Features
Yes, make sense.
[...]
--
/kashyap
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 2/3] docs/cpu-features: Update "PAuth" (Pointer Authentication) details
2025-02-18 11:28 ` Kashyap Chamarthy
@ 2025-02-18 11:34 ` Peter Maydell
2025-02-18 11:42 ` Eric Auger
2025-02-18 12:02 ` Kashyap Chamarthy
0 siblings, 2 replies; 12+ messages in thread
From: Peter Maydell @ 2025-02-18 11:34 UTC (permalink / raw)
To: Kashyap Chamarthy
Cc: Eric Auger, qemu-devel, Ninad Palsule, sebott, maz,
Andrew Jeffery, Alistair Francis, Edgar E. Iglesias, Tyrone Ting,
Hao Wu, Zhenzhong Duan, Alex Bennée, Cédric Le Goater,
Steven Lee, Troy Lee, Joel Stanley, Jamin Lin, Yi Liu, qemu-arm,
Alexandre Iooss, richard.henderson
On Tue, 18 Feb 2025 at 11:29, Kashyap Chamarthy <kchamart@redhat.com> wrote:
>
> (Cc: Richard Henderson; context: "SME" and "RME" feature discussion
> below.)
>
> On Mon, Feb 17, 2025 at 06:43:01PM +0100, Eric Auger wrote:
> > The resulting header layout seems weird to me.
> > Initially we had at top level (assuming ===):
> >
> > KVM vCPU Features
> > TCG vCPU Features
> > SVE CPU Properties
> > SME CPU Properties
> > RME CPU Properties
> >
> > and now
> >
> > TCG vCPU Features has somehow disappeared giving the impression that
> > there are none.
> > Maybe we shall
> > - rename KVM vCPU Features -> KVM only vCPU Features
> > - Add a TCG only vCPU features including both SME and RME ones
> > - introduce a top level KVM and TCG vCPU features with below:
> > PAUTH, SVE, detailing potential different semantic for both KVM and TCG mode
>
> Yeah, it can be done. Would you be okay if I do it as a follow-up? As
> this a re-work of the entire doc with several features.
I think personally I would favour not having the split of
"KVM only", "TCG only", etc sections. Instead document
all of the properties in the same format, and have each
property say whether it is TCG-specific, KVM-specific, etc.
Some of these properties may at some point in the future
change, after all -- SME is currently TCG only but may get
support in KVM and HVF in future; "aarch64" is currently
KVM only but we might some day support it in TCG.
thanks
-- PMM
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 2/3] docs/cpu-features: Update "PAuth" (Pointer Authentication) details
2025-02-18 11:34 ` Peter Maydell
@ 2025-02-18 11:42 ` Eric Auger
2025-02-18 12:02 ` Kashyap Chamarthy
1 sibling, 0 replies; 12+ messages in thread
From: Eric Auger @ 2025-02-18 11:42 UTC (permalink / raw)
To: Peter Maydell, Kashyap Chamarthy
Cc: qemu-devel, Ninad Palsule, sebott, maz, Andrew Jeffery,
Alistair Francis, Edgar E. Iglesias, Tyrone Ting, Hao Wu,
Zhenzhong Duan, Alex Bennée, Cédric Le Goater,
Steven Lee, Troy Lee, Joel Stanley, Jamin Lin, Yi Liu, qemu-arm,
Alexandre Iooss, richard.henderson
Hi,
On 2/18/25 12:34 PM, Peter Maydell wrote:
> On Tue, 18 Feb 2025 at 11:29, Kashyap Chamarthy <kchamart@redhat.com> wrote:
>> (Cc: Richard Henderson; context: "SME" and "RME" feature discussion
>> below.)
>>
>> On Mon, Feb 17, 2025 at 06:43:01PM +0100, Eric Auger wrote:
>>> The resulting header layout seems weird to me.
>>> Initially we had at top level (assuming ===):
>>>
>>> KVM vCPU Features
>>> TCG vCPU Features
>>> SVE CPU Properties
>>> SME CPU Properties
>>> RME CPU Properties
>>>
>>> and now
>>>
>>> TCG vCPU Features has somehow disappeared giving the impression that
>>> there are none.
>>> Maybe we shall
>>> - rename KVM vCPU Features -> KVM only vCPU Features
>>> - Add a TCG only vCPU features including both SME and RME ones
>>> - introduce a top level KVM and TCG vCPU features with below:
>>> PAUTH, SVE, detailing potential different semantic for both KVM and TCG mode
>> Yeah, it can be done. Would you be okay if I do it as a follow-up? As
>> this a re-work of the entire doc with several features.
> I think personally I would favour not having the split of
> "KVM only", "TCG only", etc sections. Instead document
> all of the properties in the same format, and have each
> property say whether it is TCG-specific, KVM-specific, etc.
This other alternative looks totally fine to me as well.
>
> Some of these properties may at some point in the future
> change, after all -- SME is currently TCG only but may get
> support in KVM and HVF in future; "aarch64" is currently
> KVM only but we might some day support it in TCG.
agreed
Eric
>
> thanks
> -- PMM
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 2/3] docs/cpu-features: Update "PAuth" (Pointer Authentication) details
2025-02-18 11:34 ` Peter Maydell
2025-02-18 11:42 ` Eric Auger
@ 2025-02-18 12:02 ` Kashyap Chamarthy
1 sibling, 0 replies; 12+ messages in thread
From: Kashyap Chamarthy @ 2025-02-18 12:02 UTC (permalink / raw)
To: Peter Maydell
Cc: Eric Auger, qemu-devel, Ninad Palsule, sebott, maz,
Andrew Jeffery, Alistair Francis, Edgar E. Iglesias, Tyrone Ting,
Hao Wu, Zhenzhong Duan, Alex Bennée, Cédric Le Goater,
Steven Lee, Troy Lee, Joel Stanley, Jamin Lin, Yi Liu, qemu-arm,
Alexandre Iooss, richard.henderson
On Tue, Feb 18, 2025 at 11:34:38AM +0000, Peter Maydell wrote:
> On Tue, 18 Feb 2025 at 11:29, Kashyap Chamarthy <kchamart@redhat.com> wrote:
[...]
> > > Maybe we shall
> > > - rename KVM vCPU Features -> KVM only vCPU Features
> > > - Add a TCG only vCPU features including both SME and RME ones
> > > - introduce a top level KVM and TCG vCPU features with below:
> > > PAUTH, SVE, detailing potential different semantic for both KVM and TCG mode
> >
> > Yeah, it can be done. Would you be okay if I do it as a follow-up? As
> > this a re-work of the entire doc with several features.
>
> I think personally I would favour not having the split of
> "KVM only", "TCG only", etc sections. Instead document
> all of the properties in the same format, and have each
> property say whether it is TCG-specific, KVM-specific, etc.
>
> Some of these properties may at some point in the future
> change, after all -- SME is currently TCG only but may get
> support in KVM and HVF in future; "aarch64" is currently
> KVM only but we might some day support it in TCG.
I agree. As the PAuth case demonstrated, it only makes sense to
entirely do away with KVM- and TCG-specific sections and use a
consistent format througout. That way, no need to remember to update
outdated sections. It's also consistent with the x86 docs[1], where we
don't draw attention to KVM- or TCG-specific features.
I can rework the doc and send a follow-up. (Eric: I assume you're also
fine with Peter's suggestion above :))
[1] https://www.qemu.org/docs/master/system/i386/cpu.html
--
/kashyap
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2025-02-18 12:04 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-13 13:50 [PATCH v2 0/3] docs: Small changes to system/arm/cpu-features and more Kashyap Chamarthy
2025-02-13 13:50 ` [PATCH v2 1/3] docs/cpu-features: Consistently use vCPU instead of VCPU Kashyap Chamarthy
2025-02-13 21:09 ` Alex Bennée
2025-02-14 15:06 ` Kashyap Chamarthy
2025-02-13 13:50 ` [PATCH v2 2/3] docs/cpu-features: Update "PAuth" (Pointer Authentication) details Kashyap Chamarthy
2025-02-13 21:17 ` Alex Bennée
-- strict thread matches above, loose matches on Subject: below --
2025-02-17 16:37 [PATCH v2 0/3] docs: Small changes to system/arm/cpu-features and more Kashyap Chamarthy
2025-02-17 16:37 ` [PATCH v2 2/3] docs/cpu-features: Update "PAuth" (Pointer Authentication) details Kashyap Chamarthy
2025-02-17 17:43 ` Eric Auger
2025-02-18 11:28 ` Kashyap Chamarthy
2025-02-18 11:34 ` Peter Maydell
2025-02-18 11:42 ` Eric Auger
2025-02-18 12:02 ` Kashyap Chamarthy
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).