[PATCH 00/22] qemu: Capability probing from 'query-command-line-options' (part 1?)

Ján Tomko jtomko at redhat.com
Mon Aug 16 14:35:45 UTC 2021


On a Thursday in 2021, Peter Krempa wrote:
>Hi,
>this series started as an exploration in how we use
>'query-command-line-options' and the way to possibly step away from
>using it. The main problem is that query-command-line-options is using
>old-style command line parsing infra in qemu and thus doesn't scale.
>
>In an effor to help qemu developers identify what we still need to query
>using the command I set to clean up the parsing.
>
>This series consists of:
>
>- removal of unneeded tests (covered by other cases or pointless)
>- adding of comments which simplify lookup of capability string from
>  enum value name
>- grouping of the queries by name
>- refactor of probing of stuff which can be probed differently
>- removal of some other probes
>- cleanups of the driver code
>
>In general we've got the following cases:
>
>- good ones:
>    - can be queried differently
>    - this patchset has converted (probably) all of them
>
>- the "bad" ones:
>    - stuff we can't replace yet and we need to probe it, few examples
>    are:
>        - pressence of seccomp
>        - support of 'fd=' for chardevs
>        - various VNC and spice config options
>
>- the possibly "ugly":
>    - these are options which are supported by all qemu versions and are
>      unlikely to be removed, but there's no different way to probe
>      them, we can always assume them
>    - those are the QEMU_CAPS_NAME* and QEMU_CAPS_MSG_TIMESTAMP at the
>      end, these patches are RFC as it may be considered a backwards
>      step just to assume it's supported
>
> Note that the removal of probing of -drive throttling caps can be
> replaced in case something gets deprecated via probing the 'throttling'
> object. This was added recently though. Since it's unlikely that pieces
> would be removed in the groups they were added removal of these caps is
> classified in the 'good' part.
>
>Peter Krempa (22):
>  qemuxml2argvtest: Remove negative tests for (aes|dea)keywrap (s390)
>    property
>  virQEMUCapsCommandLine: Group by commandline argument name
>    alphabetically
>  virQEMUCapsQMPSchemaQueries: Group by queried object name
>  scripts: group-qemu-caps: Add capability name as comment to capability
>    string
>  qemu: capabilities: Note that basing probing on
>    'query-command-line-options' should be avoided
>  qemu: capabilities: Probe 'reconnect', 'logfile' and 'append' from
>    'chardev-add'
>  qemu: capabilities: Rename QEMU_CAPS_CHARDEV_FD_PASS to
>    QEMU_CAPS_CHARDEV_FD_PASS_COMMANDLINE
>  qemu: capabilities: Probe 'discard' and 'detect-zeroes' from
>    'blockdev-add'
>  qemu: capabilities: Probe QEMU_CAPS_SMP_DIES from the QMP schema
>  qemu: Always assume that qemu supports drive throttling
>  qemu: capabilties: Retire QEMU_CAPS_DRIVE_IOTUNE_* caps
>  qemuMonitorJSONSetBlockIoThrottle: Refactor cleanup
>  qemuMonitorJSONSetBlockIoThrottle: Switch to standard error reporting
>  qemuMonitorSetBlockIoThrottle: Remove booleans controlling used fields
>  qemu: capabilities: Add alternative detection of QEMU_CAPS_NUMA
>  qemuxml2argvtest: Remove 'debug-threads' case
>  qemuxml2argvtest: Remove 'minimal-msg-timestamp'
>  qemuxml2argvtest: Remove 'minimal-sandbox' case
>  qemu: command: Always assume support for '-name guest=' and '-name
>    debug-threads=on'
>  qemu: capabilities: Retire QEMU_CAPS_NAME*
>  qemu: command: Always assume support for '-msg timestamp=on'
>  qemu: capabilities: Retire QEMU_CAPS_MSG_TIMESTAMP
>
> scripts/group-qemu-caps.py                    |  43 +-
> src/qemu/qemu_capabilities.c                  | 888 +++++++++---------
> src/qemu/qemu_capabilities.h                  |  14 +-

[...]

> tests/qemuxml2argvdata/watchdog.args          |   5 +-
> tests/qemuxml2argvdata/x86-kvm-32-on-64.args  |   5 +-
> tests/qemuxml2argvtest.c                      |  34 +-
> 630 files changed, 2232 insertions(+), 2259 deletions(-)
> delete mode 100644 tests/qemuxml2argvdata/debug-threads.args
> delete mode 100644 tests/qemuxml2argvdata/debug-threads.xml
> delete mode 100644 tests/qemuxml2argvdata/machine-aeskeywrap-off-cap.err
> delete mode 100644 tests/qemuxml2argvdata/machine-aeskeywrap-off-caps.err
> delete mode 100644 tests/qemuxml2argvdata/machine-aeskeywrap-on-cap.err
> delete mode 100644 tests/qemuxml2argvdata/machine-aeskeywrap-on-caps.err
> delete mode 100644 tests/qemuxml2argvdata/machine-deakeywrap-off-cap.err
> delete mode 100644 tests/qemuxml2argvdata/machine-deakeywrap-off-caps.err
> delete mode 100644 tests/qemuxml2argvdata/machine-deakeywrap-on-cap.err
> delete mode 100644 tests/qemuxml2argvdata/machine-deakeywrap-on-caps.err
> delete mode 100644 tests/qemuxml2argvdata/minimal-msg-timestamp.args
> delete mode 100644 tests/qemuxml2argvdata/minimal-msg-timestamp.xml
> delete mode 100644 tests/qemuxml2argvdata/minimal-sandbox.args
> delete mode 100644 tests/qemuxml2argvdata/minimal-sandbox.xml
>

Reviewed-by: Ján Tomko <jtomko at redhat.com>

Jano
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20210816/379c60ef/attachment-0001.sig>


More information about the libvir-list mailing list