Re: [PATCH v2 44/44] qapi: convert trivial intro sections for block-core.json

John Snow <[email protected]> Mon, 27 Jul 2026 13:20:09 -0400
Newsgroups org.nongnu.qemu-trivial,org.kernel.vger.linux-cxl,org.kernel.vger.linux-edac,org.nongnu.qemu-devel
Message-ID <CAFn=p-axhB-ezhfD2F8EoFhWT0h92d6oWP6Li1-JdhiXUGbsdA@mail.gmail.com>
On Fri, Jul 24, 2026 at 4:38=E2=80=AFAM Markus Armbruster <[email protected]=
m> wrote:
>
> John Snow <[email protected]> writes:
>
> > (Trivial)
> >
> > Signed-off-by: John Snow <[email protected]>
> > ---
> >  qapi/block-core.json | 646 +++++++++++++++++--------------------------
> >  1 file changed, 255 insertions(+), 391 deletions(-)
> >
> > diff --git a/qapi/block-core.json b/qapi/block-core.json
> > index 1f87b078505..bd98af2f298 100644
> > --- a/qapi/block-core.json
> > +++ b/qapi/block-core.json
>
> [...]
>
> > @@ -422,10 +417,9 @@
> >
> >  ##
> >  # @BlockGraphInfo:
> > -#
> > -# Information about all nodes in a block (sub)graph in the form of
> > -# `BlockNodeInfo` data.  The base `BlockNodeInfo` struct contains the
> > -# information for the (sub)graph's root node.
> > +#     Information about all nodes in a block (sub)graph in the form of
> > +#     `BlockNodeInfo` data.  The base `BlockNodeInfo` struct contains
> > +#     the information for the (sub)graph's root node.
> >  #
> >  # @children: Array of links to this node's child nodes' information
> >  #
>
> The first sentence is clearly overview, but the second caught my eye.
> What would we want the inliner to do with it?
>
> Looks like the inliner isn't going to do anything with it right now,
> because BlockGraphInfo is only used as member type.
>
> [...]
>
> > @@ -1378,10 +1355,9 @@
> >
> >  ##
> >  # @BlockdevOnError:
> > -#
> > -# An enumeration of possible behaviors for errors on I/O operations.
> > -# The exact meaning depends on whether the I/O was initiated by a
> > -# guest or by a block job
> > +#     An enumeration of possible behaviors for errors on I/O
> > +#     operations.  The exact meaning depends on whether the I/O was
> > +#     initiated by a guest or by a block job
> >  #
> >  # @report: for guest operations, report the error to the guest; for
> >  #     jobs, cancel the job
>
> The first sentence is clearly overview, but the second caught my eye.
>
> Because this is an enum type, and we're not going to inline these, we
> can leave it as is.
>
> [...]
>
> > @@ -1636,9 +1605,8 @@
> >
> >  ##
> >  # @BackupPerf:
> > -#
> > -# Optional parameters for backup.  These parameters don't affect
> > -# functionality, but may significantly affect performance.
> > +#     Optional parameters for backup.  These parameters don't affect
> > +#     functionality, but may significantly affect performance.
>
> The first sentence is clearly overview.  What would we want the inliner
> to do with the second?
>
> Looks like the inliner isn't going to do anything with it right now,
> because BackupPerf is only used as member type.
>
> Aside: this only user BackupCommon member x-perf has been @unstable for
> more than five years.  That's a long time to sit on a fence.
>
> >  #
> >  # @use-copy-range: Use copy offloading.  Default false.
> >  #
>
> [...]
>
> > @@ -1845,12 +1812,12 @@
> >
> >  ##
> >  # @change-backing-file:
> > -#
> > -# Change the backing file in the image file metadata.  This does not
> > -# cause QEMU to reopen the image file to reparse the backing filename
> > -# (it may, however, perform a reopen to change permissions from r/o ->
> > -# r/w -> r/o, if needed).  The new backing file string is written into
> > -# the image file metadata, and the QEMU internal strings are updated.
> > +#     Change the backing file in the image file metadata.  This does
> > +#     not cause QEMU to reopen the image file to reparse the backing
> > +#     filename (it may, however, perform a reopen to change
> > +#     permissions from r/o -> r/w -> r/o, if needed).  The new backing
> > +#     file string is written into the image file metadata, and the
> > +#     QEMU internal strings are updated.
>
> This is an example of a first paragraph I might flag for review if it
> was a struct or union type.
>
> >  #
> >  # @image-node-name: The name of the block driver state node of the
> >  #     image to modify.  The "device" argument is used to verify
>
> [...]
>
> > @@ -2746,11 +2700,10 @@
> >
> >  ##
> >  # @ThrottleLimits:
> > -#
> > -# Limit parameters for throttling.  Since some limit combinations are
> > -# illegal, limits should always be set in one transaction.  All fields
> > -# are optional.  When setting limits, if a field is missing the
> > -# current value is not changed.
> > +#     Limit parameters for throttling.  Since some limit combinations
> > +#     are illegal, limits should always be set in one transaction.
> > +#     All fields are optional.  When setting limits, if a field is
> > +#     missing the current value is not changed.
>
> The first sentence is clearly overview, but what would we want the
> inliner to do with the remainder?
>
> Looks like the inliner isn't going to do anything with it right now,
> because ThrottleLimits is only used as member type.
>
> >  #
> >  # @iops-total: limit total I/O operations per second
> >  #
>
> [...]
>
> > @@ -3548,12 +3486,11 @@
> >
> >  ##
> >  # @Qcow2OverlapCheckFlags:
> > -#
> > -# Structure of flags for each metadata structure.  Setting a field to
> > -# 'true' makes QEMU guard that Qcow2 format structure against
> > -# unintended overwriting.  See Qcow2 format specification for detailed
> > -# information on these structures.  The default value is chosen
> > -# according to the template given.
> > +#     Structure of flags for each metadata structure.  Setting a field
> > +#     to 'true' makes QEMU guard that Qcow2 format structure against
> > +#     unintended overwriting.  See Qcow2 format specification for
> > +#     detailed information on these structures.  The default value is
> > +#     chosen according to the template given.
> >  #
> >  # @template: Specifies a template mode which can be adjusted using the
> >  #     other flags, defaults to 'cached'
>
> The first sentence is clearly overview, but what would we want the
> inliner to do with the remainder?
>
> Looks like the inliner isn't going to do anything with it right now,
> because Qcow2OverlapCheckFlags is only used as member type.
>
>
> [...]
>
> > @@ -4550,9 +4460,8 @@
> >
> >  ##
> >  # @BlockdevOptionsCurlHttp:
> > -#
> > -# Driver specific block device options for HTTP connections over the
> > -# curl backend.  URLs must start with "http://".
> > +#     Driver specific block device options for HTTP connections over
> > +#     the curl backend.  URLs must start with "http://".
> >  #
> >  # @cookie: List of cookies to set; format is "name1=3Dcontent1;
> >  #     name2=3Dcontent2;" as explained by CURLOPT_COOKIE(3).  Defaults =
to
>
> The first sentence is clearly overview, but what about the second?
> "URLs" are actually member @url of base type BlockdevOptionsCurlBase.
> What would we want the inliner to do with it?
>
> BlockdevOptionsCurlBase is the base type of BlockdevOptionsCurlHttps and
> a branch type of BlockdevOptions, where this will get inlined.
>
> > @@ -4576,9 +4485,8 @@
> >
> >  ##
> >  # @BlockdevOptionsCurlHttps:
> > -#
> > -# Driver specific block device options for HTTPS connections over the
> > -# curl backend.  URLs must start with "https://".
> > +#     Driver specific block device options for HTTPS connections over
> > +#     the curl backend.  URLs must start with "https://".
> >  #
> >  # @sslverify: Whether to verify the SSL certificate's validity
> >  #     (defaults to true)
>
> Likewise.
>
> > @@ -4591,9 +4499,8 @@
> >
> >  ##
> >  # @BlockdevOptionsCurlFtp:
> > -#
> > -# Driver specific block device options for FTP connections over the
> > -# curl backend.  URLs must start with "ftp://".
> > +#     Driver specific block device options for FTP connections over
> > +#     the curl backend.  URLs must start with "ftp://".
> >  #
> >  # Since: 2.9
> >  ##
>
> Likewise.
>
> > @@ -4603,9 +4510,8 @@
> >
> >  ##
> >  # @BlockdevOptionsCurlFtps:
> > -#
> > -# Driver specific block device options for FTPS connections over the
> > -# curl backend.  URLs must start with "ftps://".
> > +#     Driver specific block device options for FTPS connections over
> > +#     the curl backend.  URLs must start with "ftps://".
> >  #
> >  # @sslverify: Whether to verify the SSL certificate's validity
> >  #     (defaults to true)
>
> Likewise.
>
>
> [...]
>
> > @@ -4735,14 +4637,13 @@
> >
> >  ##
> >  # @BlockdevOptionsCbw:
> > -#
> > -# Driver specific block device options for the copy-before-write
> > -# driver, which does so called copy-before-write operations: when data
> > -# is written to the filter, the filter first reads corresponding
> > -# blocks from its file child and copies them to @target child.  After
> > -# successfully copying, the write request is propagated to file child.
> > -# If copying fails, the original write request is failed too and no
> > -# data is written to file child.
> > +#     Driver specific block device options for the copy-before-write
> > +#     driver, which does so called copy-before-write operations: when
> > +#     data is written to the filter, the filter first reads
> > +#     corresponding blocks from its file child and copies them to
> > +#     @target child.  After successfully copying, the write request is
> > +#     propagated to file child.  If copying fails, the original write
> > +#     request is failed too and no data is written to file child.
> >  #
> >  # @target: The target for copy-before-write operations.
> >  #
>
> What would we want the inliner to do with this one?
>
> BlockdevOptionsCbw is a branch type of BlockdevOptions, where this will
> get inlined.
>
> > @@ -4778,9 +4679,8 @@
> >
> >  ##
> >  # @BlockdevOptions:
> > -#
> > -# Options for creating a block device.  Many options are available for
> > -# all block devices, independent of the block driver:
> > +#     Options for creating a block device.  Many options are available
> > +#     for all block devices, independent of the block driver:
> >  #
> >  # @driver: block driver name
> >  #
>
> What would we want the inliner to do with this one?
>
> BlockdevOptions is used as argument of blockdev-add, where it will be
> inlined.
>
>
> [...]
>
> > @@ -5587,9 +5465,8 @@
> >
> >  ##
> >  # @BlockdevAmendOptionsQcow2:
> > -#
> > -# Driver specific image amend options for qcow2.  For now, only
> > -# encryption options can be amended
> > +#     Driver specific image amend options for qcow2.  For now, only
> > +#     encryption options can be amended
> >  #
> >  # @encrypt: Encryption options to be amended
> >  #
>
> What would we want the inliner to do with this one?
>
> BlockdevAmendOptionsQcow2 is used as branch of BlockdevAmendOptions,
> where it will be inlined.
>
> [...]
>
> I believe all the problematic first paragraphs consist of more than one
> sentence.  What about splitting "trivial" into "very trivial" (just one
> paragraph, no sentence-ending punctuation in the middle) and "hopefully
> trivial" (just one paragraph, remainder)?

That's tricky to automate, and doing it by hand doesn't sound much fun
either... can we just power through one-by-one?

Unless you have a script or a trick you believe will help, and then I
am happy to oblige.