BTW, your email client is possibly mis-configured - your mail
came through with "From: shalini <shal...@imap.linux.ibm.com>"
and attempting to reply to that gets an error saying that
'imap.linux.ibm.com' does not exist.

On Thu, Mar 06, 2025 at 02:55:27PM +0100, shalini wrote:
> On 2025-03-05 17:06, Daniel P. Berrangé wrote:
> > On Mon, Feb 24, 2025 at 01:04:47PM +0100, Shalini Chellathurai Saroja
> > wrote:
> > > Add Control-Program Identification (CPI) to the QEMU Object
> > > Model (QOM). The CPI identifiers provide information about
> > > the guest operating system. The CPI identifiers are:
> > > system type, system name, system level and sysplex name.
> > > 
> > > The system type provides the OS type of the guest (e.g. LINUX).
> > > The system name provides the name of the guest (e.g. TESTVM).
> > > The system level provides the distribution and kernel version
> > > of the guest OS (e.g. 0x50e00).
> > > The sysplex name provides the sysplex name of the guest
> > > (e.g. SYSPLEX).
> > > 
> > > Signed-off-by: Shalini Chellathurai Saroja <shal...@linux.ibm.com>
> > > ---
> > >  hw/s390x/s390-virtio-ccw.c         | 29 +++++++++++++++++++++++++++++
> > >  include/hw/s390x/s390-virtio-ccw.h |  8 ++++++++
> > >  qapi/machine.json                  | 24 ++++++++++++++++++++++++
> > >  3 files changed, 61 insertions(+)
> > > 
> > > diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
> > > index 51ae0c133d..13ea8db1b0 100644
> > > --- a/hw/s390x/s390-virtio-ccw.c
> > > +++ b/hw/s390x/s390-virtio-ccw.c
> > > @@ -50,6 +50,7 @@
> > >  #include "hw/s390x/virtio-ccw-md.h"
> > >  #include "system/replay.h"
> > >  #include CONFIG_DEVICES
> > > +#include "qapi/qapi-visit-machine.h"
> > > 
> > >  static Error *pv_mig_blocker;
> > > 
> > > @@ -803,6 +804,26 @@ static void machine_set_loadparm(Object *obj,
> > > Visitor *v,
> > >      s390_ipl_fmt_loadparm(ms->loadparm, val, errp);
> > >  }
> > > 
> > > +static void machine_get_control_program_id(Object *obj, Visitor *v,
> > > +                                           const char *name, void
> > > *opaque,
> > > +                                           Error **errp)
> > > +{
> > > +    S390CcwMachineState *ms = S390_CCW_MACHINE(obj);
> > > +    S390ControlProgramId *cpi;
> > > +    cpi = &(S390ControlProgramId){
> > > +        .system_type = g_strndup((char *) ms->cpi.system_type,
> > > +                       sizeof(ms->cpi.system_type)),
> > > +        .system_name = g_strndup((char *) ms->cpi.system_name,
> > > +                       sizeof(ms->cpi.system_name)),
> > > +        .system_level = g_strdup_printf("0x%lx",
> > > ms->cpi.system_level),
> > 
> > If the data is an integer, we must return it in QMP as an integer,
> > not formatted into a hex string.
> > 
> 
> Hello Daniel,
> 
> Thank you very much for the review.
> 
> The system-level, when interpreted as an int provides the output below
> 
> 'system-level': 74872343805430528

Yes, that is correct from a QMP design POV. Data should formatted
in the most appropriate way for machines to consume, using native
JSON data types.

> But the desired output below is obtained only when interpreted as a str.
> 
> 'system-level': '0x10a000000060b00'

If a human wants to read the data in hex format, that should be
formatted by whatever tool is consuming the data from QMP and
presenting it in the user.

> > > +# @system-name: system name of Linux instance
> > 
> > What is a system name ?  Is that a hostname, or is that something
> > else ?
> > 
> 
> Yes, it is the hostname of the guest virtual machine.

Lets rename it to 'system-hostname' to be unambiguous.


With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|


Reply via email to