hw/s390x/s390-virtio-ccw.c | 13 +++++++++++++ 1 file changed, 13 insertions(+)
People doing VM management requested a way to query if a VM is in PV
or not. This of course does never replace attestation, it's merely
QEMU's view of the situation.
Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
CC: Hendrik Brueckner <brueckner@linux.ibm.com>
---
hw/s390x/s390-virtio-ccw.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index 7fb78d8fa1..42ecfa59f3 100644
--- a/hw/s390x/s390-virtio-ccw.c
+++ b/hw/s390x/s390-virtio-ccw.c
@@ -838,6 +838,13 @@ static inline void machine_set_secure_boot(Object *obj, bool value,
ms->secure_boot = value;
}
+static inline bool machine_get_pv(Object *obj, Error **errp)
+{
+ S390CcwMachineState *ms = S390_CCW_MACHINE(obj);
+
+ return ms->pv;
+}
+
/*
* S390x-specific global compatibility properties.
*
@@ -919,6 +926,12 @@ static void ccw_machine_class_init(ObjectClass *oc, const void *data)
machine_set_secure_boot);
object_class_property_set_description(oc, "secure-boot",
"enable/disable secure boot");
+
+ object_class_property_add_bool(oc, "pv",
+ machine_get_pv,
+ NULL);
+ object_class_property_set_description(oc, "pv",
+ "protected virtualization state (read-only)");
}
static inline void s390_machine_initfn(Object *obj)
--
2.53.0
Am 23.09.26 um 10:33 schrieb Janosch Frank:
> People doing VM management requested a way to query if a VM is in PV
> or not. This of course does never replace attestation, it's merely
> QEMU's view of the situation.
Maybe make it more obvious that this is really about the runtime property
(has the guest switched into secure and yet yet switched back via reboot).
Same for set_description, maybe something like "true while the guest runs
in protected virtualization mode (read-only)", plus one line in
docs/system/s390x/protvirt.rst. The docs line matters because read-only
properties don't appear in -M s390-ccw-virtio,help
In any case
Reviewed-by: Christian Borntraeger <borntraeger@linux.ibm.com>
>
> Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
> CC: Hendrik Brueckner <brueckner@linux.ibm.com>
> ---
> hw/s390x/s390-virtio-ccw.c | 13 +++++++++++++
> 1 file changed, 13 insertions(+)
>
> diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
> index 7fb78d8fa1..42ecfa59f3 100644
> --- a/hw/s390x/s390-virtio-ccw.c
> +++ b/hw/s390x/s390-virtio-ccw.c
> @@ -838,6 +838,13 @@ static inline void machine_set_secure_boot(Object *obj, bool value,
> ms->secure_boot = value;
> }
>
> +static inline bool machine_get_pv(Object *obj, Error **errp)
> +{
> + S390CcwMachineState *ms = S390_CCW_MACHINE(obj);
> +
> + return ms->pv;
> +}
> +
> /*
> * S390x-specific global compatibility properties.
> *
> @@ -919,6 +926,12 @@ static void ccw_machine_class_init(ObjectClass *oc, const void *data)
> machine_set_secure_boot);
> object_class_property_set_description(oc, "secure-boot",
> "enable/disable secure boot");
> +
> + object_class_property_add_bool(oc, "pv",
> + machine_get_pv,
> + NULL);
> + object_class_property_set_description(oc, "pv",
> + "protected virtualization state (read-only)");
> }
>
> static inline void s390_machine_initfn(Object *obj)
On 9/24/26 9:19 AM, Christian Borntraeger wrote: > > > Am 23.09.26 um 10:33 schrieb Janosch Frank: >> People doing VM management requested a way to query if a VM is in PV >> or not. This of course does never replace attestation, it's merely >> QEMU's view of the situation. > > > Maybe make it more obvious that this is really about the runtime property > (has the guest switched into secure and yet yet switched back via reboot). > > Same for set_description, maybe something like "true while the guest runs > in protected virtualization mode (read-only)", plus one line in > docs/system/s390x/protvirt.rst. The docs line matters because read-only > properties don't appear in -M s390-ccw-virtio,help > > > In any case > Reviewed-by: Christian Borntraeger <borntraeger@linux.ibm.com> > Something like this for the docs? PV property ----------- The s390x-ccw machine exposes the read-only runtime "pv" property. This property is true if a guest successfully made the transition into PV mode as reported by KVM and hasn't yet exited PV mode via a reboot. This does not replace PV attestation which is the only authoritative way to get a definitive answer if a guest is truly protected.
Am 24.09.26 um 10:35 schrieb Janosch Frank: > On 9/24/26 9:19 AM, Christian Borntraeger wrote: >> >> >> Am 23.09.26 um 10:33 schrieb Janosch Frank: >>> People doing VM management requested a way to query if a VM is in PV >>> or not. This of course does never replace attestation, it's merely >>> QEMU's view of the situation. >> >> >> Maybe make it more obvious that this is really about the runtime property >> (has the guest switched into secure and yet yet switched back via reboot). >> >> Same for set_description, maybe something like "true while the guest runs >> in protected virtualization mode (read-only)", plus one line in >> docs/system/s390x/protvirt.rst. The docs line matters because read-only >> properties don't appear in -M s390-ccw-virtio,help >> >> >> In any case >> Reviewed-by: Christian Borntraeger <borntraeger@linux.ibm.com> >> > > Something like this for the docs? > > PV property > ----------- > > The s390x-ccw machine exposes the read-only runtime "pv" > property. This property is true if a guest successfully made the > transition into PV mode as reported by KVM and hasn't yet exited PV > mode via a reboot. This does not replace PV attestation which is the > only authoritative way to get a definitive answer if a guest is truly > protected. > looks good.
On 9/23/26 4:33 AM, Janosch Frank wrote:
> People doing VM management requested a way to query if a VM is in PV
> or not. This of course does never replace attestation, it's merely
> QEMU's view of the situation.
>
> Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
> CC: Hendrik Brueckner <brueckner@linux.ibm.com>
I wondered for a bit about migration, but seeing as it's fenced for pv I
think the only weird scenario would be migrating to an older QEMU using
a pre-11.2 machine type and go from being able to see the attribute read
'false' to no longer being able to see the attribute with the same qemu
command line.
Do you think that would matter for tooling e.g. do we need tie the
visibility of the property to 11.2+ machine?
> ---
> hw/s390x/s390-virtio-ccw.c | 13 +++++++++++++
> 1 file changed, 13 insertions(+)
>
> diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
> index 7fb78d8fa1..42ecfa59f3 100644
> --- a/hw/s390x/s390-virtio-ccw.c
> +++ b/hw/s390x/s390-virtio-ccw.c
> @@ -838,6 +838,13 @@ static inline void machine_set_secure_boot(Object *obj, bool value,
> ms->secure_boot = value;
> }
>
> +static inline bool machine_get_pv(Object *obj, Error **errp)
> +{
> + S390CcwMachineState *ms = S390_CCW_MACHINE(obj);
> +
> + return ms->pv;
> +}
> +
> /*
> * S390x-specific global compatibility properties.
> *
> @@ -919,6 +926,12 @@ static void ccw_machine_class_init(ObjectClass *oc, const void *data)
> machine_set_secure_boot);
> object_class_property_set_description(oc, "secure-boot",
> "enable/disable secure boot");
> +
> + object_class_property_add_bool(oc, "pv",
> + machine_get_pv,
> + NULL);
> + object_class_property_set_description(oc, "pv",
> + "protected virtualization state (read-only)");
> }
>
> static inline void s390_machine_initfn(Object *obj)
Am 23.09.26 um 23:44 schrieb Matthew Rosato: > On 9/23/26 4:33 AM, Janosch Frank wrote: >> People doing VM management requested a way to query if a VM is in PV >> or not. This of course does never replace attestation, it's merely >> QEMU's view of the situation. >> >> Signed-off-by: Janosch Frank <frankja@linux.ibm.com> >> CC: Hendrik Brueckner <brueckner@linux.ibm.com> > > I wondered for a bit about migration, but seeing as it's fenced for pv I > think the only weird scenario would be migrating to an older QEMU using > a pre-11.2 machine type and go from being able to see the attribute read > 'false' to no longer being able to see the attribute with the same qemu > command line. > > Do you think that would matter for tooling e.g. do we need tie the > visibility of the property to 11.2+ machine? I dont think so - Whether the property exists depends on the QEMU binary, not the machine type. Tools find it with qom-list. - The command line can't change, because the property can't be set. - Other read-only properties aren't tied to machine versions either, e.g. spapr vfio-no-msix-emulation
On 9/23/26 4:33 AM, Janosch Frank wrote: > People doing VM management requested a way to query if a VM is in PV > or not. This of course does never replace attestation, it's merely > QEMU's view of the situation. > > Signed-off-by: Janosch Frank <frankja@linux.ibm.com> > CC: Hendrik Brueckner <brueckner@linux.ibm.com> > --- > hw/s390x/s390-virtio-ccw.c | 13 +++++++++++++ > 1 file changed, 13 insertions(+) Reviewed-by: Eric Farman <farman@linux.ibm.com>
© 2016 - 2026 Red Hat, Inc.