qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v16 08/11] qapi/s390x/cpu topology: set-cpu-topology monitor


From: Nina Schoetterl-Glausch
Subject: Re: [PATCH v16 08/11] qapi/s390x/cpu topology: set-cpu-topology monitor command
Date: Mon, 27 Feb 2023 13:51:19 +0100
User-agent: Evolution 3.46.4 (3.46.4-1.fc37)

On Mon, 2023-02-27 at 13:25 +0100, Markus Armbruster wrote:
> Nina Schoetterl-Glausch <nsg@linux.ibm.com> writes:
> 
> > On Mon, 2023-02-27 at 08:59 +0100, Thomas Huth wrote:
> 
> [...]
> 
> > > I'm not sure whether double inclusion works with the QAPI parser (since 
> > > this 
> > > might code to be generated twice) ... have you tried?
> > 
> > I haven't, the documentation says:
> > 
> > > Include directives
> > > ------------------
> > > 
> > > Syntax::
> > > 
> > >     INCLUDE = { 'include': STRING }
> > > 
> > > The QAPI schema definitions can be modularized using the 'include' 
> > > directive::
> > > 
> > >  { 'include': 'path/to/file.json' }
> > > 
> > > The directive is evaluated recursively, and include paths are relative
> > > to the file using the directive.  Multiple includes of the same file
> > > are idempotent.
> > 
> > Which is why I thought it should work, but I guess this is a statement about
> > including the same file twice in another file and not about including the 
> > same
> > file from two files.
> 
> No, this is intended to say multiple inclusion is fine, regardless where
> the include directives are.
> 
> An include directive has two effects:
> 
> 1. If the included file has not been included already, pull in its
>    contents.
> 
> 2. Insert #include in generated C.  Example: qdev.json includes
>    qom.json.  The generated qapi-*-qdev.h include qapi-types-qom.h.
> 
>    Including any required modules, as recommended by qapi-code-gen.rst,
>    results in properly self-contained generated headers.

Ok, thanks. Not sure if another phrasing would be better given the intended
meaning is the way I read it initially.

> 
> > But then, as far as I can tell, the build system only builds 
> > qapi-schema.json,
> > which includes all other files, so it could apply.
> 
> Yes, qapi-schema.json is the main module, which includes all the others.
> 
> In fact, it includes all the others *directly*.  Why?
> 
> We generate documentation in source order.  Included material gets
> inserted right at the first inclusion; subsequent inclusions have no
> effect.
> 
> If we put all first inclusions right into qapi-schema.json, the order of
> things in documentation is visible right there, and won't change just
> because we change inclusions deeper down.
> 
> Questions?

CpuS390Entitlement would be useful in both machine.json and machine-target.json
because query-cpu-fast is defined in machine.json and set-cpu-topology is 
defined
in machine-target.json.
So then the question is where best to define CpuS390Entitlement.
In machine.json and include machine.json in machine-target.json?
Or define it in another file and include it from both?

Thanks






reply via email to

[Prev in Thread] Current Thread [Next in Thread]