[PATCH] s390x: Expose pv attribute in QOM

Janosch Frank posted 1 patch 3 days, 10 hours ago
There is a newer version of this series
hw/s390x/s390-virtio-ccw.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
[PATCH] s390x: Expose pv attribute in QOM
Posted by Janosch Frank 3 days, 10 hours ago
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
Re: [PATCH] s390x: Expose pv attribute in QOM
Posted by Christian Borntraeger 2 days, 11 hours ago

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)
Re: [PATCH] s390x: Expose pv attribute in QOM
Posted by Janosch Frank 2 days, 10 hours ago
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.
Re: [PATCH] s390x: Expose pv attribute in QOM
Posted by Christian Borntraeger 2 days, 10 hours ago

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.
Re: [PATCH] s390x: Expose pv attribute in QOM
Posted by Matthew Rosato 2 days, 21 hours ago
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)
Re: [PATCH] s390x: Expose pv attribute in QOM
Posted by Christian Borntraeger 2 days, 11 hours ago

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
Re: [PATCH] s390x: Expose pv attribute in QOM
Posted by Eric Farman 2 days, 22 hours ago

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>