On Thu, Mar 06, 2025 at 04:44:33PM +0100, Nina Schoetterl-Glausch wrote:
> On Thu, 2025-03-06 at 15:55 +0100, Thomas Huth wrote:
> > On 06/03/2025 13.23, shalini wrote:
> > > On 2025-03-05 16:56, Thomas Huth wrote:
> > > > On 24/02/2025 13.04, 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 @@
> 
> [...]
> 
> > > > > +##
> > > > > +{ 'struct': 'S390ControlProgramId', 'data': {
> > > > > +     'system-type': 'str',
> > > > > +     'system-name': 'str',
> > > > > +     'system-level': 'str',
> > > > 
> > > > Not sure, but would it make sense to use a number for the system-level
> > > > instead? At least it's a number in ControlProgramId, not a string.
> > > > 
> > > 
> > > The system-level, when interpreted as an int provides the output below
> > > 
> > > 'system-level': 74872343805430528
> > > 
> > > But the desired output below is obtained only when interpreted as a str. 
> > > please refer https://www.ibm.com/docs/en/linux-on-systems? 
> > > topic=identification-system-level for details on system-level. I will 
> > > also 
> > > document this in the description of system-level as suggested by Daniel. 
> > > Thank you.
> > > 
> > > 'system-level': '0x10a000000060b00'
> > 
> > Well, the idea of QOM/QAPI is: It's an *API* for machines, not meant for 
> > direct consumption by the end user. So passing an integer as a string is 
> > not 
> > the right way here. For the user, you'd require some upper level instead 
> > that renders the integer in the right shape for the user. So please don't 
> > use a string for this at the QOM/QAPI level.
> 
> In a sense the system level is a bitfield.
> So this could become a struct
> 
> {
>       'hypervisor-use' : true,
>       'distribution-id': 3,   // or an enum?
>       'distribution-version-major: 24,
>       ...
> }

Yes, if this is a mandatory format, breaking out the fields makes sense.

> Not sure how to handle the 3 undefined bits in the highest byte.

If they're always left zero, might as well just omit them until
such time as they have semantics defined (if ever)


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