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 <[email protected]>
> > > > ---
> > > > 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,
...
}
Not sure how to handle the 3 undefined bits in the highest byte.
>
> Thanks,
> Thomas
>
--
IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Wolfgang Wendt
Geschäftsführung: David Faller
Sitz der Gesellschaft: Böblingen / Registergericht: Amtsgericht Stuttgart, HRB
243294